Rework SLRU I/O errors handle

From: Maxim Orlov <orlovmg(at)gmail(dot)com>
To: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Rework SLRU I/O errors handle
Date: 2026-02-26 14:26:05
Message-ID: CACG=ezZZfurhYV+66ceubxQAyWqv9vaUi0yoO4-t48OE5xc0DQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi!

Beginning of the discussion is here [0].

Historically, the SLRU module was designed to handle 32-bit
transactions. However, it is now utilised for handling a variety of
object types, like TransactionId, MultixactId, MultiXactOffset,
QueuePosition, and so on. But the IO error reporting system is still
designed to support 32-bit XIDs exclusively.

The proposed patchset allows us to define a "custom" callback to
improve error messages.

The first two commits add a callback and test case. The subsequent ones
improve I/O error messages. The last one adds the XID epoch to the error
message. It's purely optional, but I think it would be useful.

[0]
https://www.postgresql.org/message-id/CACG%3Dezbwy1zargXDNPeYXxZwRW3jXu_aD%3DrcG-7dc4fw7Y9Ojw%40mail.gmail.com

--
Best regards,
Maxim Orlov.

Attachment Content-Type Size
v3-0003-Use-custom-SLRU-IO-error-msg-for-an-asynchronous-.patch application/octet-stream 3.1 KB
v3-0005-Avoid-misleading-user-about-status-of-InvalidTran.patch application/octet-stream 1.3 KB
v3-0001-Add-a-callback-for-generating-an-I-O-message-in-t.patch application/octet-stream 21.7 KB
v3-0002-Add-test-case-for-custom-SLRU-IO-error.patch application/octet-stream 4.5 KB
v3-0004-Use-custom-SLRU-IO-error-msg-for-multixact.patch application/octet-stream 3.0 KB
v3-0006-Expand-xact-SLRU-IO-error-to-show-epoch.patch application/octet-stream 1.1 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message KAZAR Ayoub 2026-02-26 14:31:30 Re: Speed up COPY FROM text/CSV parsing using SIMD
Previous Message Erik Rijkers 2026-02-26 14:16:22 typo in alter_table.sgml (was: Re: pgsql: Allow ALTER COLUMN SET EXPRESSION on virtual columns with CHECK)