postgres.git / summary / log / commit / refs

commit    bdda6ba30cbef00a6eddbe9f956a7b82bb2c7720
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Fri Aug 08 00:07:51 2025 +0000

    Add information about "generation" when dropping twice pgstats entry
    
    Dropping twice a pgstats entry should not happen, and the error report
    generated was missing the "generation" counter (tracking when an entry
    is reused) that has been added in 818119afccd3.
    
    Like d92573adcb02, backpatch down to v15 where this information is
    useful to have, to gather more information from instances where the
    problem shows up.  A report has shown that this error path has been
    reached on a standby based on 17.3, for a relation stats entry and an
    OID close to wraparound.
    
    Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
    Discussion: https://postgr.es/m/CAN4RuQvYth942J2+FcLmJKgdpq6fE5eqyFvb_PuskxF2eL=Wzg@mail.gmail.com
    Backpatch-through: 15


src/backend/utils/activity/pgstat_shmem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 6ede0f4a6e1..36dc7922d14 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -838,10 +838,11 @@ pgstat_drop_entry_internal(PgStatShared_HashEntry *shent, */ if (shent->dropped) elog(ERROR, - "trying to drop stats entry already dropped: kind=%s dboid=%u objoid=%u refcount=%u", + "trying to drop stats entry already dropped: kind=%s dboid=%u objoid=%u refcount=%u generation=%u", pgstat_get_kind_info(shent->key.kind)->name, shent->key.dboid, shent->key.objoid, - pg_atomic_read_u32(&shent->refcount)); + pg_atomic_read_u32(&shent->refcount), + pg_atomic_read_u32(&shent->generation)); shent->dropped = true; /* release refcount marking entry as not dropped */ [parent: 13244ba10325]