]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
authorJim Jagielski <jim@apache.org>
Tue, 11 Oct 2022 13:20:11 +0000 (13:20 +0000)
committerJim Jagielski <jim@apache.org>
Tue, 11 Oct 2022 13:20:11 +0000 (13:20 +0000)
     [Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904518 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/proxy/mod_proxy.h
modules/proxy/mod_proxy_hcheck.c

diff --git a/CHANGES b/CHANGES
index fc3074493580c5f74e3908f4fea512df049851db..b0b1d5e83dad23606bf201b4de29c0552d6c9916 100644 (file)
--- 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>]
 
index c15d0785c370b90d8ea0fa2fe7205ed021ca2d96..0df3dc28013140b87230c47acd8afe51839154bc 100644 (file)
@@ -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 */
index dd2740e81c2b1fde990c4d7fda97a865953fd5cc..b99f3c1ae3041b8ee22cdc012c9cb91e941e27ef 100644 (file)
@@ -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) {