Subject: Re: Propagate XLogFindNextRecord error to callers

From: Anthonin Bonnefoy <[email-masked]>
Date: Mon, 9 Feb 2026 10:21:59 +0100

On Tue, Feb 3, 2026 at 5:05 PM Mircea Cadariu <[email-masked]> wrote:
> I've picked up the review for your patch.

Thanks for picking it!

> Attached is a failing test that reproduces the issue. Have I got it
> right? We can consider using it to validate your patch then.

Yeah, that's the gist of it. However, the test you've written will
only work on little endian architectures. Also, I think the xlog page
header size won't have the 4 bytes padding on 32 bits systems.

I've added a similar test in 001_basic.pl, but it relies on copying an
existing WAL file and setting the WAL magic to 0000. This way, the
result will be the same independent of the endianness and memory
padding.

Regards,
Anthonin Bonnefoy

---

From: Japin Li <[email-masked]>
Date: Mon, 09 Feb 2026 17:36:19 +0800

> result will be the same independent of the endianness and memory

+	{
+		if (errormsg)
+			pg_fatal("could not find a valid record after %X/%X: %s",
+					 LSN_FORMAT_ARGS(private.startptr), errormsg);
+		else
+			pg_fatal("could not find a valid record after %X/%X",
+					 LSN_FORMAT_ARGS(private.startptr));

For consistency, this should use the %X/%08X format as elsewhere.

> Regards,
> Anthonin Bonnefoy
>
> [2. text/x-diff; v2-0001-Propage-errormsg-to-XLogFindNextRecord-caller.patch]...

-- 
Regards,
Japin Li
ChengDu WenWu Information Technology Co., Ltd.

---

From: Anthonin Bonnefoy <[email-masked]>
Date: Mon, 9 Feb 2026 11:06:30 +0100

> For consistency, this should use the %X/%08X format as elsewhere.

Good catch, I've updated the patch.