File apache2-bsc1208708-fix-passing-health-check-recover-worker-from-error-state.patch of Package apache2.34694
*) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]
---
modules/proxy/mod_proxy.h | 2 ++
modules/proxy/mod_proxy_hcheck.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
Index: httpd-2.4.23/modules/proxy/mod_proxy.h
===================================================================
--- httpd-2.4.23.orig/modules/proxy/mod_proxy.h
+++ httpd-2.4.23/modules/proxy/mod_proxy.h
@@ -334,6 +334,8 @@ PROXY_WORKER_HC_FAIL )
#define PROXY_WORKER_IS_HCFAILED(f) ( (f)->s->status & PROXY_WORKER_HC_FAIL )
+#define PROXY_WORKER_IS_ERROR(f) ( (f)->s->status & PROXY_WORKER_IN_ERROR )
+
#define PROXY_WORKER_IS(f, b) ( (f)->s->status & (b) )
/* default worker retry timeout in seconds */
Index: httpd-2.4.23/modules/proxy/mod_proxy_hcheck.c
===================================================================
--- httpd-2.4.23.orig/modules/proxy/mod_proxy_hcheck.c
+++ httpd-2.4.23/modules/proxy/mod_proxy_hcheck.c
@@ -812,7 +812,7 @@ static void *hc_check(apr_thread_t *thre
return NULL;
}
/* what state are we in ? */
- if (PROXY_WORKER_IS_HCFAILED(worker)) {
+ if (PROXY_WORKER_IS_HCFAILED(worker) || PROXY_WORKER_IS_ERROR(worker)) {
if (rv == APR_SUCCESS) {
worker->s->pcount += 1;
if (worker->s->pcount >= worker->s->passes) {