After reloading HAProxy, the old process may still hold active sessions.
Currently there is no way to gather information, how many sessions such
a process still holds. This patch will not exclude disabled proxies from
stats output when they hold at least one active session. This will allow
sending `!@<PID> show stat` through a master socket to the disabled
process and have it returning its stats data.
}
px = appctx->ctx.stats.obj1;
- /* skip the disabled proxies, global frontend and non-networked ones */
- if (!px->disabled && px->uuid > 0 && (px->cap & (PR_CAP_FE | PR_CAP_BE))) {
+ /* Skip the global frontend proxies and non-networked ones.
+ * Also skip disabled proxies unless they are still holding active sessions.
+ * This change allows retrieving stats from "old" proxies after a reload.
+ */
+ if ((!px->disabled || px->served > 0) && px->uuid > 0 && (px->cap & (PR_CAP_FE | PR_CAP_BE))) {
if (stats_dump_proxy_to_buffer(si, htx, px, uri) == 0)
return 0;
}