From 5d91d78fe95f02ad44d4222411f9b72e58dd84e3 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 ba8082c9803..c32629b0740 100644 --- a/src/test/isolation/isolationtester.c +++ b/src/test/isolation/isolationtester.c @@ -593,7 +593,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(); } @@ -742,7 +742,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');