Hello! 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 of ngx_http_upstream_finalize_request(). - Add a call to ngx_http_run_posted_requests() after calling ngx_http_upstream_finalize_request() during error handling of the SSL connection establishment. Can anyone verify this issue and the suggested solution? If so, I'll be more than happy to submit a patch. Best regards, Aviram
_______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
