mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
pgstat: Acquire lock when reading variable-numbered stats
Somewhere during the development of the patch acquiring a lock during read access to variable-numbered stats got lost. The missing lock acquisition won't cause corruption, but can lead to reading torn values when accessing stats. Add the missing lock acquisitions. Reported-by: Greg Stark <stark@mit.edu> Reviewed-by: "Drouvot, Bertrand" <bdrouvot@amazon.com> Reviewed-by: Andres Freund <andres@anarazel.de> Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/CAM-w4HMYkM_DkYhWtUGV+qE_rrBxKOzOF0+5faozxO3vXrc9wA@mail.gmail.com Backpatch: 15-
This commit is contained in:
@@ -581,6 +581,7 @@ extern void pgstat_detach_shmem(void);
|
||||
extern PgStat_EntryRef *pgstat_get_entry_ref(PgStat_Kind kind, Oid dboid, Oid objoid,
|
||||
bool create, bool *found);
|
||||
extern bool pgstat_lock_entry(PgStat_EntryRef *entry_ref, bool nowait);
|
||||
extern bool pgstat_lock_entry_shared(PgStat_EntryRef *entry_ref, bool nowait);
|
||||
extern void pgstat_unlock_entry(PgStat_EntryRef *entry_ref);
|
||||
extern bool pgstat_drop_entry(PgStat_Kind kind, Oid dboid, Oid objoid);
|
||||
extern void pgstat_drop_all_entries(void);
|
||||
|
||||
Reference in New Issue
Block a user