You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There seems to be a problem with how seafile.sh stop stops the webdav process. Unsure why, but under some conditions child processes are not terminated, which causes subsequent seafile.sh start to fail because of the sanity checks mentioned in the forum post.
To recap, the webdav process shutdown is currently done in two steps after invoking seafile.sh stop:
first seafile.sh sends SIGTERM to seafile-controller process...:
This signal is caught by the signal handler, which in turn sends SIGKILL to wsgi process stored in seafdav PID-file.
...then itself sends SIGTERM to wsgidav process:
pkill -f "wsgidav.server.server_cli"
My experience says if webdav had been in use (e.g. some files were synced over the protocol), then it never shuts down correctly. Note this is important in reproducing this -- simply starting seafile & stopping it without making use of webdav results in clean webdav shutdown.
Are we killing this process correctly? First I'd question why seafile-controller is SIGKILL-ing processes by default? Wouldn't it be best to first send SIGTERM (or some other signal) to allow whatever sub-process clean up their state gracefully? Second -- why are there two points of termination for webdav: both from within seafile-controller and seafile.sh's own pkill invocation?
Note I asked the wsgidav project about proper way of terminating the process under this gh issue. I was unable to reproduce this unclean shutdown using vanilla wsgidav 4.3.3 as mentioned in that ticket.
Running CE 11.0.12 in phusion/baseimage:jammy-1.0.4 container.
The text was updated successfully, but these errors were encountered:
This issue is essentially derived from a seafile forum post.
There seems to be a problem with how
seafile.sh stop
stops the webdav process. Unsure why, but under some conditions child processes are not terminated, which causes subsequentseafile.sh start
to fail because of the sanity checks mentioned in the forum post.To recap, the webdav process shutdown is currently done in two steps after invoking
seafile.sh stop
:This signal is caught by the signal handler, which in turn sends SIGKILL to wsgi process stored in seafdav PID-file.
My experience says if webdav had been in use (e.g. some files were synced over the protocol), then it never shuts down correctly. Note this is important in reproducing this -- simply starting seafile & stopping it without making use of webdav results in clean webdav shutdown.
Are we killing this process correctly? First I'd question why seafile-controller is SIGKILL-ing processes by default? Wouldn't it be best to first send SIGTERM (or some other signal) to allow whatever sub-process clean up their state gracefully? Second -- why are there two points of termination for webdav: both from within seafile-controller and seafile.sh's own pkill invocation?
Note I asked the wsgidav project about proper way of terminating the process under this gh issue. I was unable to reproduce this unclean shutdown using vanilla wsgidav 4.3.3 as mentioned in that ticket.
Running CE
11.0.12
in phusion/baseimage:jammy-1.0.4 container.The text was updated successfully, but these errors were encountered: