Re: GetNamedLWLockTranche crashes on Windows in normal backend

From: Sami Imseih <samimseih(at)gmail(dot)com>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: GetNamedLWLockTranche crashes on Windows in normal backend
Date: 2025-09-08 20:34:17
Message-ID: CAA5RZ0s_hbrLBmRDydii6Zfpo-dQFkVjp91V0yrgUbTfpC+KTg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Mon, Sep 08, 2025 at 02:47:26PM -0500, Sami Imseih wrote:
> > I think v2 is fine because it is perfectly fine for a normal backend
> > (EXEC_BACKEND) to call this function as long as it's processing the
> > startup hook. The goal is to prevent it from being called outside of the
> > startup hook.
>
> I thought the goal was to prevent the crashes...

yes it is. Ok, I see what I did wrong with my test that showed v2 working in
EXEC_BACKEND. when it was reentering the startup hook, it was skipping
the code under (!found) for shared memory existing. That is also where I
had the code to call GetNamedLWLockTranche. So, that's wrong
( which is what you also mentioned above) I moved
the GetNamedLWLockTranche outside of the (!found) block in the test.

> > I think we should commit these tests as well. If you think the tests
> > should be a separate thread, let me know.
>
> Thanks. I think we can discuss them here once we fix $SUBJECT. (BTW it
> looks like you forgot to attach the patches.)

oops. Attached now.

--
Sami

Attachment Content-Type Size
v4-0002-Tests-for-LWLock-tranche-registration-improvement.patch application/octet-stream 16.7 KB
v4-0001-Move-named-LWLock-tranche-request-array-to-shared.patch application/octet-stream 4.7 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeff Davis 2025-09-08 20:35:02 Re: Should io_method=worker remain the default?
Previous Message Robert Haas 2025-09-08 20:14:47 Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)