Fix rare assertion failure in parallel hash join.
authorAndres Freund <andres@anarazel.de>
Thu, 28 Dec 2017 10:41:53 +0000 (02:41 -0800)
committerAndres Freund <andres@anarazel.de>
Thu, 28 Dec 2017 10:41:53 +0000 (02:41 -0800)
commitf83040c62a78e784e6e33a6382a55925bfd66634
treea78d24c6209d0cddaf3ed6402260936f0e9f27c1
parentbe2343221fb74bde6b7445feeef32f7ea5cf2618
Fix rare assertion failure in parallel hash join.

When a backend runs out of inner tuples to hash, it should detach from
grow_batch_barrier only after it has flushed all batches to disk and
merged counters, not before.  Otherwise a concurrent backend in
ExecParallelHashIncreaseNumBatches() could stop waiting for this
backend and try to read tuples before they have been written.  This
commit reorders those operations and should fix the assertion failures
seen occasionally on the build farm since commit
1804284042e659e7d16904e7bbb0ad546394b6a3.

Author: Thomas Munro
Discussion: https://postgr.es/m/E1eRwXy-0004IK-TO%40gemulon.postgresql.org
src/backend/executor/nodeHash.c