Mercurial > hg > nginx-quic
view auto/os/solaris @ 4254:35861ba428d1 stable-1.0
Merging r4195, r4196:
AIO related fixes:
*) Fix for connection drops with AIO.
Connections serving content with AIO to fast clients were dropped with
"client timed out" messages after send_timeout from response start.
*) Fix for socket leak with "aio sendfile" and "limit_rate".
Second aio post happened when timer set by limit_rate expired while we have
aio request in flight, resulting in "second aio post" alert and socket leak.
The patch adds actual protection from aio calls with r->aio already set to
aio sendfile code in ngx_http_copy_filter(). This should fix other cases
as well, e.g. when sending buffered to disk upstream replies while still
talking to upstream.
The ngx_http_writer() is also fixed to handle the above case (though it's
mostly optimization now).
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 01 Nov 2011 14:13:25 +0000 |
parents | af0eaf409225 |
children | d620f497c50f |
line wrap: on
line source
# Copyright (C) Igor Sysoev have=NGX_SOLARIS . auto/have_headers CORE_INCS="$UNIX_INCS" CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS" CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS " CORE_LIBS="$CORE_LIBS -lsocket -lnsl" NGX_RPATH=YES # Solaris's make does not support a blank line between target and rules ngx_spacer= CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64 -lsocket -lnsl" if [ $ZLIB_ASM != NO ]; then echo "$0: error: the --with-zlib-asm=CPU option is not supported" echo "on that platform" echo exit 1 fi ngx_feature="sendfilev()" ngx_feature_name="NGX_HAVE_SENDFILE" ngx_feature_run=no ngx_feature_incs="#include <sys/sendfile.h>" ngx_feature_path= ngx_feature_libs="-lsendfile" ngx_feature_test="int fd = 1; sendfilevec_t vec[1]; size_t sent; ssize_t n; n = sendfilev(fd, vec, 1, &sent)" . auto/feature if [ $ngx_found = yes ]; then CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS" CORE_LIBS="$CORE_LIBS -lsendfile" fi ngx_feature="event ports" ngx_feature_name="NGX_HAVE_EVENTPORT" ngx_feature_run=no ngx_feature_incs="#include <port.h>" ngx_feature_path= ngx_feature_libs= ngx_feature_test="int n = port_create()" . auto/feature if [ $ngx_found = yes ]; then CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS" EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE" fi