postgres.git / summary / log / commit / refs
commit 372b97097e8c9a67326e99a07da30ab44f6f822a
Author: Robert Haas <rhaas@postgresql.org>
Date: Mon Mar 23 13:58:56 2015 +0000
First released in: 9.5.0
Remove ill-advised pre-check for DSM segment exhaustion.
dsm_control->nitems never decreases, so this is testing whether the
server has *ever* run out of DSM segments, not whether it is
*currently* out of DSM segments.
Reported off-list by Amit Kapila.
src/backend/storage/ipc/dsm.c | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/src/backend/storage/ipc/dsm.c b/src/backend/storage/ipc/dsm.c
index 96ca85e7d07..321bad95461 100644
--- a/src/backend/storage/ipc/dsm.c
+++ b/src/backend/storage/ipc/dsm.c
@@ -466,18 +466,6 @@ dsm_create(Size size, int flags)
if (!dsm_init_done)
dsm_backend_startup();
- /*
- * If we've been instructed to return NULL when it's not possible to
- * register another segment, check whether we seem to be at the limit.
- * This allows us to avoid the overhead of creating a new segment only to
- * immediately destroy it again. Since we don't take the lock here, the
- * value we read might be slightly stale, but the remote possibility of
- * an unnecessary failure here shouldn't trouble anyone too much.
- */
- if ((flags & DSM_CREATE_NULL_IF_MAXSEGMENTS) != 0
- && dsm_control->nitems >= dsm_control->maxitems)
- return NULL;
-
/* Create a new segment descriptor. */
seg = dsm_create_descriptor();
[parent: 33a2c5ecd60a]