dead lock in forked child

Jason Evans jasone at canonware.com
Tue Oct 9 18:07:05 PDT 2012


On Oct 9, 2012, at 5:53 PM, "Mowry, Robert" <Robert.Mowry at netapp.com> wrote:
> I can understand the motivation behind wanting this to work, but when I
> read the POSIX spec for threaded programs that call fork(), it seems
> pretty clear that malloc() and free() etc are not defined to be safe to
> call in the child process:
> 
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html
> 
> […]
> 
> Is is that people want to go beyond what the spec calls out - and hence
> the request to fix issues like this?  Or are folks not aware they are
> attempting to do something that's not really kosher?

In an idea world I would prefer to make no accommodation for such dangerous application behavior.  However, I've heard many times, "But it works with [insert OS/allocator here]!"  Thus, the problem is that there's a lot of dangerous code in the world that mostly works, and if jemalloc doesn't go to some extra trouble, it ends up not being a viable general purpose alternative.

That said, I tend to play whack-a-mole with fork-related issues, because I personally don't think it's important enough to spend a bunch of time providing a rock-solid solution. =)

Jason


More information about the jemalloc-discuss mailing list