From 9958b2b2a8cc25e8d791fc965fff3f0496163be6 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 17 Oct 2018 15:06:38 -0400 Subject: [PATCH] Fix minor bug in isolationtester. If the lock wait query failed, isolationtester would report the PQerrorMessage from some other connection, meaning there would be no message or an unrelated one. This seems like a pretty unlikely occurrence, but if it did happen, this bug could make it really difficult/confusing to figure out what happened. That seems to justify patching all the way back. In passing, clean up another place where the "wrong" conn was used for an error report. That one's not actually buggy because it's a different alias for the same connection, but it's still confusing to the reader. --- src/test/isolation/isolationtester.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c index 4ecad038bd..62097ab961 100644 --- a/src/test/isolation/isolationtester.c +++ b/src/test/isolation/isolationtester.c @@ -594,7 +594,7 @@ run_permutation(TestSpec *testspec, int nsteps, Step **steps) if (!PQsendQuery(conn, step->sql)) { fprintf(stdout, "failed to send query for step %s: %s\n", - step->name, PQerrorMessage(conns[1 + step->session])); + step->name, PQerrorMessage(conn)); exit_nicely(); } @@ -743,7 +743,7 @@ try_complete_step(Step *step, int flags) PQntuples(res) != 1) { fprintf(stderr, "lock wait query failed: %s", - PQerrorMessage(conn)); + PQerrorMessage(conns[0])); exit_nicely(); } waiting = ((PQgetvalue(res, 0, 0))[0] == 't');