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]