Bug #896
closedpartial transfer is racey (testcase provided)
Description
First... can't trigger this remotely, so requires getting having the file locally; not sure of the underlying reason.
second; need to grab the file http://dev.gentooexperimental.org/~pkgcore/bzr/.bzr/repository/signatures.knit
third, need netcat, and script that is attached; heavier the load, more likely the failure.
This occurs for at least 1.4.13, 1.4.11; haven't tested below, but suspect it's a long standing failure due to other 206 errors.
Files
Updated by ferringb over 18 years ago
Finally... would provide an strace'ing, except that seems to be perturb it enough for it to succeed.
Updated by gstrauss about 9 years ago
- Description updated (diff)
- Status changed from New to Need Feedback
Presumably, http://dev.gentooexperimental.org/~pkgcore/bzr/.bzr/repository/signatures.knit has changed size since your post 9 years ago.
What version of lighttpd are (were) you using?
What is your lighttpd.conf?
How was your lighttpd built? (--with-mmap=yes?) (how is the file being sent?)
What is the error you are seeing? The test script you provided greps for Content-Range, so presumably it has something to do with that.
Is it possible that signatures.knit changed during your test?
Given that you're describing a race condition, your lighttpd version, lighttpd.conf and how lighttpd was built are important to figuring this out.
Of course, first thing to check is: is this still an issue with lighttpd 1.4.39? :)
Updated by gstrauss almost 9 years ago
- Status changed from Need Feedback to Missing Feedback
If this is still an issue, please reopen ticket and add some updated info. Thanks.
Updated by gstrauss about 1 year ago
- Status changed from Missing Feedback to Fixed
- ASK QUESTIONS IN Forums set to No
For a long time now, lighttpd reuses a single open file descriptor to the file for multiple ranges in HTTP range requests.
Very old versions of lighttpd might have added separate FILE_CHUNKs for each range to the response write_queue, and re-opened the file to serve each range, which has a race condition if the file is replaced during the response processing.
Also available in: Atom