| From: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
|---|---|
| To: | Daniil Davydov <3danissimo(at)gmail(dot)com> |
| Cc: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Wrong comment for ReplicationSlotCreate |
| Date: | 2026-01-05 05:49:26 |
| Message-ID: | CAA4eK1+zv5s3r6v8tCNV=yVZbMAE3i3VXJ5fYoiNuTVbPbVovw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Jan 1, 2026 at 10:01 PM Daniil Davydov <3danissimo(at)gmail(dot)com> wrote:
>
> On Wed, Dec 31, 2025 at 9:32 AM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
> >
> > You’re right that during CREATE_REPLICATION_SLOT, SnapBuildFindSnapshot() ensures we don’t miss PREPARE records for prepared transactions that exist at creation time.
> >
> > 1462aad2e introduced support for altering logical replication slot options, including two_phase, after the slot has been created. The commit comment says:
> > ```
> > Changing the 'two_phase' option for a subscription from 'true' to 'false'
> > is permitted only when there are no pending prepared transactions
> > corresponding to that subscription. Otherwise, the changes of already
> > prepared transactions can be replicated again along with their corresponding
> > commit leading to duplicate data or errors.
> > ```
> >
> > true->false is not allowed, however false->true is permitted. So, I think the old comment is still possible today:
> > ```
> > * Note that enabling this option after decoding has already advanced
> > * may result in missing PREPARE records for transactions that were
> > * prepared before the option was enabled.
> > ```
> >
>
> Hm, I still can't understand why the comment that you provided is correct.
>
> How can we "miss PREPARE records" if slot creation requires all prepared
> transactions to finish? The commit message says about risks during the
> change of the parameter "on the fly". But we are dealing with slot creation.
>
The point is about changing the two_phase property of slot after
slot_creation which we carefully change for slots related to
subscription. So, if we don't take necessary precautions then enabling
it on the fly could lead to the problem Chao is worried about.
--
With Regards,
Amit Kapila.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Kapila | 2026-01-05 05:51:29 | Re: Wrong comment for ReplicationSlotCreate |
| Previous Message | Prafulla Ranadive | 2026-01-05 05:28:00 | Need help with postgresql build on windows |