From 65f70e0be36ec61e1993907162cfd4edac46e063 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 2 Oct 2020 15:24:23 +1300 Subject: [PATCH 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 ea69eeb2a1..244805e69b 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.20.1