1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-19 17:02:53 +03:00

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 <robertmhaas@gmail.com>
Discussion: https://postgr.es/m/E1vJHUk-006I7r-37%40gemulon.postgresql.org
Backpatch-through: 17
This commit is contained in:
Nathan Bossart
2025-11-26 11:37:21 -06:00
parent cbb69a65a7
commit c7e0f263d6

View File

@@ -45,7 +45,6 @@ typedef struct DSMRegistryEntry
char name[64]; char name[64];
dsm_handle handle; dsm_handle handle;
size_t size; size_t size;
bool initialized;
} DSMRegistryEntry; } DSMRegistryEntry;
static const dshash_parameters dsh_params = { 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); entry = dshash_find_or_insert(dsm_registry_table, name, found);
if (!(*found)) if (!(*found))
{ {
dsm_segment *seg;
entry->initialized = false;
/* Initialize the segment. */ /* Initialize the segment. */
seg = dsm_create(size, 0); dsm_segment *seg = dsm_create(size, 0);
dsm_pin_segment(seg); dsm_pin_segment(seg);
dsm_pin_mapping(seg); dsm_pin_mapping(seg);
@@ -174,17 +169,13 @@ GetNamedDSMSegment(const char *name, size_t size,
if (init_callback) if (init_callback)
(*init_callback) (ret); (*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) else if (entry->size != size)
{
ereport(ERROR, ereport(ERROR,
(errmsg("requested DSM segment \"%s\" does not match size of existing entry", (errmsg("requested DSM segment size does not match size of "
name))); "existing segment")));
}
else else
{ {
dsm_segment *seg = dsm_find_mapping(entry->handle); dsm_segment *seg = dsm_find_mapping(entry->handle);