injection_points: Add proper locking when reporting fixed-variable stats
authorMichael Paquier <[email protected]>
Tue, 30 Sep 2025 00:02:09 +0000 (09:02 +0900)
committerMichael Paquier <[email protected]>
Tue, 30 Sep 2025 00:02:09 +0000 (09:02 +0900)
commit3cc689f833b1c9c5b52f1fe07c0e0fd817e23c8b
tree60be5d65abae88b3ee5dbee86a6667b8cd5f275e
parentef38a4d9756db9ae1d20f40aa39f3cf76059b81a
injection_points: Add proper locking when reporting fixed-variable stats

Contrary to its siblings for the archiver, the bgwriter and the
checkpointer stats, pgstat_report_inj_fixed() can be called
concurrently.  This was causing an assertion failure, while messing up
with the stats.

This code is aimed at being a template for extension developers, so it
is not a critical issue, but let's be correct.  This module has also
been useful for some benchmarking, at least for me, and that was how I
have discovered this issue.

Oversight in f68cd847fa40.

Author: Michael Paquier <[email protected]>
Reviewed-by: Bertrand Drouvot <[email protected]>
Reviewed-by: Chao Li <[email protected]>
Reviewed-by: wenhui qiu <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 18
src/test/modules/injection_points/injection_stats_fixed.c