Re: pg_logical_slot_get_changes waits continously for a partial WAL record spanning across 2 pages
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Cc: vignesh C <vignesh21@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Alexander Korotkov <aekorotkov@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Amit Kapila <amit.kapila16@gmail.com>, Melanie Plageman <melanieplageman@gmail.com>
Date: 2025-07-15T23:16:28Z
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
Commits
-
Fix infinite wait when reading a partially written WAL record
- c9f4e7520603 17.6 landed
- 762f352ca4a6 13.22 landed
- bedfdb85b0a3 14.19 landed
- 9f270f48f3fe 15.14 landed
- b485e1c89a6d 16.10 landed
- d3917d8f13e7 19 (unreleased) landed
- 5449d5b7ae9c 18.0 landed
-
Improve the stability of the recovery test 047_checkpoint_physical_slot
- fd39c3cf2839 17.6 landed
- c71c702f067b 18.0 landed
- ccd945159361 19 (unreleased) landed
-
Improve recovery test 046_checkpoint_logical_slot
- 6aefde2a2db8 17.6 landed