summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Jagielski <jim@apache.org>2022-10-11 15:20:11 +0200
committerJim Jagielski <jim@apache.org>2022-10-11 15:20:11 +0200
commitac04f2ff6b6590a6091b71b8c829e9b067b0fbbb (patch)
tree95cb4fa8c0768c0be848d7a90199fc9f23288c02
parentRemove trailing whitespace (diff)
downloadapache2-ac04f2ff6b6590a6091b71b8c829e9b067b0fbbb.tar.xz
apache2-ac04f2ff6b6590a6091b71b8c829e9b067b0fbbb.zip
*) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904518 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--CHANGES3
-rw-r--r--modules/proxy/mod_proxy.h2
-rw-r--r--modules/proxy/mod_proxy_hcheck.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index fc30744935..b0b1d5e83d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.1
+ *) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
+ [Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]
+
*) mod_proxy_hcheck: Detect AJP/CPING support correctly. PR 66300.
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]
diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h
index c15d0785c3..0df3dc2801 100644
--- a/modules/proxy/mod_proxy.h
+++ b/modules/proxy/mod_proxy.h
@@ -360,6 +360,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 */
diff --git a/modules/proxy/mod_proxy_hcheck.c b/modules/proxy/mod_proxy_hcheck.c
index dd2740e81c..b99f3c1ae3 100644
--- a/modules/proxy/mod_proxy_hcheck.c
+++ b/modules/proxy/mod_proxy_hcheck.c
@@ -927,7 +927,7 @@ static void * APR_THREAD_FUNC hc_check(apr_thread_t *thread, void *b)
(int)hc->s->method);
}
/* what state are we in ? */
- else 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) {