HomePhabricator

procutil: try and avoid angering CoreFoundation on macOS

Authored by durin42.

Description

procutil: try and avoid angering CoreFoundation on macOS

We've seen failures like this:

objc[57662]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
objc[57662]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.

I think this is due to forking off some background processes during
hg update or similar. I don't have any conclusive proof this is the
fork() call that's to blame, but it's the most likely one since the
regular hg update codepath uses the other fork() invocation (via
workers) and we don't get this report from non-Google macOS users.

Ugh.

Differential Revision: https://phab.mercurial-scm.org/D7615

Details