From 60c905edc75d66dd45475eb7d3e11b6f603d2143 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 2 Oct 2020 15:24:23 +1300 Subject: [PATCH v2 1/2] Inject fault timing --- src/backend/executor/nodeHash.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index c5f2d1d22b..168e463c72 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -25,6 +25,7 @@ #include #include +#include #include "access/htup_details.h" #include "access/parallel.h" @@ -585,6 +586,13 @@ ExecHashTableCreate(HashState *state, List *hashOperators, List *hashCollations, ParallelHashJoinState *pstate = hashtable->parallel_state; Barrier *build_barrier; + if (ParallelWorkerNumber >= 1) + { + elog(LOG, "a short nap before attaching to build_barrier..."); + sleep(2); + elog(LOG, "nap finished"); + } + /* * Attach to the build barrier. The corresponding detach operation is * in ExecHashTableDetach. Note that we won't attach to the @@ -3198,6 +3206,9 @@ ExecHashTableDetach(HashJoinTable hashtable) if (DsaPointerIsValid(pstate->batches)) { dsa_free(hashtable->area, pstate->batches); + elog(LOG, "batch array freed, taking a long nap..."); + sleep(5); + elog(LOG, "finished nap, clearing pointer"); pstate->batches = InvalidDsaPointer; } } -- 2.30.1