| 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 18:05:14 |
| Message-ID: | aRIpWji1L87hhBVe@nathan |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Nov 10, 2025 at 10:49:58AM -0600, Nathan Bossart wrote:
> On Mon, Nov 10, 2025 at 10:26:17AM -0600, Nathan Bossart wrote:
>> 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.
0001 does this. When applied, Alexander's reproduction steps fail with
ERROR: requested DSM segment failed initialization
This one should probably get back-patched to v17, where the DSM registry
was introduced.
> BTW if we really wanted to avoid leaking tranches in test_dsa, we'd need to
> store the ID in shared memory. Your patch helps in the case where a single
> backend is repeatedly calling test_dsa_resowners(), but other backends
> would still allocate their own tranche. I don't see a strong need to fix
> this on back-branches, given these functions run exactly once as part of a
> test, but fixing it on master seems worthwhile so that extension authors
> don't copy/paste this broken code.
0002 does this.
--
nathan
| Attachment | Content-Type | Size |
|---|---|---|
| v2-0001-DSM-registry-ERROR-if-entry-was-not-initialized.patch | text/plain | 2.9 KB |
| v2-0002-test_dsa-Avoid-leaking-LWLock-tranches.patch | text/plain | 2.0 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Manni Wood | 2025-11-10 18:25:31 | Re: Include extension path on pg_available_extensions |
| Previous Message | Heikki Linnakangas | 2025-11-10 17:46:37 | Re: Move SLRU_PAGES_PER_SEGMENT to pg_config_manual.h |