]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix use of proc number in pgstat_create_backend()
authorMichael Paquier <michael@paquier.xyz>
Fri, 6 Feb 2026 10:57:22 +0000 (19:57 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 6 Feb 2026 10:57:22 +0000 (19:57 +0900)
This routine's internals directly used MyProcNumber to choose which
object ID to assign for the hash key of a backend's stats entry, while
the value to use is given as input argument of the function.

The original intention was to pass MyProcNumber as an argument of
pgstat_create_backend() when called in pgstat_bestart_final(),
pgstat_beinit() ensuring that MyProcNumber has been set, not use it
directly in the function.  This commit addresses this inconsistency by
using the procnum given by the caller of pgstat_create_backend(), not
MyProcNumber.

This issue is not a cause of bugs currently.  However, let's keep the
code in sync across all the branches where this code exists, as it could
matter in a future backpatch.

Oversight in 4feba03d8b92.

Reported-by: Ryo Matsumura <matsumura.ryo@fujitsu.com>
Discussion: https://postgr.es/m/TYCPR01MB11316AD8150C8F470319ACCAEE866A@TYCPR01MB11316.jpnprd01.prod.outlook.com
Backpatch-through: 18

src/backend/utils/activity/pgstat_backend.c

index 1350f5f62f15478a1c651beca979dbdc49ec1e7b..f2f8d3ff75f541c2c5b5bc0e07d597be624c8d66 100644 (file)
@@ -326,7 +326,7 @@ pgstat_create_backend(ProcNumber procnum)
        PgStatShared_Backend *shstatent;
 
        entry_ref = pgstat_get_entry_ref_locked(PGSTAT_KIND_BACKEND, InvalidOid,
-                                                                                       MyProcNumber, false);
+                                                                                       procnum, false);
        shstatent = (PgStatShared_Backend *) entry_ref->shared_stats;
 
        /*