Nginx-0.7.55

Changes with nginx 0.7.55 06 May
2009

*) Bugfix: the http_XXX parameters in "proxy_cache_use_stale" and
   "fastcgi_cache_use_stale" directives did not work.

*) Bugfix: fastcgi cache did not cache header only responses.

*) Bugfix: of "select() failed (9: Bad file descriptor)" error in
   nginx/Unix and "select() failed (10022: ...)" error in 

nginx/Windows.

*) Bugfix: a segmentation fault might occur in worker process, if an
   "debug_connection" directive was used; the bug had appeared in
   0.7.54.

*) Bugfix: fix ngx_http_image_filter_module building errors.

*) Bugfix: the files bigger than 2G could not be transferred using
   $r->sendfile.
   Thanks to Maxim D..

Changes with nginx 0.7.55 06 May 2009

*) Bugfix: of “select() failed (9: Bad file descriptor)” error in
nginx/Unix and “select() failed (10022: …)” error in nginx/Windows.

Great work.

Looking forward to recieve your multi-thread IOCP based version.

Robert Kwok

On Wed, May 06, 2009 at 06:23:44PM +0800, ??? wrote:

Looking forward to recieve your multi-thread IOCP based version.

The multi-threads version will take several months.

great work.
I like native windows port.
Thanks

There appears to be a bug in 0.7.55 (as well as 0.7.54, and perhaps
others) when serving .flv files.

Connections never free. If you look at the stub_status page, the list of
writers increases without limit. On a completely idle machine,
connections that use the flv module are permanently added to the
“writing” list, no matter how long it has been since the connection was
closed; connections that do not use the flv module increment the other
connection counters, as expected, but do not create lingering “ghost
writers.”

The server in question is hosting the flv files from an XFS partition.
The nginx executable has been linked with libhugepages and is fully
loaded in a tlbfs segment. Sendfile is enabled and it makes no
difference what the output buffers parameter is set to. I have tried it
with directio on and off with the same result: with directio on, nginx
leaks buffer memory, increasing the size of its memory image without
limit; with directio off, it would (eventually, if I let it) exhaust
file descriptors.

This problem does not exist for 0.6.36 using the exact same compilation
options, configuration files and spool directory.

Posted at Nginx Forum:

Hello!

On Fri, May 08, 2009 at 07:16:27PM -0400, kevinmkilbride wrote:

There appears to be a bug in 0.7.55 (as well as 0.7.54, and perhaps others) when serving .flv files.

Connections never free. If you look at the stub_status page, the list of writers increases without limit. On a completely idle machine, connections that use the flv module are permanently added to the “writing” list, no matter how long it has been since the connection was closed; connections that do not use the flv module increment the other connection counters, as expected, but do not create lingering “ghost writers.”

Could you please try this patch?
http://article.gmane.org/gmane.comp.web.nginx.russian/24085

Flv module shouldn’t be the problem since it doesn’t increment
connection counters by itself, but typical usage pattern for flv
may trigger the issue described in the above patch (especially
combined with limit_rate functionality, not sure if you use it).

Maxim D.

Yes, that fixed it! Many kind thanks to you!

The test files were very large, so the connections were never run to
completion, and rate limiting was used, so both criteria for failure
appeared to be met. I just torture tested your patch and it appears to
completely address the issue.

Thanks again.

Posted at Nginx Forum: