There is a PR (43472, http://issues.apache.org/bugzilla/show_bug.cgi?id=43472) that the test in is_socket_connected in proxy_util.c whether a backend connection is still alive or not does not work. I created a patch that seems to fix the issue on Solaris 9 (according to the reporter) and on Linux (according to my tests). Could someone with a Win32 environment available please test if this also works fine on Windows before I commit to trunk? Thanks. BTW: I am not sure if EAGAIN will be ever returned by apr_poll but I left it it in the if statement.
Index: modules/proxy/proxy_util.c =================================================================== --- modules/proxy/proxy_util.c (Revision 579251) +++ modules/proxy/proxy_util.c (Arbeitskopie) @@ -2078,7 +2078,7 @@ else return 0; } - else if (APR_STATUS_IS_EAGAIN(status)) { + else if (APR_STATUS_IS_TIMEUP(status) || APR_STATUS_IS_EAGAIN(status)) { return 1; } return 0;
Index: modules/proxy/proxy_util.c =================================================================== --- modules/proxy/proxy_util.c (Revision 579251) +++ modules/proxy/proxy_util.c (Arbeitskopie) @@ -2078,7 +2078,7 @@ else return 0; } - else if (APR_STATUS_IS_EAGAIN(status)) { + else if (APR_STATUS_IS_TIMEUP(status) || APR_STATUS_IS_EAGAIN(status)) { return 1; } return 0;