From 7c5074bc57c0ac056beffd563a3f12c84805d9f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Chlup?= Date: Tue, 24 Mar 2026 10:42:35 +0100 Subject: [PATCH 1/2] Prevent wrong values for load --- native/mod_proxy_cluster/mod_proxy_cluster.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/native/mod_proxy_cluster/mod_proxy_cluster.c b/native/mod_proxy_cluster/mod_proxy_cluster.c index 446eba65..d631f45f 100644 --- a/native/mod_proxy_cluster/mod_proxy_cluster.c +++ b/native/mod_proxy_cluster/mod_proxy_cluster.c @@ -1833,7 +1833,7 @@ static proxy_worker *internal_find_best_byrequests(const proxy_balancer *balance * Check that we could connect to the node and create corresponding balancers and workers. * id : worker id * load : load factor from the cluster manager. - * load > 0 : a load factor. + * load between 1 and 100: a load factor. * load = 0 : standby worker. * load = -1 : errored worker. * load = -2 : just do a cping/cpong. @@ -1923,7 +1923,7 @@ static int proxy_node_isup(request_rec *r, int id, int load) } else if (load == 0) { worker->s->status |= PROXY_WORKER_HOT_STANDBY; worker->s->lbfactor = 0; - } else { + } else if (load >= 1 && load <= 100) { worker->s->status &= ~PROXY_WORKER_IN_ERROR; worker->s->status &= ~PROXY_WORKER_STOPPED; worker->s->status &= ~PROXY_WORKER_DISABLED; From 2a598b776795cd5dd5ae5c50fd6ccded0449d114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Chlup?= Date: Mon, 20 Apr 2026 11:49:58 +0200 Subject: [PATCH 2/2] Log when STATUS load parameter is out of range --- native/mod_manager/mod_manager.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/native/mod_manager/mod_manager.c b/native/mod_manager/mod_manager.c index 6eb93910..ec4adf30 100644 --- a/native/mod_manager/mod_manager.c +++ b/native/mod_manager/mod_manager.c @@ -2424,6 +2424,10 @@ static char *process_status(request_rec *r, const char *const *ptr, int *errtype i++; } + if (Load < -1 || Load > 100) { + ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "Load value %d is outside the supported range", Load); + } + /* Read the node */ loc_lock_nodes(); node = read_node(nodestatsmem, &nodeinfo);