From: David Carlier Date: Tue, 20 Oct 2026 14:59:04 +0000 (+0100) Subject: BUG/MINOR: deviceatlas: ignore the scheduler's update in progress marker X-Git-Tag: v3.5-dev10~54 X-Git-Url: https://git.kaiwu.me/?a=commitdiff_plain;h=44886ec71379666e555f0b1f8925c3c10a45bf5f;p=haproxy.git BUG/MINOR: deviceatlas: ignore the scheduler's update in progress marker The scheduler sets the first byte of the shared map to '0' while it rewrites the data file path. Any non-zero byte was taken as a pending update, so a request could read a partial path and emit a spurious "invalid path" alert. '0' is now treated as no update, as the nginx module does. This should be backported to lower branches. --- diff --git a/addons/deviceatlas/da.c b/addons/deviceatlas/da.c index ee2822aaa..d1080b414 100644 --- a/addons/deviceatlas/da.c +++ b/addons/deviceatlas/da.c @@ -286,7 +286,7 @@ static void da_haproxy_checkinst(void) char *base; base = (char *)global_deviceatlas.atlasmap; - if (base[0] != 0) { + if (base[0] != 0 && base[0] != '0') { FILE *jsonp; void *cnew, *cold; da_status_t status; @@ -297,7 +297,7 @@ static void da_haproxy_checkinst(void) #ifdef USE_THREAD if (HA_SPIN_TRYLOCK(OTHER_LOCK, &dadwsch_lock) != 0) return; - if (base[0] == 0) { + if (base[0] == 0 || base[0] == '0') { HA_SPIN_UNLOCK(OTHER_LOCK, &dadwsch_lock); return; }