]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MAJOR: promex: fix crash on deleted server
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Feb 2024 13:16:37 +0000 (14:16 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Feb 2024 17:27:42 +0000 (18:27 +0100)
commitf81c00cd447e21b07ee355fd5c2fb2a4787ea4a0
tree719371c45cb708c8bc164e306f5fd0195f8cf511
parent4adf2c9f0078844e9bf2bf38683946e1fdc75dc2
BUG/MAJOR: promex: fix crash on deleted server

Promex applet is used to dump many metrics. Some of them are related to
a server instance. The applet can be interrupted in the middle of a
dump, for example waiting for output buffer space. In this case, its
context is save to resume dump on the correct instance.

A crash can occur if dump is interrupted during servers loop. If the
server instance is deleted during two scheduling of the promex applet,
its context will still referenced the deleted server on resume.

To fix this, use server refcount to prevent its deletion during parsing.

No backport is needed, despite all stable releases being affected. This
is because promex applet context has been recently rewritten to use
generic pointers. As such, a specific commit will be applied for earlier
releases.
addons/promex/service-prometheus.c