Upstream error handling issue
aviram at adallom.com
Mon Aug 19 14:17:24 UTC 2013
I have encountered a potential bug in Nginx's upstream module -
When the upstream server is an SSL server, if an error occurs in
ngx_http_upstream_ssl_handshake() - the
function ngx_http_run_posted_requests() is never called.
This happens when initiating an SSL connection, the SSL module handles the
handshake, and not the upstream module (meaning ngx_http_upstream_handler()
is not involved in the process), and so if an error occurs, there's no one
who calls ngx_http_run_posted_requests().
The effect of this issue is the requests that "spawn" subrequests that use
the upstream error get stuck in case of an SSL error.
I can suggest two possible fixes (in the file ngx_http_upstream.c):
- Add a call to ngx_http_run_posted_requests() to the end
- Add a call to ngx_http_run_posted_requests() after calling
ngx_http_upstream_finalize_request() during error handling of the SSL
Can anyone verify this issue and the suggested solution? If so, I'll be
more than happy to submit a patch.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nginx-devel