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