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.
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();
}
PQntuples(res) != 1)
{
fprintf(stderr, "lock wait query failed: %s",
- PQerrorMessage(conn));
+ PQerrorMessage(conns[0]));
exit_nicely();
}
waiting = ((PQgetvalue(res, 0, 0))[0] == 't');