File apache2-bsc1208708-fix-passing-health-check-recover-worker-from-error-state.patch of Package apache2.28223
*) 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.33/modules/proxy/mod_proxy.h
===================================================================
--- httpd-2.4.33.orig/modules/proxy/mod_proxy.h
+++ httpd-2.4.33/modules/proxy/mod_proxy.h
@@ -339,6 +339,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.33/modules/proxy/mod_proxy_hcheck.c
===================================================================
--- httpd-2.4.33.orig/modules/proxy/mod_proxy_hcheck.c
+++ httpd-2.4.33/modules/proxy/mod_proxy_hcheck.c
@@ -835,7 +835,7 @@ static void * APR_THREAD_FUNC hc_check(a
return NULL;
}
/* what state are we in ? */
- if (PROXY_WORKER_IS_HCFAILED(worker)) {
+ else 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) {