mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
BUG/MINOR: stats: decrement srv refcount on stats-file release
Servers instance may be removed at runtime. This can occurs during a stat dump which currently references this server instance. This case is protected by server refcount to prevent the server immediate release. CLI output may be interrupted prior to stats dump completion, for example if client CLI has been disconnected before the full response transfer. As such, srv_drop() must be called in every stats dump release callback. srv_drop() was missing for stats-file dump release callback. This could cause a race condition which would prevent a server instance to be fully removed. Fix this by adding srv_drop() invokation into cli_io_handler_release_dump_stat_file(). This should be backported up to 3.0.
This commit is contained in:
parent
a6b3080966
commit
2199179461
@ -1064,6 +1064,10 @@ static int cli_io_handler_dump_stat_file(struct appctx *appctx)
|
||||
|
||||
static void cli_io_handler_release_dump_stat_file(struct appctx *appctx)
|
||||
{
|
||||
struct show_stat_ctx *ctx = appctx->svcctx;
|
||||
|
||||
if (ctx->px_st == STAT_PX_ST_SV)
|
||||
srv_drop(ctx->obj2);
|
||||
}
|
||||
|
||||
int stats_allocate_proxy_counters_internal(struct extra_counters **counters,
|
||||
|
Loading…
Reference in New Issue
Block a user