RE: Disabled logical replication origin session causes primary key errors
Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>
From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'Amit Kapila' <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Shawn McCoy <shawn.the.mccoy@gmail.com>
Cc: "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>, "drewwcallahan@gmail.com" <drewwcallahan@gmail.com>, "scott@meads.us" <scott@meads.us>
Date: 2025-04-21T10:08:18Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix an oversight in 3f28b2fcac.
- 0e091ce409e0 18.0 landed
- 05676d87e2e6 17.5 landed
- 0de091a4b585 16.9 landed
-
Don't advance origin during apply failure.
- 3f28b2fcac33 18.0 cited
Attachments
- v2-HEAD-0001-Fix-oversight-3f28b2f.patch (application/octet-stream) patch v2-0001
- v2-PG16-PG17-0001-Fix-oversight-3f28b2f.patch (application/octet-stream) patch v2-0001
Dear members, Thanks for reporting the issue. > Right. We have wrongly assumed in that commit that the apply worker > will exit after an ERROR, but as shown by this case, the ERROR could > be silently handled. So, +1, for moving replication origin reset to > PG_CATCH in start_apply. I was an author of original commit, so let me take initiative. When I was working for 3f28b2fcac, I could not find path which ERROR is reported but worker can survive so that I added replorigin_reset() in apply_error_callback(). The reported case, however, the exception could be raised but the insert itself is committed. In this case worker can continue working. Attached patches have proposed changes. I did 1) meson test, 2) workloads provided in [1], and 3) manual tests done in original thread [2], and all of them could be passed. The version is 2 because of the self-reviewing. One note is that geterrlevel() is removed for HEAD patch but retained for PG16/PG17. The function is exported, and APIs cannot be changed in back branches. How do you feel? [1]: https://www.postgresql.org/message-id/flat/CALsgZNCGARa2mcYNVTSj9uoPcJo-tPuWUGECReKpNgTpo31_Pw%40mail.gmail.com [2]: https://www.postgresql.org/message-id/CAJpy0uAa3M9sC3GWTUA%2BYPTnYxEcorFt_7g6rXz05jNcAGdjgQ%40mail.gmail.com Best regards, Hayato Kuroda FUJITSU LIMITED