From: Eric Covener Date: Mon, 9 Jan 2023 13:22:44 +0000 (+0000) Subject: Merge r1904518 from trunk: X-Git-Tag: 2.4.55-rc1-candidate~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f34e6c027bf566cef7bdb9ecd8e64a2fae69cde2;p=thirdparty%2Fapache%2Fhttpd.git Merge r1904518 from trunk: *) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302. [Alessandro Cavaliere ] + MMN Submitted By: jim Reviewed By: +1: jim, ylavic, icing git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1906496 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index aca4787c34a..0e6c15ef4f2 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,9 @@ Changes with Apache 2.4.55 continued to work, the error log was in error. Fixed PR66190. [Stefan Eissing] + *) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302. + [Alessandro Cavaliere ] + *) mod_proxy_hcheck: Detect AJP/CPING support correctly. PR 66300. [Alessandro Cavaliere ] diff --git a/include/ap_mmn.h b/include/ap_mmn.h index d11bfd2f987..402c23a3a89 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -593,6 +593,7 @@ * and AP_REG_PCRE_LOADED to ap_regex.h. * 20120211.124 (2.4.51-dev) Add name_ex to struct proxy_worker_shared * 20120211.125 (2.4.55-dev) Export mod_http2.h as public header + * 20120211.126 (2.4.55-dev) Add additional hcmethod_t enums and PROXY_WORKER_IS_ERROR * */ @@ -601,7 +602,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120211 #endif -#define MODULE_MAGIC_NUMBER_MINOR 125 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 126 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h index aba3bdce8af..6a5fe6d0b0f 100644 --- a/modules/proxy/mod_proxy.h +++ b/modules/proxy/mod_proxy.h @@ -354,6 +354,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 eabf43681ca..33dc6dea032 100644 --- a/modules/proxy/mod_proxy_hcheck.c +++ b/modules/proxy/mod_proxy_hcheck.c @@ -912,7 +912,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) {