From: Andres Freund Date: Thu, 7 Apr 2022 06:35:56 +0000 (-0700) Subject: pgstat: prevent fix pgstat_reinit_entry() from zeroing out lwlock. X-Git-Tag: REL_15_BETA1~264 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=81ae9e65887476b4c55aaad276a8010a459a41ce;p=thirdparty%2Fpostgresql.git pgstat: prevent fix pgstat_reinit_entry() from zeroing out lwlock. Zeroing out an lwlock in a normal build turns out to not trigger any alarms, if nobody can use the lwlock at that moment (as the case here). But with --disable-spinlocks --disable-atomics, the sema field needs to be initialized. We probably should make sure that this fails on more common configurations as well... Per buildfarm animal rorqual --- diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index a32740b2f6e..b270c504ea6 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -292,8 +292,8 @@ pgstat_reinit_entry(PgStat_Kind kind, PgStatShared_HashEntry *shhashent) /* reinitialize content */ Assert(shheader->magic == 0xdeadbeef); - memset(shheader, 0, pgstat_get_kind_info(shhashent->key.kind)->shared_size); - shheader->magic = 0xdeadbeef; + memset(pgstat_get_entry_data(kind, shheader), 0, + pgstat_get_entry_len(kind)); return shheader; }