v3-0005-Avoid-misleading-user-about-status-of-InvalidTran.patch
application/octet-stream
Filename: v3-0005-Avoid-misleading-user-about-status-of-InvalidTran.patch
Type: application/octet-stream
Part: 1
Message:
Rework SLRU I/O errors handle
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v3-0005
Subject: Avoid misleading user about status of InvalidTransactionId
| File | + | − |
|---|---|---|
| src/include/access/slru.h | 4 | 3 |
From bf50b3db60cc6c9603b5c6ff26ea2d8a79d9965d Mon Sep 17 00:00:00 2001
From: Maxim Orlov <orlovmg@gmail.com>
Date: Wed, 25 Feb 2026 18:20:32 +0300
Subject: [PATCH v3 5/5] Avoid misleading user about status of
InvalidTransactionId
In some cases, we use the access SLRU page without specifying the XID.
If an error occurs, you may receive a message about the inability to
obtain status of transaction 0, even though the page appears to be sane.
To avoid this, use a more general formulation in case XID is invalid.
---
src/include/access/slru.h | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/include/access/slru.h b/src/include/access/slru.h
index 1e0beb26628..78ee36c05a6 100644
--- a/src/include/access/slru.h
+++ b/src/include/access/slru.h
@@ -166,10 +166,11 @@ typedef SlruCtlData *SlruCtl;
static inline int
xact_errmsg_for_io_error(const void *opaque_data)
{
- TransactionId xid = opaque_data ? (*(TransactionId *) opaque_data) :
- InvalidTransactionId;
+ if (opaque_data)
+ return errmsg("could not access status of transaction %u",
+ *(TransactionId *) opaque_data);
- return errmsg("could not access status of transaction %u", xid);
+ return errmsg("could not access slru entry"); /* InvalidTransactionId */
}
/*
--
2.43.0