diff options
author | Thomas Munro | 2023-04-12 21:19:54 +0000 |
---|---|---|
committer | Thomas Munro | 2023-04-12 21:37:54 +0000 |
commit | b37d051b0e59e4324e346655a27509507813db79 (patch) | |
tree | 6d414d5412b715bfc58cf6a243073ccec63e4687 | |
parent | 21e6bf4ddd045bc718c99ae551f25957ae91cb4d (diff) |
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 <[email protected]>
Reported-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/[email protected]
-rw-r--r-- | src/backend/executor/nodeHash.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index a45bd3a315..2e13ed17e1 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -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 |