pgsql: Improve out-of-memory error reports by including memory context

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Improve out-of-memory error reports by including memory context
Date: 2018-03-30 17:53:54
Message-ID: E1f1yDq-0007lN-9C@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Improve out-of-memory error reports by including memory context name.

Add the target context's name to the errdetail field of "out of memory"
errors in mcxt.c. Per discussion, this seems likely to be useful to
help narrow down the cause of a reported failure, and it costs little.
Also, now that context names are required to be compile-time constants
in all cases, there's little reason to be concerned about security
issues from exposing these names to users. (Because of such concerns,
we are *not* including the context "ident" field.)

In passing, add unlikely() markers to the allocation-failed tests,
just to be sure the compiler is on the right page about that.
Also, in palloc and friends, copy CurrentMemoryContext into a local
variable, as that's almost surely cheaper to reference than a global.

Discussion: https://postgr.es/m/1099.1522285628@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1bb9e731e17b79f5b1c6713159812adfcf4f6495

Modified Files
--------------
src/backend/utils/mmgr/mcxt.c | 90 ++++++++++++++++++++++++++-----------------
1 file changed, 55 insertions(+), 35 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-03-30 19:11:44 pgsql: Remove obsolete SLRU wrapping and warnings from predicate.c.
Previous Message Bruce Momjian 2018-03-30 17:34:27 pgsql: docs: add parameter with brackets around varbit()