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