Fix minor bug in isolationtester.
authorTom Lane
Wed, 17 Oct 2018 19:06:38 +0000 (15:06 -0400)
committerTom Lane
Wed, 17 Oct 2018 19:06:38 +0000 (15:06 -0400)
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

index 18e1445d81c76ab66d0a03e528cb104967730302..4660cb48c61f6dca30cbd3f21bfa66113a554aaa 100644 (file)
@@ -600,7 +600,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();
        }
 
@@ -728,7 +728,7 @@ try_complete_step(Step *step, int flags)
            if (PQresultStatus(res) != PGRES_TUPLES_OK)
            {
                fprintf(stderr, "lock wait query failed: %s",
-                       PQerrorMessage(conn));
+                       PQerrorMessage(conns[0]));
                exit_nicely();
            }
            ntuples = PQntuples(res);