From: Tom Lane Date: Fri, 12 Feb 2016 22:12:23 +0000 (-0500) Subject: Revert "isolationtester: don't repeat the is-it-waiting query when retrying a step." X-Git-Tag: REL9_6_BETA1~701 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dca369320f6023b55feb49f281d394181fc57903;p=postgresql Revert "isolationtester: don't repeat the is-it-waiting query when retrying a step." This mostly reverts commit 9c9782f066e0ce5424b8706df2cce147cb78170f. I left in the parts that rearranged removal of completed waiting steps; but the idea of not rechecking a step's blocked-ness isn't working. --- diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c index da5ac9ee6c..0a9d25ce9c 100644 --- a/src/test/isolation/isolationtester.c +++ b/src/test/isolation/isolationtester.c @@ -699,8 +699,7 @@ run_permutation(TestSpec *testspec, int nsteps, Step **steps) * have executed additional steps in the permutation. * * When calling this function on behalf of a given step for a second or later - * time, pass the STEP_RETRY flag. In this case we don't need to recheck - * whether it's waiting for a lock. + * time, pass the STEP_RETRY flag. This only affects the messages printed. * * If the query returns an error, the message is saved in step->errormsg. * Caller should call report_error_message shortly after this, to have it @@ -748,14 +747,6 @@ try_complete_step(Step *step, int flags) { int ntuples; - /* - * If this is a retry, assume without checking that the step - * is still blocked. This rule saves a lot of PREP_WAITING - * queries and avoids any possible flappiness in the answer. - */ - if (flags & STEP_RETRY) - return true; - res = PQexecPrepared(conns[0], PREP_WAITING, 1, &backend_pids[step->session + 1], NULL, NULL, 0); @@ -770,8 +761,9 @@ try_complete_step(Step *step, int flags) if (ntuples >= 1) /* waiting to acquire a lock */ { - printf("step %s: %s \n", - step->name, step->sql); + if (!(flags & STEP_RETRY)) + printf("step %s: %s \n", + step->name, step->sql); return true; } /* else, not waiting */