]> git.kaiwu.me - nginx.git/commit
Fixed AIO error handling on FreeBSD.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 30 Jan 2012 07:39:47 +0000 (07:39 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 30 Jan 2012 07:39:47 +0000 (07:39 +0000)
commitb3e461e63c39875e63c40f9d620d1a4ece2a9134
tree268e18dd02b9c7fb07fdc608222dad71e3deb62d
parent90a7a8f5d98b464b675c883383185a5048fc22db
Fixed AIO error handling on FreeBSD.

The aio_return() must be called regardless of the error returned by
aio_error().  Not calling it resulted in various problems up to segmentation
faults (as AIO events are level-triggered and were reported again and again).

Additionally, in "aio sendfile" case r->blocked was incremented in case of
error returned from ngx_file_aio_read(), thus causing request hangs.
src/http/ngx_http_copy_filter_module.c
src/os/unix/ngx_file_aio_read.c