Error handling for ShmemInitStruct and ShmemInitHash - Mailing list pgsql-hackers

From Tom Lane
Subject Error handling for ShmemInitStruct and ShmemInitHash
Date
Msg-id 13370.1272422082@sss.pgh.pa.us
Whole thread Raw
Responses Re: Error handling for ShmemInitStruct and ShmemInitHash  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Re: Error handling for ShmemInitStruct and ShmemInitHash  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
List pgsql-hackers
The functions ShmemInitStruct and ShmemInitHash will return NULL on
certain failure conditions, apparently on the grounds that their caller
can print a more useful error message than they can.  A quick survey
shows that about half the callers aren't remembering to check for NULL,
and none of the other half are printing messages that are more useful
than "out of shared memory" (which isn't even necessarily correct).

I think that this is pretty error-prone, and that considering that
PG hackers are accustomed to not checking palloc() results, it's
inevitable that we'll make the same mistake in future if we leave
this API as it is.  I suggest making these functions throw
their own errors rather than returning NULL on failure, and removing
the redundant error reports from the callers that have 'em.

Comments?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: including PID or backend ID in relpath of temp rels
Next
From: Fujii Masao
Date:
Subject: Re: Wierd quirk of HS/SR, probably not fixable