"Server error" ("Bad response code for GET") syncing a specific library (Client 7.0.10 + Server CE 9.0.8)

Hi,

there are some “Bad response code for GET” help requests in the forum but as far as I noticed none of them contain a solution so I open a new thread:

I have to sync an ecnrypted library (3aaa1087) with a size of around 40GB and almost always get a “Server error” in the Seafile client (Linux Debian, version 7.0.10). Around every 10 Seafile Client restarts the Client manages to sync the library for some minutes befire failing again with “Server error”. So I can slowly sync the library but with a lot Client restarts.

All other libraries sync fine, file down- and upload as well.

To have “clean” logs I started the investigation deleting all logs in Client and Server (CE version 9.0.8 for generic Linux), restarted Server and Client, waited for the “Server error” syncing the library in question and stopped Client and Server. I got the following logs:

Client

applet.log

[09/18/2022 04:34:38 AM]read id from id file
[09/18/2022 04:34:38 AM]starting seaf-daemon:  ("-c", "/home/saljut7/.ccnet", "-d", "/home/saljut7/Seafile/.seafile-data", "-w", "/home/saljut7/Seafile")
[09/18/2022 04:34:39 AM][Rpc Client] connected to daemon
[09/18/2022 04:34:39 AM][Rpc Client] connected to daemon
[09/18/2022 04:34:39 AM]Starting the network status detector
[09/18/2022 04:34:39 AM][AutoUpdateManager] cancel all download tasks
[09/18/2022 04:34:39 AM][AutoUpdateManager] clean file caches db
[09/18/2022 04:34:39 AM][AutoUpdateManager] clean file caches
[09/18/2022 04:34:39 AM]starting applet rpc service
[09/18/2022 04:34:39 AM]socket file exists, delete it anyway
[09/18/2022 04:34:39 AM]applet rpc service started
[09/18/2022 04:34:39 AM]libpng warning: iCCP: known incorrect sRGB profile
[09/18/2022 04:34:39 AM]libpng warning: iCCP: known incorrect sRGB profile
[09/18/2022 04:34:40 AM][Rpc Client] connected to daemon
[09/18/2022 04:35:52 AM][Daemon Mgr] stopping seafile daemon
[09/18/2022 04:35:52 AM]QProcess: Destroyed while process ("seaf-daemon") is still running.

seafile.log

[09/18/22 04:34:38] seaf-daemon.c(504): starting seafile client 7.0.10
[09/18/22 04:34:38] seafile-session.c(382): client id = 4e80b9a70f56aadca5000471743ce813f9ce0452, client_name = nb-x201-220314
[09/18/22 04:34:38] repo-mgr.c(6323): Commit d11a42d20397e43e3cf73780823f676565e915d2 is missing
[09/18/22 04:34:38] repo-mgr.c(6323): Commit 5ff44c6f37a6088b534078f875c7598b7fb31a84 is missing
[09/18/22 04:34:38] socket file exists, delete it anyway
[09/18/22 04:34:38] seaf-daemon.c(531): rpc server started.
[09/18/22 04:34:38] clone-mgr.c(678): Transition clone state for 01086070 from [init] to [check server].
[09/18/22 04:34:38] clone-mgr.c(678): Transition clone state for 3aaa1087 from [init] to [check server].
[09/18/22 04:34:38] http-tx-mgr.c(1152): Transfer repo '3aaa1087': ('normal', 'init') --> ('normal', 'check')
[09/18/22 04:34:38] clone-mgr.c(678): Transition clone state for 3aaa1087 from [check server] to [fetch].
[09/18/22 04:34:38] clone-mgr.c(694): Transition clone state for 01086070 from [check server] to [error]: File is locked by another application.
[09/18/22 04:34:38] http-tx-mgr.c(1152): Transfer repo '3aaa1087': ('normal', 'check') --> ('normal', 'commit')
[09/18/22 04:34:38] http-tx-mgr.c(1152): Transfer repo '3aaa1087': ('normal', 'commit') --> ('normal', 'fs')
[09/18/22 04:34:39] start to serve on pipe client
[09/18/22 04:34:39] start to serve on pipe client
[09/18/22 04:34:39] start to serve on pipe client
[09/18/22 04:34:39] start to serve on pipe client
[09/18/22 04:34:39] sync-mgr.c(1337): File syncing protocol version on server https://example.ddns.net is 2. Client file syncing protocol version is 2. Use version 2.
[09/18/22 04:34:39] sync-mgr.c(1337): File syncing protocol version on server https://box.hu-berlin.de is 2. Client file syncing protocol version is 2. Use version 2.
[09/18/22 04:34:40] start to serve on pipe client
[09/18/22 04:34:40] start to serve on pipe client

...

(a lot of...
[09/18/22 04:34:40] sync-mgr.c(579): Repo 'folder_example' sync state transition from 'synchronized' to 'committing'.
[09/18/22 04:34:40] repo-mgr.c(3854): All events are processed for repo b7b5749b-03c8-411a-ac37-f7da6776b871.
[09/18/22 04:34:40] sync-mgr.c(579): Repo 'folder_example' sync state transition from 'committing' to 'initializing'.
...and similar messages)

...

[09/18/22 04:35:38] http-tx-mgr.c(4010): Bad response code for GET https://example.ddns.net/seafhttp/repo/3aaa1087-***/fs-id-list/?server-head=d47a605c86637ff3798c170d197805045e623379: 504.
[09/18/22 04:35:38] http-tx-mgr.c(4589): Failed to get fs id list for repo 3aaa1087 on server https://example.ddns.net.
[09/18/22 04:35:38] http-tx-mgr.c(1152): Transfer repo '3aaa1087': ('normal', 'fs') --> ('error', 'finished')
[09/18/22 04:35:38] clone-mgr.c(694): Transition clone state for 3aaa1087 from [fetch] to [error]: Server error.

3aaa1087-*** is the library I want to sync so I made a check with seaf-fsck but the library integrity seems fine:

2022-09-16 08:40:02 fsck.c(596): Running fsck for repo 3aaa1087-***.
2022-09-16 08:40:02 fsck.c(422): Checking file system integrity of repo LibIwantToSync(3aaa1087)...
2022-09-16 10:21:15 fsck.c(660): Fsck finished for repo 3aaa1087.

Server

controller.log

2022-09-18 04:33:35 seafile-controller.c(481): Config [fileserver, use_go_fileserver] not set, default is FALSE.
2022-09-18 04:33:35 seafile-controller.c(191): starting seaf-server ...
2022-09-18 04:33:35 seafile-controller.c(82): spawn_process: seaf-server -F /opt/seafile/conf -c /opt/seafile/ccnet -d /opt/seafile/seafile-data -l /opt/seafile/logs/seafile.log -P /opt/seafile/pids/seaf-server.pid -p /opt/seafile/seafile-server-9.0.8/runtime
2022-09-18 04:33:35 seafile-controller.c(116): spawned seaf-server, pid 13607
2022-09-18 04:33:45 seafile-controller.c(447): pid file /opt/seafile/pids/seafdav.pid does not exist
2022-09-18 04:33:45 seafile-controller.c(526): seafdav need restart...
2022-09-18 04:33:45 seafile-controller.c(82): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile/logs/seafdav.log --pid /opt/seafile/pids/seafdav.pid --port 8080 --host 0.0.0.0
2022-09-18 04:33:45 seafile-controller.c(116): spawned /usr/bin/python3, pid 13641
2022-09-18 04:33:55 seafile-controller.c(447): pid file /opt/seafile/pids/seafdav.pid does not exist
2022-09-18 04:33:55 seafile-controller.c(526): seafdav need restart...
2022-09-18 04:33:55 seafile-controller.c(82): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile/logs/seafdav.log --pid /opt/seafile/pids/seafdav.pid --port 8080 --host 0.0.0.0
2022-09-18 04:33:55 seafile-controller.c(116): spawned /usr/bin/python3, pid 13644
2022-09-18 04:34:05 seafile-controller.c(447): pid file /opt/seafile/pids/seafdav.pid does not exist
2022-09-18 04:34:05 seafile-controller.c(526): seafdav need restart...
2022-09-18 04:34:05 seafile-controller.c(82): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /opt/seafile/logs/seafdav.log --pid /opt/seafile/pids/seafdav.pid --port 8080 --host 0.0.0.0
2022-09-18 04:34:05 seafile-controller.c(116): spawned /usr/bin/python3, pid 13653
2022-09-18 04:37:14 seafile-controller.c(551): shutting down all services ...

seafdav.log

2022-09-18 04:34:04.721 - <140660880492352> wsgidav.dc.seahub_db        INFO    :  Init seahub database...
2022-09-18 04:34:04.725 - <140611590010688> wsgidav.dc.seahub_db        INFO    :  Init seahub database...
2022-09-18 04:34:06.676 - <140605670192960> wsgidav.dc.seahub_db        INFO    :  Init seahub database...
2022-09-18 04:34:13.833 - <140611590010688> wsgidav.wsgidav_app         INFO    :  WsgiDAV/3.0.4 Python/3.9.2 Linux-5.10.0-18-amd64-x86_64-with-glibc2.31
2022-09-18 04:34:13.836 - <140611590010688> wsgidav.wsgidav_app         INFO    :  Lock manager:      LockManager(LockStorageDict)
2022-09-18 04:34:13.836 - <140611590010688> wsgidav.wsgidav_app         INFO    :  Property manager:  None
2022-09-18 04:34:13.836 - <140611590010688> wsgidav.wsgidav_app         INFO    :  Domain controller: SeafileDomainController()
2022-09-18 04:34:13.836 - <140611590010688> wsgidav.wsgidav_app         INFO    :  Registered DAV providers by route:
2022-09-18 04:34:13.837 - <140611590010688> wsgidav.wsgidav_app         INFO    :    - '/:dir_browser': FilesystemProvider for path '/opt/seafile/seafile-server-9.0.8/seahub/thirdpart/wsgidav/dir_browser/htdocs' (Read-Only)
2022-09-18 04:34:13.837 - <140611590010688> wsgidav.wsgidav_app         INFO    :    - '/seafdav': SeafileProvider for Seafile (Read-Write)
2022-09-18 04:34:13.837 - <140611590010688> wsgidav.wsgidav_app         WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.
2022-09-18 04:34:13.834 - <140660880492352> wsgidav.wsgidav_app         INFO    :  WsgiDAV/3.0.4 Python/3.9.2 Linux-5.10.0-18-amd64-x86_64-with-glibc2.31
2022-09-18 04:34:13.839 - <140660880492352> wsgidav.wsgidav_app         INFO    :  Lock manager:      LockManager(LockStorageDict)
2022-09-18 04:34:13.840 - <140660880492352> wsgidav.wsgidav_app         INFO    :  Property manager:  None
2022-09-18 04:34:13.840 - <140660880492352> wsgidav.wsgidav_app         INFO    :  Domain controller: SeafileDomainController()
2022-09-18 04:34:13.840 - <140660880492352> wsgidav.wsgidav_app         INFO    :  Registered DAV providers by route:
2022-09-18 04:34:13.841 - <140660880492352> wsgidav.wsgidav_app         INFO    :    - '/:dir_browser': FilesystemProvider for path '/opt/seafile/seafile-server-9.0.8/seahub/thirdpart/wsgidav/dir_browser/htdocs' (Read-Only)
2022-09-18 04:34:13.841 - <140660880492352> wsgidav.wsgidav_app         INFO    :    - '/seafdav': SeafileProvider for Seafile (Read-Write)
2022-09-18 04:34:13.841 - <140660880492352> wsgidav.wsgidav_app         WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.
2022-09-18 04:34:13.836 - <140605670192960> wsgidav.wsgidav_app         INFO    :  WsgiDAV/3.0.4 Python/3.9.2 Linux-5.10.0-18-amd64-x86_64-with-glibc2.31
2022-09-18 04:34:13.843 - <140605670192960> wsgidav.wsgidav_app         INFO    :  Lock manager:      LockManager(LockStorageDict)
2022-09-18 04:34:13.844 - <140605670192960> wsgidav.wsgidav_app         INFO    :  Property manager:  None
2022-09-18 04:34:13.844 - <140605670192960> wsgidav.wsgidav_app         INFO    :  Domain controller: SeafileDomainController()
2022-09-18 04:34:13.844 - <140605670192960> wsgidav.wsgidav_app         INFO    :  Registered DAV providers by route:
2022-09-18 04:34:13.844 - <140605670192960> wsgidav.wsgidav_app         INFO    :    - '/:dir_browser': FilesystemProvider for path '/opt/seafile/seafile-server-9.0.8/seahub/thirdpart/wsgidav/dir_browser/htdocs' (Read-Only)
2022-09-18 04:34:13.844 - <140605670192960> wsgidav.wsgidav_app         INFO    :    - '/seafdav': SeafileProvider for Seafile (Read-Write)
2022-09-18 04:34:13.845 - <140605670192960> wsgidav.wsgidav_app         WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.

seafile.init.log

 About to perform start for seafile at 2022-09-18T04:33:34+02:00 
 

Starting seafile server, please wait ...
Seafile server started

Done.

 
 About to perform stop for seafile at 2022-09-18T04:37:12+02:00 
 

Stopping seafile server ...
Done.

seafile.log

2022-09-18 04:33:40 socket file exists, delete it anyway
2022-09-18 04:33:41 ../common/seaf-utils.c(333): Use database Mysql
2022-09-18 04:33:41 http-server.c(195): fileserver: worker_threads = 10
2022-09-18 04:33:41 http-server.c(210): fileserver: fixed_block_size = 1048576
2022-09-18 04:33:41 http-server.c(225): fileserver: web_token_expire_time = 3600
2022-09-18 04:33:41 http-server.c(240): fileserver: max_indexing_threads = 1
2022-09-18 04:33:41 http-server.c(255): fileserver: max_index_processing_threads= 3
2022-09-18 04:33:41 http-server.c(277): fileserver: cluster_shared_temp_file_mode = 600
2022-09-18 04:33:45 start to serve on pipe client
2022-09-18 04:35:26 start to serve on pipe client
2022-09-18 04:35:26 start to serve on pipe client
2022-09-18 04:35:26 start to serve on pipe client

seafhub.init.log

 About to perform start for seahub at 2022-09-18T04:33:34+02:00 
 

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

Seahub is started

Done.


 
 About to perform stop for seahub at 2022-09-18T04:37:12+02:00 
 

Stopping seahub ...
Done.

Writing this error report the library in question finally synced completely after around 100 (manual) client restarts over the last week. I want to report the problem anyway for similar problems.