-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Self-compiled Seafile fileserver does not respond, web downloads hang #1119
Comments
Installing version 3.1.7 does not fix this. So this seems to be a bug in the Raspberry Pi build? |
Current version is 4.0.6 btw. Information on how to deploy seafile can be found here: http://manual.seafile.com/deploy/using_sqlite.html and here http://manual.seafile.com/deploy/deploy_with_nginx.html |
I tried using version 4.0.6, but had no success. Apparently the Arch Linux systemd service to start Seafile is faulty. When starting seafile manually with Thanks for providing such a nice software. |
I have to reopen this issue, though slightly rename it, because it is still present and not due to Arch Linux stuff. |
I tried a few more things, and apparently the issue is caused by |
I’ve tested seaf-server 4.1.5 with several versions of libevhtp:
I’m using Gentoo Linux, so this isn’t Arch-specific issue. |
It seems that it 1.2.9 with the system-provided oniguruma worked just by some weird coincidence, it doesn’t work anymore. :( This is weird. |
I can confirm both the problem and fix (1.2.9 with included oniguruma), on gentoo + 4.1.2 seafile server. I have attached to the stuck seaf-server process with following result. It was not possible to get it to step out of epoll_wait () by connecting in any way. I forgot to save the stacktraces, only remember that Thread 3 was in malloc() and thread 1 was in libevent's event_loop. Looks like some kind of deadlock.
|
Augh, wish someone would have poked me about this in April. I was helping someone else who was having a problem they attributed to libevhtp using seafile. It turned out not to be libevhtp in that case, but I started digging around this code to further assist him, and eventually made my way to pending issues. Alas I find this. After looking around a bit, (server/access-file.c for example), there was a change in 1.2.9 that could break (technically, hanging connections) this and induce the state @jurov pasted. I was being harassed (if you see the issue below, I'm not really joking; it got a bit hostile) about pipelined requests, and I implemented a fix to do just that. But it touched some logic that the seafile code uses, and I am completely sorry & embarrassed by saying it. "you call resume AFTER you have sent the reply (not BEFORE)." or in short: treat it like pending data, then hit the resume button. Long story short: pipelined request processing is hard. (https://github.com/ellzey/libevhtp/issues/86 <- it's like 432423 pages long). But it came down to this:
I would be happy to go through all this code and make sure that the order is correct. |
@ellzey Thank you very much for the information. We will give new version of libevhtp a fully test in the next 2 weeks. |
So here is the problem, again: When EV_WRITE is enabled, and there is no more data that is written, then nothing happens. This was fixed in libevent2.1x. with I'm trying to figure out how to emulate the function in 2.0. |
I haven't left yet, I just pushed some testing code that gets around using libevent 2.1 https://github.com/ellzey/libevhtp/tree/feature/resume_fixes
Much testing from my side, along with better documentation of course. |
We need a custom version of libevhtp otherwise seafile hangs while accessing a file. haiwen/seafile#1119
Otherwise seaf-server never gives us the file. See haiwen/seafile#1119
Please see https://github.com/haiwen/seafile-server/issues/67#issuecomment-337904800 , it seems to work. |
Hi,
I have a problem when downloading files from the seahub web interface.
I installed Seafile on a Raspberry Pi on Arch Linux, using seafile-server (AUR) and the seafile server tarball from the official seafile download website, and deployed it on the local subnet using nginx and SQLite as described in the Arch Linux wiki entry.
Everything (syncing using the linux client, browsing the website) works, except downloading files through the seahub web interface (the file has just a few bytes):
Without an entry
FILE_SERVER_ROOT
inseahub_settings.py
the download link redirects from http://192.168.1.10/repo/...ID.../...ID.../download/?p=/test.txt to http://192.168.1.10:8082/files/...ID.../test.txt. But when opening this link (in a browser or withcurl -v --cookie ...
) you get no response at all from the seafile fileserver, the browser is stuck at loading.The port 8082 is definitively open and netstat shows seaf-server is listening on this port. I tried using nginx and
FILE_SERVER_ROOT
, but downloads are stuck as well, failing with a gateway timeout. In thelogs/
directory there is no sign that any client has made an attempt to access a file.Is there something wrong with my configuration, or is there a bug in the raspberry build?
Should I try to install an older version of seafile?
The text was updated successfully, but these errors were encountered: