• Tom Lane's avatar
    Fix potential memory leakage from HandleParallelMessages(). · 78dcd027
    Tom Lane authored
    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>
    78dcd027
parallel.c 34.9 KB