Package Details: seahub 11.0.9-1

Git Clone URL: https://aur.archlinux.org/seahub.git (read-only, click to copy)
Package Base: seahub
Description: The web frontend for seafile server
Upstream URL: https://github.com/haiwen/seahub
Licenses: Apache
Submitter: eolianoe
Maintainer: Joffrey
Last Packager: Joffrey
Votes: 7
Popularity: 0.000000
First Submitted: 2017-07-03 09:48 (UTC)
Last Updated: 2024-05-31 15:37 (UTC)

Pinned Comments

Latest Comments

« First ‹ Previous 1 .. 5 6 7 8 9 10 11 12 13 Next › Last »

Captain_Rage commented on 2018-02-17 23:49 (UTC)

@klemens Nope, that didn't work. However, I went with your tip and simply reverted back to using FastCGI. Now Seahub working flawlessly again. I have no idea what the problem with wsgi is. If I will be forced to use wsgi in the future I will create a support thread. Cheers for the assistance!

Joffrey commented on 2018-02-17 21:23 (UTC) (edited on 2018-02-17 21:40 (UTC) by Joffrey)

@klemens compiled all locales is a good idea, I think push it. For your others suggestions I do not agree:

  • "Deleting random directories" ?!? It's two absolute path (correction: ok the install file 'll be delete). You must never modify manually a file or directory in /usr ! No user files should be there.
  • Openjpeg2 is a ffmpeg depend, It is necessarily installed with seafile-server.

Personally, I think that using a venv is a good idea, it avoids installing unnecessary dependencies elsewhere. If you want, you can package seafile-server/seahub and dependencies without virtualenv and propose them on AUR.

klemens commented on 2018-02-17 18:04 (UTC)

The new package works fine for me (including seafile-server), although I still would prefer not using virtual environments (as much).

However, it seems openjpeg2 is still not a dependency (?) and the post_upgrade script is really scary. Deleting random directories can really break stuff, as other packages or the user itself might have some important files in there. Also it is not necessary, as all files in /usr/lib/seafile and /usr/bin/seahub-preupgrade were part of the previous packages and are removed by pacman automatically.

I saw that your helper in the other package supports compiling the languages (although note that it currently misses the js-tanslations: djangojs.po), but why not simply compile all language files at compile time in this package? Something like:

for pofile in /path/seahub/locale/*/LC_MESSAGES/*.po; do
    msgfmt -o "${pofile%.po}.mo" "$pofile"
done

@Captain_Rage: These log files only contain something if there were any errors or any requests at all in the case of seahub_cache. Can you load seahub directly (port 8000 by default) without using a webserver in front of it? Note that in my experience using fastcgi with seahub is not very reliable but a simple reverse proxy has been working fine for several years here. Also it might make sense for you to open a thread in the arch forums or similar, as it is not very easy to follow the discussion here in the aur comments.

Captain_Rage commented on 2018-02-16 23:26 (UTC)

Yet another fruitless day trying to resolve my Seahub issue. I tried deploying a new instance, according to the official manual. Nothing changed, with the exception of

/tmp/seahub.log
/tmp/seahub_cache
/tmp/seahub_django_request.log

now appearing (although the log files stay empty). The thing is.......... Seahub is supposed to install its python dependencies in its own virtual environment with pip, right? The packages in there won't be identical to those installed on the normal system, visible to root, right? I should be able to enter Seahub's virtual environment and see which python packages are installed with pip, right? Nothing works or makes sense.

I run 'source /usr/lib/seahub/bin/activate' to enter Seahub's virtual environment, then 'pip2 list' only to find that the packages are identical to the ones outside the virtual environment (shouldn't 'gunicorn' be visible here, for example?!?) and exit with 'deactivate'.

When displaying the installed files of Seahub using -Ql in the package manager there are files with the name gunicorn. It seems to start using systemd also, but that's it. It simply refuses to work or give out any hint on why it doesn't.

What am I missing? Is it a misunderstanding from my part? Your guidance is dearly appreciated.

Joffrey commented on 2018-02-13 11:21 (UTC) (edited on 2018-02-13 11:21 (UTC) by Joffrey)

@Captain_Rage I have pinned the update procedure. I will try to update the wiki soon, this would avoid the problems related to a bad installation.

Captain_Rage commented on 2018-02-12 00:49 (UTC)

@Joffrey Thank you very much for the feedback. Your comment made me cling on to hope of salvaging my installation. I will try to figure it out. One more question: what is the recommended way of upgrading the Seafile server/Seahub installation? Earlier, when it was still working over here, I used to upgrade the server once a new package had been installed by running seahub-preupgrade as the seafile user (it would download upgrade scripts) and then running any upgrade script up to the current version. Now seahub-preupgrade seems to be gone.

Joffrey commented on 2018-02-11 10:05 (UTC) (edited on 2018-02-11 10:26 (UTC) by Joffrey)

@Captain_Rage I do not think anyone can help you, each configuration is unique. But if:

  • Seahub is not accessible to your.ip.local.port:8000 (It's a server problem, look permissons, configurations, run an upgrade... https://manual.seafile.com/faq/)
  • Seahub is not accessible to your.domain.ex (look your reverse proxy conf (gateway given), otherly your hosts file or your DNS conf if you have bought a domain can be also a problem source)

Else you can create a new instance.

Captain_Rage commented on 2018-02-09 22:54 (UTC) (edited on 2018-02-09 23:11 (UTC) by Captain_Rage)

Gunicorn and wsgi seem to be running. When running 'ps aux | grep gunicorn':

[root@Computer bin]# ps aux | grep gunicorn
seafile  24972  0.3  2.6  18336 12752 ?        S    Feb05  16:51 python2.7 /usr/lib/seahub/bin/gunicorn seahub.wsgi:application -c /home/seafile/longboat/seafile-server/runtime/seahub.conf -b 0.0.0.0:8000
seafile  29062 31.9  3.8  24996 18752 ?        R    15:49   0:04 python2.7 /usr/lib/seahub/bin/gunicorn seahub.wsgi:application -c /home/seafile/longboat/seafile-server/runtime/seahub.conf -b 0.0.0.0:8000
seafile  29063 31.0  3.7  24600 18468 ?        R    15:49   0:04 python2.7 /usr/lib/seahub/bin/gunicorn seahub.wsgi:application -c /home/seafile/longboat/seafile-server/runtime/seahub.conf -b 0.0.0.0:8000
seafile  29064 30.9  3.8  24996 18752 ?        R    15:49   0:04 python2.7 /usr/lib/seahub/bin/gunicorn seahub.wsgi:application -c /home/seafile/longboat/seafile-server/runtime/seahub.conf -b 0.0.0.0:8000
root     29069  0.0  0.1   2520   516 pts/0    S+   15:49   0:00 grep gunicorn

Seahub used to work fine when using FastCGI through nginx. This was also a while ago before you made a proper package for Seahub. I suppose it was running from files that got downloaded using seahub-preupgrade and upgrade scirpts that followed.

Meanwhile, /home/seafile/longboat/seafile-server/runtime/seahub.conf is spewing out stuff like:

[2018-02-09 23:46:33 +0000] [2844] [INFO] Booting worker with pid: 2844
[2018-02-09 23:47:03 +0000] [24972] [CRITICAL] WORKER TIMEOUT (pid:2842)
[2018-02-09 23:47:03 +0000] [24972] [CRITICAL] WORKER TIMEOUT (pid:2843)
[2018-02-09 23:47:03 +0000] [24972] [CRITICAL] WORKER TIMEOUT (pid:2844)
[2018-02-09 23:47:03 +0000] [2843] [INFO] Worker exiting (pid: 2843)
[2018-02-09 23:47:03 +0000] [2844] [INFO] Worker exiting (pid: 2844)
[2018-02-09 23:47:03 +0000] [2842] [INFO] Worker exiting (pid: 2842)
[2018-02-09 23:47:04 +0000] [2848] [INFO] Booting worker with pid: 2848
[2018-02-09 23:47:04 +0000] [2849] [INFO] Booting worker with pid: 2849
[2018-02-09 23:47:04 +0000] [2850] [INFO] Booting worker with pid: 2850

Older entries, from when it used to work (using FastCGI), looked like this:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/commands/runfcgi.py", line 28, in handle
    runfastcgi(args)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/servers/fastcgi.py", line 184, in runfastcgi
    WSGIServer(get_internal_wsgi_application(), **wsgi_opts).run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_fork.py", line 133, in run
    ret = PreforkServer.run(self, sock)
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 123, in run
    if not self._spawnChild(sock): break
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 296, in _spawnChild
    self._child(sock, parent)
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 374, in _child
    self._jobClass(clientSock, addr, *self._jobArgs).run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 646, in run
    self.process_input()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 682, in process_input
    self._do_params(rec)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 781, in _do_params
    self._start_request(req)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 765, in _start_request
    req.run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 561, in run
    self.stderr.flush()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 328, in flush
    self._write(data)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 299, in _write
    self._conn.writeRecord(rec)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 697, in writeRecord
    rec.write(self._sock)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 532, in write
    self._sendall(sock, self.contentData)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 507, in _sendall
    sent = sock.send(data)
socket.error: [Errno 32] Broken pipe
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/management/commands/runfcgi.py", line 28, in handle
    runfastcgi(args)
  File "/usr/lib/seafile/seafileenv/lib/python2.7/site-packages/django/core/servers/fastcgi.py", line 184, in runfastcgi
    WSGIServer(get_internal_wsgi_application(), **wsgi_opts).run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_fork.py", line 133, in run
    ret = PreforkServer.run(self, sock)
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 123, in run
    if not self._spawnChild(sock): break
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 296, in _spawnChild
    self._child(sock, parent)
  File "/usr/lib/python2.7/site-packages/flup/server/preforkserver.py", line 374, in _child
    self._jobClass(clientSock, addr, *self._jobArgs).run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 646, in run
    self.process_input()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 682, in process_input
    self._do_params(rec)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 781, in _do_params
    self._start_request(req)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 765, in _start_request
    req.run()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 561, in run
    self.stderr.flush()
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 328, in flush
    self._write(data)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 299, in _write
    self._conn.writeRecord(rec)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 697, in writeRecord
    rec.write(self._sock)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 532, in write
    self._sendall(sock, self.contentData)
  File "/usr/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 507, in _sendall
    sent = sock.send(data)
socket.error: [Errno 32] Broken pipe
[2017-09-23 19:26:07 +0000] [298] [INFO] Starting gunicorn 19.7.1
[2017-09-23 19:26:07 +0000] [298] [INFO] Listening at: http://0.0.0.0:8000 (298)
[2017-09-23 19:26:07 +0000] [298] [INFO] Using worker: sync
[2017-09-23 19:26:07 +0000] [302] [INFO] Booting worker with pid: 302
[2017-09-23 19:26:07 +0000] [303] [INFO] Booting worker with pid: 303
[2017-09-23 19:26:07 +0000] [304] [INFO] Booting worker with pid: 304
[2017-09-23 19:26:37 +0000] [298] [CRITICAL] WORKER TIMEOUT (pid:304)
[2017-09-23 19:26:37 +0000] [298] [CRITICAL] WORKER TIMEOUT (pid:302)
[2017-09-23 19:26:37 +0000] [298] [CRITICAL] WORKER TIMEOUT (pid:303)
[2017-09-23 19:26:37 +0000] [304] [INFO] Worker exiting (pid: 304)
[2017-09-23 19:26:37 +0000] [302] [INFO] Worker exiting (pid: 302)
[2017-09-23 19:26:37 +0000] [303] [INFO] Worker exiting (pid: 303)

Maybe this holds a clue...?!

I tried to check if all the pip packages are installed correctly in the virtual environment of Seahub. I did this by changing work directory to /usr/lib/seahub/bin, typing 'source activate' and running:

(seahub) [root@Computer bin]# pip2 list --local --format=columns
Package         Version
--------------- -------
appdirs         1.4.3  
bcrypt          3.1.4  
Beaker          1.8.1  
cffi            1.11.4 
chardet         3.0.4  
decorator       4.0.11 
flup            1.0.2  
imageio         2.1.2  
Mako            1.0.7  
MarkupSafe      1.0    
MySQL-python    1.2.5  
numpy           1.12.1 
packaging       16.8   
pip             9.0.1  
ply             3.10   
pycparser       2.18   
pyparsing       2.2.0  
python-dateutil 2.6.1  
setuptools      38.5.0 
simplejson      3.13.2 
six             1.11.0 
tqdm            4.11.2 
urllib3         1.22   
virtualenv      15.1.0 
web.py          0.37   

This returns the same results as running 'pip2 list --local --format=columns' as root. Does this mean that the virtual environment of Seahub is missing necessary packages?

I swear, I thought that I wasn't completely computer illiterate and/or idiotic before these Seahub problems began. Now I have tried so many iterations of everything and read so much documentation and I have still no bloody clue how this is supposed to work, with all the webserver stuff and different components in obscure virtual environments and outdated configuration files with wrong permissions and whatnot.

EDIT: @Joffrey And to answer your question: yes, nginx is available on 192.168.0.xx and Seahub used to be available on https://192.168.0.xx:8001 but now only shows '502 Bad Gateway nginx' (trying to access it locally doesn't change anything; it's the same problem).