pgsql: Fix potential memory leakage from HandleParallelMessages(). - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix potential memory leakage from HandleParallelMessages().
Date
Msg-id E1bdMQU-0001rq-OV@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix potential memory leakage from HandleParallelMessages().

HandleParallelMessages leaked memory into the caller's context.  Since it's
called from ProcessInterrupts, there is basically zero certainty as to what
CurrentMemoryContext is, which means we could be leaking into long-lived
contexts.  Over the processing of many worker messages that would grow to
be a problem.  Things could be even worse than just a leak, if we happened
to service the interrupt while ErrorContext is current: elog.c thinks it
can reset that on its own whim, possibly yanking storage out from under
HandleParallelMessages.

Give HandleParallelMessages its own dedicated context instead, which we can
reset during each call to ensure there's no accumulation of wasted memory.

Discussion: <16610.1472222135@sss.pgh.pa.us>

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/b09caece0df11266dd685187f4c86f452b378996

Modified Files
--------------
src/backend/access/transam/parallel.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix potential memory leakage from HandleParallelMessages().
Next
From: Tom Lane
Date:
Subject: pgsql: Add a nonlocalized version of the severity field to client error