Strange error in new 003_cic_2pc.pl test

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Strange error in new 003_cic_2pc.pl test
Date: 2021-11-11 16:06:24
Message-ID: 1552982.1636646784@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

tadarida just reported this [1]:

2021-11-11 14:40:40.040 CET [29620:388] 023_cic_2pc.pl ERROR: could not read two-phase state from WAL at 0/1716C68

That error message is remarkably unhelpful, and I think unnecessarily so.
Why the heck isn't XlogReadTwoPhaseData passing on the error string
that it just got from XLogReadRecord?

Now, XLogReadRecord's API spec does say it might return NULL errormsg
if "the page read callback already reported the error". But there's
no sign of that in tadarida's log. Anyway, I have in mind to do

ereport(ERROR,
(errcode_for_file_access(),
- errmsg("could not read two-phase state from WAL at %X/%X",
- LSN_FORMAT_ARGS(lsn))));
+ errmsg("could not read two-phase state from WAL at %X/%X: %s",
+ LSN_FORMAT_ARGS(lsn),
+ errormsg ? errormsg : "(no details available)")));

But first, I'm going to look around for other XLogReadRecord
callers that might be equally slipshod.

(Identifying the actual underlying bug, if there is one, is a different
problem. This test being so new, I'd not be surprised if it is showing
us a real-but-intermittent issue. But perhaps fixing this error report
will yield more info.)

regards, tom lane

[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=tadarida&dt=2021-11-11%2013%3A29%3A58

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2021-11-11 16:11:51 Re: Improving psql's \password command
Previous Message Bossart, Nathan 2021-11-11 16:04:02 Re: Improving psql's \password command