Remove overzealous assertion from PHJ.
We can't assert that we're the only process attached to a barrier after BarrierArriveAndDetachExceptLast(). Although that'll be true almost always, a late-starting parallel worker can attach very briefly (that is, immediately detach after checking the phase) right at that moment. BarrierArriveAndDetachExceptLast() already contains an assertion like that, but it holds a spinlock preventing the race. This thinko caused a one-off failure on build farm animal chimaera. Diagnosed-by: Melanie Plageman <melanieplageman@gmail.com> Reported-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/3590249.1680971629@sss.pgh.pa.us
This commit is contained in:
parent
21e6bf4ddd
commit
b37d051b0e
@ -2115,7 +2115,6 @@ ExecParallelPrepHashTableForUnmatched(HashJoinState *hjstate)
|
||||
|
||||
/* Now we are alone with this batch. */
|
||||
Assert(BarrierPhase(&batch->batch_barrier) == PHJ_BATCH_SCAN);
|
||||
Assert(BarrierParticipants(&batch->batch_barrier) == 1);
|
||||
|
||||
/*
|
||||
* Has another process decided to give up early and command all processes
|
||||
|
Loading…
x
Reference in New Issue
Block a user