From c7e0f263d67f75525193f874aaf6e082a88567c8 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Wed, 26 Nov 2025 11:37:21 -0600 Subject: [PATCH] Revert "Teach DSM registry to ERROR if attaching to an uninitialized entry." This reverts commit 1165a933aa (and the corresponding commits on the back-branches). In a follow-up commit, we'll teach the registry to retry entry initialization instead of leaving it in a permanently failed state. Reviewed-by: Robert Haas Discussion: https://postgr.es/m/E1vJHUk-006I7r-37%40gemulon.postgresql.org Backpatch-through: 17 --- src/backend/storage/ipc/dsm_registry.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/backend/storage/ipc/dsm_registry.c b/src/backend/storage/ipc/dsm_registry.c index af3680f9d5d..9f58ea611b9 100644 --- a/src/backend/storage/ipc/dsm_registry.c +++ b/src/backend/storage/ipc/dsm_registry.c @@ -45,7 +45,6 @@ typedef struct DSMRegistryEntry char name[64]; dsm_handle handle; size_t size; - bool initialized; } DSMRegistryEntry; static const dshash_parameters dsh_params = { @@ -159,12 +158,8 @@ GetNamedDSMSegment(const char *name, size_t size, entry = dshash_find_or_insert(dsm_registry_table, name, found); if (!(*found)) { - dsm_segment *seg; - - entry->initialized = false; - /* Initialize the segment. */ - seg = dsm_create(size, 0); + dsm_segment *seg = dsm_create(size, 0); dsm_pin_segment(seg); dsm_pin_mapping(seg); @@ -174,17 +169,13 @@ GetNamedDSMSegment(const char *name, size_t size, if (init_callback) (*init_callback) (ret); - - entry->initialized = true; } - else if (!entry->initialized) - ereport(ERROR, - (errmsg("requested DSM segment \"%s\" failed initialization", - name))); else if (entry->size != size) + { ereport(ERROR, - (errmsg("requested DSM segment \"%s\" does not match size of existing entry", - name))); + (errmsg("requested DSM segment size does not match size of " + "existing segment"))); + } else { dsm_segment *seg = dsm_find_mapping(entry->handle); -- 2.39.5