Resolves: RHEL-105446 - mod_proxy_hcheck may stop healthchecks after a child
process is reclaimed
This commit is contained in:
parent
53e0c59ab3
commit
057f28fe95
68
httpd-2.4.62-hcheck-stuck.patch
Normal file
68
httpd-2.4.62-hcheck-stuck.patch
Normal file
@ -0,0 +1,68 @@
|
||||
diff --git a/modules/proxy/mod_proxy_hcheck.c b/modules/proxy/mod_proxy_hcheck.c
|
||||
index 70f1de8..70bfa26 100644
|
||||
--- a/modules/proxy/mod_proxy_hcheck.c
|
||||
+++ b/modules/proxy/mod_proxy_hcheck.c
|
||||
@@ -992,12 +992,30 @@ static apr_status_t hc_watchdog_callback(int state, void *data,
|
||||
sctx_t *ctx = (sctx_t *)data;
|
||||
server_rec *s = ctx->s;
|
||||
proxy_server_conf *conf;
|
||||
+ proxy_worker **workers;
|
||||
+ proxy_worker *worker;
|
||||
+ apr_time_t now;
|
||||
+ int i, n;
|
||||
+
|
||||
+ conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
|
||||
+ balancer = (proxy_balancer *)conf->balancers->elts;
|
||||
|
||||
switch (state) {
|
||||
case AP_WATCHDOG_STATE_STARTING:
|
||||
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(03258)
|
||||
"%s watchdog started.",
|
||||
HCHECK_WATHCHDOG_NAME);
|
||||
+ /* set last update time for all workers */
|
||||
+ now = apr_time_now();
|
||||
+ for (i = 0; i < conf->balancers->nelts; i++, balancer++) {
|
||||
+ workers = (proxy_worker **)balancer->workers->elts;
|
||||
+ for (n = 0; n < balancer->workers->nelts; n++, ++workers) {
|
||||
+ worker = *workers;
|
||||
+ if (worker->s->updated == 0) {
|
||||
+ worker->s->updated = now;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
#if HC_USE_THREADS
|
||||
if (tpsize && hctp == NULL) {
|
||||
rv = apr_thread_pool_create(&hctp, tpsize,
|
||||
@@ -1023,21 +1041,13 @@ static apr_status_t hc_watchdog_callback(int state, void *data,
|
||||
|
||||
case AP_WATCHDOG_STATE_RUNNING:
|
||||
/* loop thru all workers */
|
||||
- if (s) {
|
||||
- int i;
|
||||
- conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
|
||||
- balancer = (proxy_balancer *)conf->balancers->elts;
|
||||
- ctx->s = s;
|
||||
+ {
|
||||
+ now = apr_time_now();
|
||||
for (i = 0; i < conf->balancers->nelts; i++, balancer++) {
|
||||
- int n;
|
||||
- apr_time_t now;
|
||||
- proxy_worker **workers;
|
||||
- proxy_worker *worker;
|
||||
/* Have any new balancers or workers been added dynamically? */
|
||||
ap_proxy_sync_balancer(balancer, s, conf);
|
||||
workers = (proxy_worker **)balancer->workers->elts;
|
||||
- now = apr_time_now();
|
||||
- for (n = 0; n < balancer->workers->nelts; n++) {
|
||||
+ for (n = 0; n < balancer->workers->nelts; n++, workers++) {
|
||||
worker = *workers;
|
||||
if (!PROXY_WORKER_IS(worker, PROXY_WORKER_STOPPED) &&
|
||||
(worker->s->method != NONE) &&
|
||||
@@ -1077,7 +1087,6 @@ static apr_status_t hc_watchdog_callback(int state, void *data,
|
||||
hc_check(NULL, baton);
|
||||
}
|
||||
}
|
||||
- workers++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -13,7 +13,7 @@
|
||||
Summary: Apache HTTP Server
|
||||
Name: httpd
|
||||
Version: 2.4.62
|
||||
Release: 8%{?dist}
|
||||
Release: 9%{?dist}
|
||||
URL: https://httpd.apache.org/
|
||||
Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
|
||||
Source1: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2.asc
|
||||
@ -108,6 +108,8 @@ Patch104: httpd-2.4.62-r1921299.patch
|
||||
Patch105: httpd-2.4.62-r1922080.patch
|
||||
# https://issues.redhat.com/browse/RHEL-99815
|
||||
Patch106: httpd-2.4.62-r1926107.patch
|
||||
# https://issues.redhat.com/browse/RHEL-105446
|
||||
Patch107: httpd-2.4.62-hcheck-stuck.patch
|
||||
|
||||
# Security fixes
|
||||
#
|
||||
@ -279,6 +281,7 @@ written in the Lua programming language.
|
||||
%patch104 -p1 -b .r1921299
|
||||
%patch105 -p1 -b .r1922080
|
||||
%patch106 -p1 -b .r1926107
|
||||
%patch107 -p1 -b .hcheck-stuck
|
||||
|
||||
%patch200 -p1 -b .CVE-2025-23048
|
||||
%patch201 -p1 -b .CVE-2024-47252
|
||||
@ -844,6 +847,10 @@ exit $rv
|
||||
%{_rpmconfigdir}/macros.d/macros.httpd
|
||||
|
||||
%changelog
|
||||
* Fri Oct 24 2025 Luboš Uhliarik <luhliari@redhat.com> - 2.4.62-9
|
||||
- Resolves: RHEL-105446 - mod_proxy_hcheck may stop healthchecks after a child
|
||||
process is reclaimed
|
||||
|
||||
* Mon Oct 13 2025 Luboš Uhliarik <luhliari@redhat.com> - 2.4.62-8
|
||||
- Resolves: RHEL-114501 Image mode: The dir /var/www is not created when
|
||||
updating system in image mode
|
||||
|
||||
Loading…
Reference in New Issue
Block a user