Seafdav does not work (seafdav.pid problem)

I had some issues running the upgrade script because python3 does not take “%” in passwords well. Also - at least for production - I am still migrating former templates to new react config for 7.0/7.1.

But apart from that I could work out the update in a testing environment.

I just noticed that I get the same error on 7.1.3. After putting export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3.7/site-packages:${INSTALLPATH}/seafile/lib64/python3.7/site-packages:${INSTALLPATH}/seahub:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH from seahub.sh in seafile.sh, the error is gone and seafdav starts. Wondering where the PYTHONPATH for seafdav is set since it is using libs from seahub/thirdparty but is started from seafile.sh.

I compared the two files (seafile.sh and seahub.sh) but the PYTHONPATH environment variable appears to be set to the same paths.

Interesting, because I do not see PYTHONPATH beeing set at all in seafile.sh.

Is seafdav broken in 7.1.4? I am seeing the same logs in controller.log:

[08/05/20 18:43:25] seafile-controller.c(79): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /srv/logs/seafdav.log --pid /srv/pids/seafdav.pid --port 8080 --host 0.0.0.0
[08/05/20 18:43:25] seafile-controller.c(94): spawned /usr/bin/python3, pid 833529
[08/05/20 18:43:35] seafile-controller.c(414): pid file /srv/pids/seafdav.pid does not exist
[08/05/20 18:43:35] seafile-controller.c(446): seafdav need restart...
[08/05/20 18:43:35] seafile-controller.c(79): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /srv/logs/seafdav.log --pid /srv/pids/seafdav.pid --port 8080 --host 0.0.0.0
[08/05/20 18:43:35] seafile-controller.c(94): spawned /usr/bin/python3, pid 833619
[08/05/20 18:43:45] seafile-controller.c(414): pid file /srv/pids/seafdav.pid does not exist
[08/05/20 18:43:45] seafile-controller.c(446): seafdav need restart...
[08/05/20 18:43:45] seafile-controller.c(79): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /srv/logs/seafdav.log --pid /srv/pids/seafdav.pid --port 8080 --host 0.0.0.0
[08/05/20 18:43:45] seafile-controller.c(94): spawned /usr/bin/python3, pid 833705
[08/05/20 18:43:55] seafile-controller.c(414): pid file /srv/pids/seafdav.pid does not exist
[08/05/20 18:43:55] seafile-controller.c(446): seafdav need restart...
[08/05/20 18:43:55] seafile-controller.c(79): spawn_process: /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /srv/logs/seafdav.log --pid /srv/pids/seafdav.pid --port 8080 --host 0.0.0.0
[08/05/20 18:43:55] seafile-controller.c(94): spawned /usr/bin/python3, pid 833774

It just keeps looping over and over like that. Those processes don’t exist in ps. I think it is crashing at start up. If I run that command myself I get:

$ sudo /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /srv/logs/seafdav.log --pid /srv/pids/seafdav.pid --port 8080 --host 0.0.0.0
usage: wsgidav [-h] [-p PORT] [-H HOST] [-r ROOT_PATH] [--auth {anonymous,nt,pam-login}] [--server {paste,gevent,cheroot,cherrypy,ext-wsgiutils,flup-fcgi,flup-fcgi_fork,wsgiref}] [--ssl-adapter {builtin,pyopenssl}] [-v | -q] [-c CONFIG_FILE | --no-config] [-V]
wsgidav: error: argument --server: invalid choice: 'gunicorn' (choose from 'paste', 'gevent', 'cheroot', 'cherrypy', 'ext-wsgiutils', 'flup-fcgi', 'flup-fcgi_fork', 'wsgiref')

I tried setting the PYTHONPATH in seafile.sh but that did not solve the issue.

WebDAV is critical for me since it is the only way to sync seafile files to Android currently. No one has a solution?

Did you check python dependencies?

Same issue here. Has anybody found a solution?