mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-17 08:54:41 +00:00
BUG/MINOR: srv-state: fix incorrect output of state file
Eric Webster reported that the state file wouldn't reload in 1.6.5 while it used to work in 1.6.4. The issue is that headers are now missing from the output when a specific backend is dumped since commit 4c1544d ("BUG/MEDIUM: stats: show servers state may show an empty or incomplete result"). This patch fixes this by introducing a dump state. It must be backported to 1.6.
This commit is contained in:
parent
1eea6d7ba8
commit
a58c4359bb
@ -3200,15 +3200,22 @@ static int stats_dump_servers_state_to_buffer(struct stream_interface *si)
|
||||
|
||||
chunk_reset(&trash);
|
||||
|
||||
if (!appctx->ctx.server_state.px) {
|
||||
if (appctx->st2 == STAT_ST_INIT) {
|
||||
if (!appctx->ctx.server_state.px)
|
||||
appctx->ctx.server_state.px = proxy;
|
||||
appctx->st2 = STAT_ST_HEAD;
|
||||
}
|
||||
|
||||
if (appctx->st2 == STAT_ST_HEAD) {
|
||||
chunk_printf(&trash, "%d\n# %s\n", SRV_STATE_FILE_VERSION, SRV_STATE_FILE_FIELD_NAMES);
|
||||
if (bi_putchk(si_ic(si), &trash) == -1) {
|
||||
si_applet_cant_put(si);
|
||||
return 0;
|
||||
}
|
||||
appctx->ctx.server_state.px = proxy;
|
||||
appctx->st2 = STAT_ST_INFO;
|
||||
}
|
||||
|
||||
/* STAT_ST_INFO */
|
||||
for (; appctx->ctx.server_state.px != NULL; appctx->ctx.server_state.px = curproxy->next) {
|
||||
curproxy = appctx->ctx.server_state.px;
|
||||
/* servers are only in backends */
|
||||
|
Loading…
Reference in New Issue
Block a user