upstream keepalive - call for testing
magicbear
nginx-forum at nginx.us
Wed Aug 31 20:04:57 UTC 2011
OK, It works for 3 days with 40 million request haven't coredump.
Thanks.
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Sun, Aug 28, 2011 at 01:07:25PM -0400,
> magicbear wrote:
>
> > Hello, tested for 2 days, the segmentation
> failure frequence is
> > decreased, but sometime still will dead.
> >
> > Here is the coredump information. It seems
> appear too at official
> > without patch version.
>
> [...]
>
> > (gdb) bt
> > #0 0x000000000045bd99 in
> ngx_http_upstream_handler (ev=0x7f99438901e8)
> > at src/http/ngx_http_upstream.c:921
> > #1 0x0000000000427839 in
> ngx_event_expire_timers () at
> > src/event/ngx_event_timer.c:149
>
> Could you please test if the attached patch fixes
> things for you?
>
> You may also grab it from here:
> http://mdounin.ru/files/patch-nginx-ssl-shutdown.t
> xt
>
> Maxim Dounin
> # HG changeset patch
> # User Maxim Dounin <mdounin at mdounin.ru>
> # Date 1314581235 -14400
> # Node ID 804454a04e22d32c064a3af8e7b24326c7fc2d63
> # Parent 4b58ea791d9f09b0e2d019fcdea340c0a390af6c
> Handle quiet ssl shutdown.
>
> OpenSSL's SSL_shutdown() may still try to talk to
> network even if
> SSL_set_shutdown(SSL_RECEIVED_SHUTDOWN|SSL_SENT_SH
> UTDOWN) was used.
> This happens if there are some unsent alerts.
>
> Use SSL_set_quiet_shutdown() to actually shutdown
> quitely if we were asked
> to. Note that SSL_set_shutdown() is still
> required as not setting it will
> invalidate session.
>
> diff --git a/src/event/ngx_event_openssl.c
> b/src/event/ngx_event_openssl.c
> --- a/src/event/ngx_event_openssl.c
> +++ b/src/event/ngx_event_openssl.c
> @@ -1205,6 +1205,7 @@
> ngx_ssl_shutdown(ngx_connection_t *c)
>
> if (c->timedout) {
> mode =
> SSL_RECEIVED_SHUTDOWN|SSL_SENT_SHUTDOWN;
> +
> SSL_set_quiet_shutdown(c->ssl->connection, 1);
>
> } else {
> mode =
> SSL_get_shutdown(c->ssl->connection);
> @@ -1216,6 +1217,10 @@
> ngx_ssl_shutdown(ngx_connection_t *c)
> if (c->ssl->no_send_shutdown) {
> mode |= SSL_SENT_SHUTDOWN;
> }
> +
> + if (c->ssl->no_wait_shutdown &&
> c->ssl->no_send_shutdown) {
> +
> SSL_set_quiet_shutdown(c->ssl->connection, 1);
> + }
> }
>
> SSL_set_shutdown(c->ssl->connection, mode);
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,213207,214602#msg-214602
More information about the nginx
mailing list