This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [BZ #15392] Remove fork child pid assertion


On Mon, 2014-11-17 at 14:20 -0800, Ricky Zhou wrote:
> On Mon, Nov 17, 2014 at 2:38 AM, Torvald Riegel <triegel@redhat.com> wrote:
> > On Fri, 2014-11-14 at 17:29 -0800, Ricky Zhou wrote:
> >> This assertion is no longer always true, since a forked child may be in
> >> a different PID namespace than its parent, and the two namespace may
> >> have PID collisions.
> >
> > If that's true, process-shared synchronization facilities based on the
> > thread ID (e.g., mutexes) might not work anymore.
> >
> > Do we at least need a note in the documentation that this is the case?
> > Or do we still need to implement it?
> >
> > Is there any glibc-internal synchronization that this could break?
> >
> > I believe we deal with these issues before dropping the assert.
> Within a PID namespace, all thread IDs should remain unique, and a
> process cannot have threads in different PID namespaces
> (http://lxr.free-electrons.com/source/kernel/fork.c#L1217), so I'm
> having trouble coming up with a situation where removing this assert
> would allow badness to happen down the line.

Okay, so private (intra-process) mutexes and such are safe.  However,
what about process-shared mutexes?



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]