Seafile Client deletes wrong file

I’m using KeePass 2 as password manager and sometimes conflict files are being created. When I synchronize these with my password file and delete the conflict file Seafile deletes both files while I only deleted the conflict file.

This happens over and over again. Strange is: the password file stays available locally but is being removed from my Seafile library and all other devices.

Can you share related log messages? What operating system do you use?

It has been removed again. Seahub says it was removed at 13:25:09. (Gelöscht/Deleted: “Passwords.kdbx”.)

Although it is not in the log of the client performing the delete, the file was removed from Seafile, but wasn’t removed from the device.

[05/24/20 13:25:09] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/24/20 13:25:09] repo-mgr.c(2095): Failed to stat Passwords.kdbx.tmp: No such file or directory.
[05/24/20 13:25:09] repo-mgr.c(3781): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/24/20 13:25:09] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'committing' to 'uploading'.
[05/24/20 13:25:09] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'init') --> ('normal', 'check')
[05/24/20 13:25:09] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'check') --> ('normal', 'commit')
[05/24/20 13:25:10] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'commit') --> ('normal', 'fs')
[05/24/20 13:25:10] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'fs') --> ('normal', 'data')
[05/24/20 13:25:10] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'data') --> ('normal', 'update-branch')
[05/24/20 13:25:10] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'update-branch') --> ('finished', 'finished')
[05/24/20 13:25:10] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'uploading' to 'initializing'.
[05/24/20 13:25:38] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/24/20 13:25:38] repo-mgr.c(2095): Failed to stat Passwords.kdbx.tmp: No such file or directory.
[05/24/20 13:25:38] repo-mgr.c(3781): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/24/20 13:25:38] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'committing' to 'synchronized'.
[05/24/20 13:25:49] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/24/20 13:25:49] repo-mgr.c(2095): Failed to stat Passwords.kdbx.tmp: No such file or directory.
[05/24/20 13:25:49] repo-mgr.c(3781): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/24/20 13:25:49] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'committing' to 'synchronized'.

And now on my Windows PC I had the file already open and told the program to store it. Seahub said the file wouldn’t exist. While storing the file again the sync said there would be a conflict and created a conflict file.

[05/25/20 18:14:40] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/25/20 18:14:40] repo-mgr.c(2128): Failed to stat Passwords.kdbx: No such file or directory.
[05/25/20 18:14:40] repo-mgr.c(3822): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/25/20 18:14:40] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'committing' to 'synchronized'.
[05/25/20 18:14:46] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/25/20 18:14:46] repo-mgr.c(3822): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/25/20 18:14:46] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'committing' to 'uploading'.
[05/25/20 18:14:46] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'init') --> ('normal', 'check')
[05/25/20 18:14:46] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'check') --> ('normal', 'commit')
[05/25/20 18:14:47] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'commit') --> ('normal', 'fs')
[05/25/20 18:14:47] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'fs') --> ('normal', 'data')
[05/25/20 18:14:48] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'data') --> ('normal', 'update-branch')
[05/25/20 18:14:48] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'update-branch') --> ('finished', 'finished')
[05/25/20 18:14:48] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'uploading' to 'initializing'.
[05/25/20 18:14:48] sync-mgr.c(881): Removing blocks for repo Dokumente(5d97a159).
[05/25/20 18:15:48] [05/25/20 18:15:48] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'init') --> ('normal', 'check')
sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'initializing' to 'downloading'.
[05/25/20 18:15:49] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'check') --> ('normal', 'commit')
[05/25/20 18:15:49] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'commit') --> ('normal', 'fs')
[05/25/20 18:15:49] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'fs') --> ('normal', 'data')
[05/25/20 18:15:50] http-tx-mgr.c(1157): Transfer repo '5d97a159': ('normal', 'data') --> ('finished', 'finished')
[05/25/20 18:15:50] sync-mgr.c(574): Repo 'Dokumente' sync is finished but with error: Concurrent updates to file. File is saved as conflict file
[05/25/20 18:15:50] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'downloading' to 'error'.
[05/25/20 18:15:52] sync-mgr.c(582): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.

Just to clarify: There have not been concurrent changes. Before storing the file Seahub said the file wouldn’t be there and on my PC the file also hasn’t been there.

And the file Passwords.kdbx has been removed again at 21:19:14.

[05/25/20 21:19:14] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/25/20 21:19:14] repo-mgr.c(2095): Failed to stat Passwords.kdbx.tmp: No such file or directory.
[05/25/20 21:19:14] repo-mgr.c(3781): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/25/20 21:19:14] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'committing' to 'uploading'.
[05/25/20 21:19:14] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'init') --> ('normal', 'check')
[05/25/20 21:19:15] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'check') --> ('normal', 'commit')
[05/25/20 21:19:15] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'commit') --> ('normal', 'fs')
[05/25/20 21:19:16] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'fs') --> ('normal', 'data')
[05/25/20 21:19:17] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'data') --> ('normal', 'update-branch')
[05/25/20 21:19:17] http-tx-mgr.c(1152): Transfer repo '5d97a159': ('normal', 'update-branch') --> ('finished', 'finished')
[05/25/20 21:19:17] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'uploading' to 'initializing'.
[05/25/20 21:19:18] sync-mgr.c(880): Removing blocks for repo Dokumente(5d97a159).
[05/25/20 21:19:32] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'synchronized' to 'committing'.
[05/25/20 21:19:32] repo-mgr.c(2095): Failed to stat Passwords.kdbx.tmp: No such file or directory.
[05/25/20 21:19:32] repo-mgr.c(3781): All events are processed for repo 5d97a159-fd54-4aa6-b52c-1d9603445768.
[05/25/20 21:19:32] sync-mgr.c(579): Repo 'Dokumente' sync state transition from 'committing' to 'synchronized'.

It is still present locally but has been removed from Seafile through the client.

I’ve now selected manual sync and the file was readded. I don’t think that is a satisfactory solution, though.

What OS do you use for the client that initially trigger this behavior? You can set the SEAFILE_DEBUG=all env variable to include detailed file system events in the log.

The system used is Fedora 32 (5.6.13-300.fc32.x86_64, seafile-client-7.0.4-2.fc32.src.rpm - most recent).

And the PC which created the conflict file although the file didn’t show up in Seahub was Windows 10.

I’ll add the debug var later and reproduce it to hopefully get some more insights.