Re: pg_logical_slot_get_changes waits continously for a partial WAL record spanning across 2 pages

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>
Cc: vignesh C <vignesh21(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>
Subject: Re: pg_logical_slot_get_changes waits continously for a partial WAL record spanning across 2 pages
Date: 2025-07-15 23:16:28
Message-ID: aHbhTKT3N5VjD--2@paquier.xyz
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jul 15, 2025 at 09:14:27AM +0000, Hayato Kuroda (Fujitsu) wrote:
> I put pg_logical_emit_message() after injection_points_wakeup(), but your patch
> puts it before. I verified even your patch can reproduce the issue, but is there
> a reason?
> (This is not a comment which must be fixed, I just want to know the reason to study)

It's for increasing the odds, so as the cross-page record finds its
way to disk when doing the recovery phase. I was wondering about
forcing a flush of pg_logical_emit_message(), as well, but the
reproduction rate was still good enough without it.

>> With all that said, I'll move on with this stuff once the embargo for
>> v18 beta2 is lifted and the tag is pushed. That should happen in 24h
>> or so, I guess.
>
> The provided patches looks good to me.

Thanks for the reviews!
--
Michael

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2025-07-15 23:27:18 Re: patch: Use pg_assume in jsonb_util.c to fix GCC 15 warnings
Previous Message Peter Geoghegan 2025-07-15 23:05:13 Re: patch: Use pg_assume in jsonb_util.c to fix GCC 15 warnings