haiwen / seafile

High performance file syncing and sharing, with also Markdown WYSIWYG editing, Wiki, file label and other knowledge management features.
http://seafile.com/
Other
12.25k stars 1.54k forks source link

Page unavailable due to a server hiccup after login #985

Closed woragyviz closed 9 years ago

woragyviz commented 9 years ago

Hi, After Ubuntu updates, can't access to seafile with web interface. After identification i receive message:

Page unavailable Sorry, but the requested page is unavailable due to a server hiccup. Our engineers have been notified, so check back later.

Can't figure out where is the problem. I use Ubuntu 14.04.1 LTS

Runtime/error.log repeating message: self.stream.seek(0, 2) #due to non-posix-compliant Windows feature IOError: [Errno 29] Illegal seek Logged from file base.py, line 146 Traceback (most recent call last): File "/usr/lib/python2.7/logging/handlers.py", line 76, in emit

Logs/ccnet.log: [12/22/14 15:48:00] ../common/processor.c(218): [Proc] Shutdown processor mqserver-proc(-1020) for bad update: 515 peer down [12/22/14 15:48:06] ../common/connect-mgr.c(210): [conn] incoming handshake fails. [12/22/14 15:48:08] ../common/session.c(375): Accepted a local client [12/22/14 15:48:10] ../common/session.c(375): Accepted a local client [12/22/14 15:48:10] ../common/session.c(375): Accepted a local client [12/22/14 15:48:10] ../common/peer.c(943): Local peer down [12/22/14 15:48:10] ../common/peer.c(943): Local peer down [12/22/14 15:48:10] ../common/processor.c(218): [Proc] Shutdown processor mqserver-proc(-1020) for bad update: 515 peer down

Logs/seafile.log: [12/22/2014 03:51:40 PM] ../common/mq-mgr.c(106): [mq mgr] publish to hearbeat mq: seaf_server.heartbeat [12/22/2014 03:51:40 PM] listen-mgr.c(115): listen on port 12001 for block tranfer [12/22/2014 03:51:40 PM] http-server.c(1425): Could not bind socket: Address already in use

What can i do? Tried to find solutions, but without success.

freeplant commented 9 years ago

check logs/seahub_django_request.log

woragyviz commented 9 years ago

Sorry that i forgot to mention, but that file is empty. Configured to get emails from Django, maybe this can help:

Traceback (most recent call last):

File "/media/cloud/seafile/seafile-server-4.0.1/seahub/thirdpart/Django-1.5.1-py2.6.egg/django/core/handlers/base.py", line 115, in get_response response = callback(request, _callback_args, *_callback_kwargs)

File "/media/cloud/seafile/seafile-server-4.0.1/seahub/seahub/auth/decorators.py", line 26, in _wrapped_view return view_func(request, _args, *_kwargs)

File "/media/cloud/seafile/seafile-server-4.0.1/seahub/seahub/base/decorators.py", line 35, in _decorated return func(request, _args, *_kwargs)

File "/media/cloud/seafile/seafile-server-4.0.1/seahub/seahub/views/init.py", line 976, in myhome owned_repos = get_owned_repo_list(request)

File "/media/cloud/seafile/seafile-server-4.0.1/seahub/seahub/views/init.py", line 936, in get_owned_repo_list return seafile_api.get_owned_repo_list(username)

File "/media/cloud/seafile/seafile-server-4.0.1/seafile/lib64/python2.6/site-packages/seaserv/api.py", line 74, in get_owned_repo_list return seafserv_threaded_rpc.list_owned_repos(username)

File "/media/cloud/seafile/seafile-server-4.0.1/seafile/lib64/python2.6/site-packages/pysearpc/client.py", line 110, in newfunc ret_str = self.call_remote_func_sync(fcall_str)

File "/media/cloud/seafile/seafile-server-4.0.1/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 75, in call_remote_func_sync req_id = self._start_service(client)

File "/media/cloud/seafile/seafile-server-4.0.1/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)

<WSGIRequest path:/, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{'csrftoken': 'sPAYVqgqfFoz9NIfuFhbefLTIol06MVY', 'filter': 'downloading', 'sessionid': 'z1b1fwaneqfbfd5inddz11z71qpnfdi8', 'ui-tabs-1': '0'}, META:{u'CSRF_COOKIE': u'sPAYVqgqfFoz9NIfuFhbefLTIol06MVY', 'HTTPACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,/_;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'csrftoken=sPAYVqgqfFoz9NIfuFhbefLTIol06MVY; filter=downloading; sessionid=z1b1fwaneqfbfd5inddz11z71qpnfdi8; ui-tabs-1=0', 'HTTP_HOST': '192.168.168.2:8000', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0', 'PATH_INFO': u'/', 'QUERY_STRING': '', 'RAW_URI': '/', 'REMOTE_ADDR': '192.168.168.1', 'REMOTE_PORT': '33212', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': '192.168.168.2', 'SERVER_PORT': '8000', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'gunicorn/0.16.1', 'gunicorn.socket': <socket._socketobject object at 0x7fadb4a88f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7fadb580dc10>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7fadb5830120>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7fadb4904c50>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>

Jenselme commented 9 years ago

Hi I have a similar problem on Debian with Seafile server 4.0.5. Here is my seahub_django_request.log:

2015-01-20 20:51:16,228 [ERROR] django.request:212 handle_uncaught_exception Internal Server Error: /sys/seafadmin/
Traceback (most recent call last):
  File "/var/www/seafile-server/seafile/seahub/thirdpart/Django-1.5.1-py2.6.egg/django/core/handlers/base.py", line 115, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/var/www/seafile-server/seafile/seahub/seahub/auth/decorators.py", line 26, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/var/www/seafile-server/seafile/seahub/seahub/base/decorators.py", line 20, in _decorated
    return func(request, *args, **kwargs)
  File "/var/www/seafile-server/seafile/seahub/seahub/views/sysadmin.py", line 59, in sys_repo_admin
    per_page + 1)
  File "/var/www/seafile-server/seafile/seafile/lib64/python2.6/site-packages/seaserv/api.py", line 59, in get_repo_list
    return seafserv_threaded_rpc.get_repo_list(start, limit)
  File "/var/www/seafile-server/seafile/seafile/lib64/python2.6/site-packages/pysearpc/client.py", line 110, in newfunc
    ret_str = self.call_remote_func_sync(fcall_str)
  File "/var/www/seafile-server/seafile/seafile/lib64/python2.6/site-packages/ccnet/rpc.py", line 75, in call_remote_func_sync
    req_id = self._start_service(client)
  File "/var/www/seafile-server/seafile/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)

If you need more information about my config or the log, please let me know.

freeplant commented 9 years ago

The problem is caused by Seafile server do not start correctly. From the log (seafile.log)

Could not bind socket: Address already in use

it may be caused by port "8082" is already used by other software.

Jenselme commented 9 years ago

Thanks for your quick answer. My seafile.log is empty. Maybe it is not exactly the same problem as @woragyviz? Here are more log files.

controller.log:

[01/20/15 14:50:12] seafile-controller.c(397): pid file /var/www/seafile-server/pids/seaf-server.pid does not exist
[01/20/15 14:50:12] seafile-controller.c(417): seaf-server need restart...
[01/20/15 14:50:12] seafile-controller.c(185): starting seaf-server ...
[01/20/15 14:50:12] seafile-controller.c(73): spawn_process: seaf-server -c /var/www/seafile-server/ccnet -d /data/seafile-data -l /var/www/seafile-server/logs/seafile.log -P /var/www/seafile-server/pids/seaf-server.pid
[01/20/15 14:50:12] seafile-controller.c(88): spawned seaf-server, pid 29875

seahub.log (the following line is repeated several times):

2015-01-20 20:50:45,954 [ERROR] seahub.views.sysadmin:182 _populate_user_quota_usage Error received: 511 Unknown service (In _start_service)

ccnet.log (the following lines are repeated):

[01/20/15 14:24:24] ../common/peer.c(941): libevent got an error! what=33, errno=104 (Connection reset by peer)
[01/20/15 14:24:24] ../common/peer.c(943): Local peer down
[01/20/15 14:24:24] ../common/peer.c(943): Local peer down

I have just tested other URLs and what is really strange is that some of them actually work. Here is the one I tested that seem to work correctly:

freeplant commented 9 years ago

The seaf-server is not started. Without seafile.log, I can't figure the reason why it can't be started. Maybe you can try stop and start again.

Jenselme commented 9 years ago

I tried to restart the server with: su - -c '/var/www/seafile-server/seafile/seafile.sh restart' seafile. My seafile.log is still empty. I checked that the seafile user who is running the server has the rights to write the log.

Here is what was printed in the terminal when I launched the previous command:

Pas de répertoire, connexion avec HOME=/

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

Done.

I think that the seafile server is started. If I look at the output of ps | grep seafile, I get (in addition to all seahub processes):

seafile  56816     1  0 10:18 ?        00:00:00 /var/www/seafile-server/seafile/seafile/bin/seafile-controller -c /var/www/seafile-server/ccnet -d /data/seafile-data
seafile  56892     1  0 10:19 ?        00:00:00 ccnet-server -c /var/www/seafile-server/ccnet -f /var/www/seafile-server/logs/ccnet.log -d -P /var/www/seafile-server/pids/ccnet.pid
Jenselme commented 9 years ago

It seemed I didn't use the proper password for the database. It is working perfectly now.

Thanks.

angristan commented 8 years ago

Same problem on Debian 8, here is my logs/seahub_django_request.log

2016-07-19 22:13:06,757 [ERROR] django.request:256 handle_uncaught_exception Internal Server Error: /accounts/login/
Traceback (most recent call last):
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/core/handlers/base.py", line 223, in get_response
    response = middleware_method(request, response)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/contrib/sessions/middleware.py", line 50, in process_response
    request.session.save()
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/contrib/sessions/backends/db.py", line 56, in save
    return self.create()
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/contrib/sessions/backends/db.py", line 37, in create
    self._session_key = self._get_new_session_key()
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/contrib/sessions/backends/base.py", line 155, in _get_new_session_key
    if not self.exists(session_key):
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/contrib/sessions/backends/db.py", line 33, in exists
    return Session.objects.filter(session_key=session_key).exists()
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/models/query.py", line 586, in exists
    return self.query.has_results(using=self.db)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/models/sql/query.py", line 484, in has_results
    return compiler.has_results()
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/models/sql/compiler.py", line 811, in has_results
    return bool(self.execute_sql(SINGLE))
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/models/sql/compiler.py", line 840, in execute_sql
    cursor.execute(sql, params)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/utils.py", line 98, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/srv/cloud/seafile-server-latest/seahub/thirdpart/Django-1.8.10-py2.7.egg/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
ProgrammingError: (1146, "Table 'seahub-db.django_session' doesn't exist")
ghost commented 8 years ago

In Centtos i resolved this issue with below steps:- 1) Stop the services 2) Run the following command: rm -rf /tmp/seahub_cache 3) Start the services

Raphi111 commented 8 years ago

I just had the same problem and clearing /tmp/seahub_cache and rebooting fixed it for me. Thank you !

lizhenghn123 commented 7 years ago

Yes, in centos7, you can do :

  1. rm -rf /tmp/seahub_cache
  2. restart seafile and seahub

It's done!

Pistos commented 7 years ago

Same problem on Gentoo, with Seafile 4.0.4.

(Update: Sorry, I see that Seafile is up to version 6 now. I will try a newer version.)

./seafile-server-4.0.4/runtime/error.log has this when the problem occurs.

Traceback (most recent call last):
  File "/usr/lib64/python2.7/logging/handlers.py", line 76, in emit
    if self.shouldRollover(record):
  File "/usr/lib64/python2.7/logging/handlers.py", line 157, in shouldRollover
    self.stream.seek(0, 2)  #due to non-posix-compliant Windows feature
IOError: [Errno 29] Illegal seek
Logged from file base.py, line 212

Clearing /tmp/seahub_cache temporarily helps, but the issue comes back after some usage. The issue doesn't happen on every page hit, but it happens on many page hits, even when trying to refresh the same page. My users are getting very frustrated with the state of affairs. Any suggestions on how to fix this permanently would be appreciated.

marcusmysc commented 7 years ago

Temporarily you can create a cronjob that deletes the cache folder every minute or so

Pistos commented 7 years ago

@marcusm1009 Yes, I thought of that recently. I think I will try it, because I have been unable to build Seafile 6.

tinyc-z commented 6 years ago

rm -rf /tmp/seahub_cache

work

davidanger commented 5 years ago

Windows Platform: deleted seahub_cache/* work for me.