threaded, forked, rethreaded processes will deadlock

Brian Fundakowski Feldman green at FreeBSD.org
Thu Jan 8 19:30:09 PST 2009


It appears that the post-fork hooks for malloc(3) are somewhat broken such that
when a threaded program forks, and then its child attempts to go threaded, it
deadlocks because it already appears to have locks held.  I am not familiar
enough with the current libthr/libc/rtld-elf interaction that I've been able
to fix it myself, unfortunately.

I discovered this today upgrading my work box from 7.0 to 7.1, but I can easily
reproduce it at home on a stale -CURRENT as well.  Testing on an OS X box to make
sure, the regression test does exit 0 there.

Has anyone happened to have fixed this already locally?

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the freebsd-hackers mailing list