Re: Improve LWLock tranche name visibility across backends

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Sami Imseih <samimseih(at)gmail(dot)com>
Cc: Alexander Lakhin <exclusion(at)gmail(dot)com>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Improve LWLock tranche name visibility across backends
Date: 2025-11-10 16:26:17
Message-ID: aRISKd2MEeIqRcOh@nathan
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Nov 03, 2025 at 11:50:48AM -0600, Sami Imseih wrote:
>>> I am not sure we need to do anything about this.
>>
>> Or maybe we just avoid the tranche_id from leaking
>> in test_dsa_resowners() by making it a static variable
>> and checking if we have a valid tranche id before calling
>> LWLockNewTrancheId()? That is the proper pattern.
>
> Like the attached.

It's probably a good idea to avoid tranche leaks, but IMHO there's room for
improvement in the DSM registry, too. IIUC the problem is that the DSM
segment is still being added to the registry and found by other backends
despite the initialization callback failing. My first instinct is that we
should keep track of whether the DSM segments/DSAs/dshash tables in the
registry have been fully initialized and to just ERROR in other backends
when attaching if they aren't. That shouldn't really happen in practice,
but it'd be good to avoid the strange errors, anyway.

--
nathan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2025-11-10 16:38:21 Re: Move SLRU_PAGES_PER_SEGMENT to pg_config_manual.h
Previous Message Heikki Linnakangas 2025-11-10 16:24:23 Re: Move SLRU_PAGES_PER_SEGMENT to pg_config_manual.h