Skip to content

Commit 2de059d

Browse files
committed
Add more debugging information when dropping twice pgstats entry
Floris Van Nee has reported a bug in the pgstats facility where a stats entry already dropped would get again dropped. This case should not happen, still the error generated did not offer any details about the stats entry getting dropped. This commit improves the error message generated to inform about the stats entry kind, database OID, object OID and refcount, which should help to debug more the problem reported. Bertrand Drouvot has been independently able to reach this error path while writing a new feature, and more details about the failure would have been helpful for debugging. Author: Andres Freund, Bertrand Drouvot Discussion: https://postgr.es/m/20240505160915.6boysum4f34siqct@awork3.anarazel.de Discussion: https://postgr.es/m/ZkM30paAD8Cr/Bix@ip-10-97-1-34.eu-west-3.compute.internal Backpatch-through: 15
1 parent b33c141 commit 2de059d

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/backend/utils/activity/pgstat_shmem.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,11 @@ pgstat_drop_entry_internal(PgStatShared_HashEntry *shent,
780780
* backends to release their references.
781781
*/
782782
if (shent->dropped)
783-
elog(ERROR, "can only drop stats once");
783+
elog(ERROR,
784+
"trying to drop stats entry already dropped: kind=%s dboid=%u objoid=%u refcount=%u",
785+
pgstat_get_kind_info(shent->key.kind)->name,
786+
shent->key.dboid, shent->key.objoid,
787+
pg_atomic_read_u32(&shent->refcount));
784788
shent->dropped = true;
785789

786790
/* release refcount marking entry as not dropped */

0 commit comments

Comments
 (0)