postgres.git / summary / log / commit / refs

commit    a8af856d3257138590788e40eb84049def147acf
Author:   Etsuro Fujita <efujita@postgresql.org>
Date:     Tue Apr 06 10:15:00 2021 +0000

    Adjust input value to WaitEventSetWait() in ExecAppendAsyncEventWait().
    
    Adjust the number of events given to WaitEventSetWait() so that it
    doesn't exceed the maximum number of events in the WaitEventSet given
    to that function (set->nevents_space) in hopes of making the buildfarm
    green.
    
    Per valgrind failure report from Tom Lane and the buildfarm.
    
    Author: Etsuro Fujita
    Discussion: https://postgr.es/m/3411577.1617289776%40sss.pgh.pa.us


src/backend/executor/nodeAppend.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c index 7da8ffe0652..c2527572686 100644 --- a/src/backend/executor/nodeAppend.c +++ b/src/backend/executor/nodeAppend.c @@ -1001,6 +1001,7 @@ ExecAppendAsyncEventWait(AppendState *node) long timeout = node->as_syncdone ? -1 : 0; WaitEvent occurred_event[EVENT_BUFFER_SIZE]; int noccurred; + int nevents; int i; /* We should never be called when there are no valid async subplans. */ @@ -1022,8 +1023,9 @@ ExecAppendAsyncEventWait(AppendState *node) } /* Wait for at least one event to occur. */ + nevents = Min(node->as_nasyncplans + 1, EVENT_BUFFER_SIZE); noccurred = WaitEventSetWait(node->as_eventset, timeout, occurred_event, - EVENT_BUFFER_SIZE, WAIT_EVENT_APPEND_READY); + nevents, WAIT_EVENT_APPEND_READY); FreeWaitEventSet(node->as_eventset); node->as_eventset = NULL; if (noccurred == 0) [parent: 82ed7748b710]