mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-26 12:58:03 +00:00
BUG/MINOR: cli: properly decrement ref count on tables during failed dumps
Gernot Prner reported some constant leak of ref counts for stick tables entries. It happens that this leak was not at all in the regular traffic path but on the "show table" path. An extra ref count was taken during the dump if the output had to be paused, and it was released upon clean termination or an error detected in the I/O handler. But the release handler didn't do it, while it used to properly do it for the sessions dump. This fix needs to be backported to 1.6.
This commit is contained in:
parent
5179146fa3
commit
2fe1b92163
@ -6770,6 +6770,11 @@ static void cli_release_handler(struct appctx *appctx)
|
||||
if (!LIST_ISEMPTY(&appctx->ctx.sess.bref.users))
|
||||
LIST_DEL(&appctx->ctx.sess.bref.users);
|
||||
}
|
||||
else if ((appctx->st0 == STAT_CLI_O_TAB || appctx->st0 == STAT_CLI_O_CLR) &&
|
||||
appctx->st2 == STAT_ST_LIST) {
|
||||
appctx->ctx.table.entry->ref_cnt--;
|
||||
stksess_kill_if_expired(&appctx->ctx.table.proxy->table, appctx->ctx.table.entry);
|
||||
}
|
||||
else if (appctx->st0 == STAT_CLI_PRINT_FREE) {
|
||||
free(appctx->ctx.cli.err);
|
||||
appctx->ctx.cli.err = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user