haiwen / seafile-client

Seafile desktop client.
http://seafile.com
Apache License 2.0
472 stars 279 forks source link

web client causes crash/restart of server #836

Open unDocUMeantIt opened 7 years ago

unDocUMeantIt commented 7 years ago

we have a strange problem in our working group. we're running seafile server 6.0.5 on ubuntu 14.04 (apache via https using let's encrypt certificates). most of the time, this works flawlessly.

but there's one windows 7 machine with latest windows client that's causing trouble when we try to upload files via the web frontend. we're getting an "unknown error" and the seafile server immediately crashes (to be precise: it's being restarted, leading to a global off-time of about a minute for all).

this setup ran fine for a long time, we were always upgrading server and clients when they became available. the problems started around the time we upgraded to sefile server 6.0.4. i cannot reproduce these crashes with the web clients of other machines, as far as we know it is only this one windows 7 installation, but the crash can be caused independent of the browser used (tested with firefox and internet explorer). it doesn't happen when files are uploaded via libraries that are synced locally on that machine.

are there any logs that might be helpful to track this down? reproduceable crashes look like a potential security risk.

lins05 commented 7 years ago

Can you upgrade to 6.0.5 and see if it helps? It fixed a bug that may crash the ccnet-server process.

unDocUMeantIt commented 7 years ago

we are running 6.0.5 ;-) the problem persists.

killing commented 7 years ago

What can you see in logs/controller.log and logs/seafile.log?

unDocUMeantIt commented 7 years ago

here's four subsequent restarts from logs/controller.log:

[10/26/16 14:47:58] seafile-controller.c(416): seaf-server need restart...
[10/26/16 14:47:58] seafile-controller.c(186): starting seaf-server ...
[10/26/16 14:47:58] seafile-controller.c(73): spawn_process: seaf-server -F /home/seafile/conf -c /home/seafile/ccnet -d /home/seafile/seafile-data -l /home/seafile/logs/seafile.log -P /home/seafile/pids/seaf-server.pid
[10/26/16 14:47:58] seafile-controller.c(88): spawned seaf-server, pid 9287
[10/26/16 14:51:18] seafile-controller.c(416): seaf-server need restart...
[10/26/16 14:51:18] seafile-controller.c(186): starting seaf-server ...
[10/26/16 14:51:18] seafile-controller.c(73): spawn_process: seaf-server -F /home/seafile/conf -c /home/seafile/ccnet -d /home/seafile/seafile-data -l /home/seafile/logs/seafile.log -P /home/seafile/pids/seaf-server.pid
[10/26/16 14:51:18] seafile-controller.c(88): spawned seaf-server, pid 9409
[10/26/16 15:27:10] seafile-controller.c(416): seaf-server need restart...
[10/26/16 15:27:10] seafile-controller.c(186): starting seaf-server ...
[10/26/16 15:27:10] seafile-controller.c(73): spawn_process: seaf-server -F /home/seafile/conf -c /home/seafile/ccnet -d /home/seafile/seafile-data -l /home/seafile/logs/seafile.log -P /home/seafile/pids/seaf-server.pid
[10/26/16 15:27:10] seafile-controller.c(88): spawned seaf-server, pid 9958
[10/26/16 15:28:50] seafile-controller.c(416): seaf-server need restart...
[10/26/16 15:28:50] seafile-controller.c(186): starting seaf-server ...
[10/26/16 15:28:50] seafile-controller.c(73): spawn_process: seaf-server -F /home/seafile/conf -c /home/seafile/ccnet -d /home/seafile/seafile-data -l /home/seafile/logs/seafile.log -P /home/seafile/pids/seaf-server.pid
[10/26/16 15:28:50] seafile-controller.c(88): spawned seaf-server, pid 10029

logs/seafile.log doesn't look as informative for my taste:

[10/26/2016 02:47:58 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
[10/26/2016 02:47:58 PM] listen-mgr.c(120): listen on port 12001 for block tranfer
[10/26/2016 02:51:18 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
[10/26/2016 02:51:18 PM] listen-mgr.c(120): listen on port 12001 for block tranfer
[10/26/2016 03:27:10 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
[10/26/2016 03:27:10 PM] listen-mgr.c(120): listen on port 12001 for block tranfer
[10/26/2016 03:28:50 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
[10/26/2016 03:28:50 PM] listen-mgr.c(120): listen on port 12001 for block tranfer
unDocUMeantIt commented 7 years ago

here's what we see in logs/ccnet.log:

[10/26/16 14:47:51] ../common/peer.c(943): Local peer down
[10/26/16 14:47:51] ../common/peer.c(943): Local peer down
[10/26/16 14:47:51] ../common/peer.c(943): Local peer down
[10/26/16 14:47:58] ../common/session.c(398): Accepted a local client
[10/26/16 14:47:58] ../common/session.c(398): Accepted a local client
[10/26/16 14:47:58] ../common/session.c(398): Accepted a local client
[10/26/16 14:47:58] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:47:58] ../common/peer.c(943): Local peer down
[10/26/16 14:48:01] ../common/session.c(398): Accepted a local client
[10/26/16 14:48:01] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:48:01] ../common/peer.c(943): Local peer down
[10/26/16 14:48:01] ../common/session.c(398): Accepted a local client
[10/26/16 14:48:05] ../common/session.c(398): Accepted a local client
[10/26/16 14:48:05] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:48:05] ../common/peer.c(943): Local peer down
[10/26/16 14:48:15] ../common/session.c(398): Accepted a local client
[10/26/16 14:48:15] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:48:15] ../common/peer.c(943): Local peer down
[10/26/16 14:48:22] ../common/session.c(398): Accepted a local client
[10/26/16 14:48:22] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:48:22] ../common/peer.c(943): Local peer down
[10/26/16 14:51:08] ../common/peer.c(943): Local peer down
[10/26/16 14:51:08] ../common/peer.c(943): Local peer down
[10/26/16 14:51:08] ../common/peer.c(943): Local peer down
[10/26/16 14:51:10] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:10] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:51:10] ../common/peer.c(943): Local peer down
[10/26/16 14:51:15] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:15] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:51:15] ../common/peer.c(943): Local peer down
[10/26/16 14:51:18] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:18] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:28] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:28] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:51:28] ../common/peer.c(943): Local peer down
[10/26/16 14:51:29] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:29] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:51:29] ../common/peer.c(943): Local peer down
[10/26/16 14:51:34] ../common/session.c(398): Accepted a local client
[10/26/16 14:51:34] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 14:51:34] ../common/peer.c(943): Local peer down
[10/26/16 14:53:01] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:01] ../common/peer.c(943): Local peer down
[10/26/16 15:27:01] ../common/peer.c(943): Local peer down
[10/26/16 15:27:01] ../common/peer.c(943): Local peer down
[10/26/16 15:27:10] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:10] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:22] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:22] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:27:22] ../common/peer.c(943): Local peer down
[10/26/16 15:27:23] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:23] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:27:23] ../common/peer.c(943): Local peer down
[10/26/16 15:27:23] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:23] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:27:23] ../common/peer.c(943): Local peer down
[10/26/16 15:27:28] ../common/session.c(398): Accepted a local client
[10/26/16 15:27:28] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:27:28] ../common/peer.c(943): Local peer down
[10/26/16 15:28:01] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:12] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:12] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:28:12] ../common/peer.c(943): Local peer down
[10/26/16 15:28:41] ../common/peer.c(943): Local peer down
[10/26/16 15:28:41] ../common/peer.c(943): Local peer down
[10/26/16 15:28:41] ../common/peer.c(943): Local peer down
[10/26/16 15:28:45] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:45] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:28:45] ../common/peer.c(943): Local peer down
[10/26/16 15:28:45] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:45] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[10/26/16 15:28:45] ../common/peer.c(943): Local peer down
[10/26/16 15:28:45] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:45] ../common/peer.c(943): Local peer down
[10/26/16 15:28:45] ../common/peer.c(943): Local peer down
[10/26/16 15:28:50] ../common/session.c(398): Accepted a local client
[10/26/16 15:28:50] ../common/session.c(398): Accepted a local client

can you make sense of this errors in logs/seahub_django_request.log?

2016-10-26 20:36:51,247 [WARNING] django.request:170 get_response Not Found: /seafile/width="32"
2016-10-26 21:28:45,208 [ERROR] django.request:256 handle_uncaught_exception Internal Server Error: /seafile/api2/account/info/
Traceback (most recent call last):
  File "/home/seafile/seafile-server-6.0.5/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/seafile/seafile-server-6.0.5/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/seafile/seafile-server-6.0.5/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/seafile/seafile-server-6.0.5/seahub/seahub/api2/base.py", line 23, in dispatch
    response = super(APIView, self).dispatch(*a, **kw)
  File "/home/seafile/seafile-server-6.0.5/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/views.py", line 466, in dispatch
    response = self.handle_exception(exc)
  File "/home/seafile/seafile-server-6.0.5/seahub/seahub/api2/base.py", line 20, in handle_exception
    return super(APIView, self).handle_exception(exc)
  File "/home/seafile/seafile-server-6.0.5/seahub/thirdpart/djangorestframework-3.3.2-py2.7.egg/rest_framework/views.py", line 463, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/seafile/seafile-server-6.0.5/seahub/seahub/api2/views.py", line 267, in get
    info['total'] = seafile_api.get_user_quota(email)
  File "/home/seafile/seafile-server-6.0.5/seafile/lib64/python2.6/site-packages/seaserv/api.py", line 567, in get_user_quota
    return seafserv_threaded_rpc.get_user_quota(username)
  File "/home/seafile/seafile-server-6.0.5/seafile/lib64/python2.6/site-packages/pysearpc/client.py", line 110, in newfunc
    ret_str = self.call_remote_func_sync(fcall_str)
  File "/home/seafile/seafile-server-6.0.5/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 75, in call_remote_func_sync
    req_id = self._start_service(client)
  File "/home/seafile/seafile-server-6.0.5/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 36, in _start_service
    raise SearpcError("Error received: %s %s (In _start_service)" % (rsp.code, rsp.code_msg))
SearpcError: Error received: 511 Unknown service (In _start_service)
2016-10-26 21:29:08,962 [WARNING] django.request:170 get_response Not Found: /seafile/seafile/

there's no related entries in logs/seahub.log or logs/fileserver.log

cnzzr commented 6 years ago

遇到同样的问题,关注 SearpcError: Error received: 511 Unknown service (In _start_service)