NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/56979: fork(2) fails to be signal safe
The following reply was made to PR lib/56979; it has been noted by GNATS.
From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
To: Tom Lane <tgl%sss.pgh.pa.us@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/56979: fork(2) fails to be signal safe
Date: Fri, 26 Aug 2022 08:38:10 +0000
> Date: Thu, 25 Aug 2022 22:37:03 -0400
> From: Tom Lane <tgl%sss.pgh.pa.us@localhost>
>
> I've built the system with that patch added, and will start using it
> tomorrow. I do not have a reliable reproducer, and on reflection it's
> hard to see how to make one -- unless you know of an operation that
> would hold the rtld lock for a decently long period of time. However,
> I'm finding that my macppc Postgres buildfarm instance [1] is hitting
> this in perhaps one out of five or ten runs, so if it can survive for
> a week or two then I'll feel pretty confident that this patch fixes
> it for me.
Cool, thanks!
> FWIW, the second patch certainly looks like it will alleviate the
> symptom I'm seeing. I suppose it would not fix cases where the
> signal interrupts an operation holding the rtld lock exclusively;
> but I do not think that will be a problem for my use-case.
The rtld exclusive lock blocks signals (except for SIGTRAP, which
might be a bug...).
> I have no opinion about the first patch -- Postgres doesn't use
> pthread_atfork.
Perhaps not, but if you did, and if a signal interrupted
pthread_atfork triggering a signal handler that calls fork, then
fork's attempts to invoke the atfork handlers might see the data
structures in the middle of an update.
Home |
Main Index |
Thread Index |
Old Index