Re: Assertion failure in SnapBuildInitialSnapshot()

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
Cc: Pradeep Kumar <spradeepkumar29(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Alexander Lakhin <exclusion(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, vignesh C <vignesh21(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Assertion failure in SnapBuildInitialSnapshot()
Date: 2025-11-24 09:46:04
Message-ID: CAA4eK1Ki2Czu8rQ6ZidSqoJHAuqXWBSk1_9avP=aee1u1ejGGw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Nov 21, 2025 at 9:17 AM Zhijie Hou (Fujitsu)
<houzj(dot)fnst(at)fujitsu(dot)com> wrote:
>
> On Thursday, November 13, 2025 12:56 PM Zhijie Hou (Fujitsu) <houzj(dot)fnst(at)fujitsu(dot)com> wrote:
> >
>
> I have been thinking if there a way to avoid holding ReplicationSlotControlLock
> exclusively in ReplicationSlotsComputeRequiredXmin() because that could cause
> lock contention when many slots exist and advancements occur frequently.
>
> Given that the bug arises from a race condition between slot creation and
> concurrent slot xmin computation, I think another way is that, we acquire the
> ReplicationSlotControlLock exclusively only during slot creation to do the
> initial update of the slot xmin. In ReplicationSlotsComputeRequiredXmin(), we
> still hold the ReplicationSlotControlLock in shared mode until the global slot
> xmin is updated in ProcArraySetReplicationSlotXmin(). This approach prevents
> concurrent computations and updates of new xmin horizons by other backends
> during the initial slot xmin update process, while it still permits concurrent
> calls to ReplicationSlotsComputeRequiredXmin().
>

Yeah, this seems to work.

> Here is an update patch for this approach on HEAD.
>

Thanks for the patch.

Sawada-San, are you planning to look into this? Otherwise, I can take
care of it.

--
With Regards,
Amit Kapila.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Borisov 2025-11-24 09:55:35 Re: Improve the performance of Unicode Normalization Forms.
Previous Message Heikki Linnakangas 2025-11-24 09:33:32 Re: [PATCH] Reorganize pqcomm.h a bit