Better error messages for short reads/writes in SLRU
This avoids getting a Could not read from file ...: Success. for a short read or write (since errno is not set in that case). Instead, report a more specific error messages. Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/5de61b6b-8be9-7771-0048-860328efe027%402ndquadrant.com
This commit is contained in:
parent
4e72a8e11e
commit
396e4afdbc
@ -920,18 +920,29 @@ SlruReportIOError(SlruCtl ctl, int pageno, TransactionId xid)
|
||||
path, offset)));
|
||||
break;
|
||||
case SLRU_READ_FAILED:
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not read from file \"%s\" at offset %u: %m.",
|
||||
path, offset)));
|
||||
if (errno)
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not read from file \"%s\" at offset %u: %m.",
|
||||
path, offset)));
|
||||
else
|
||||
ereport(ERROR,
|
||||
(errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not read from file \"%s\" at offset %u: read too few bytes.", path, offset)));
|
||||
break;
|
||||
case SLRU_WRITE_FAILED:
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not write to file \"%s\" at offset %u: %m.",
|
||||
path, offset)));
|
||||
if (errno)
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not write to file \"%s\" at offset %u: %m.",
|
||||
path, offset)));
|
||||
else
|
||||
ereport(ERROR,
|
||||
(errmsg("could not access status of transaction %u", xid),
|
||||
errdetail("Could not write to file \"%s\" at offset %u: wrote too few bytes.",
|
||||
path, offset)));
|
||||
break;
|
||||
case SLRU_FSYNC_FAILED:
|
||||
ereport(data_sync_elevel(ERROR),
|
||||
|
Loading…
x
Reference in New Issue
Block a user