Ansible & fork (un)safety

Running a simple, single-task playbook on macOS 10.15 returned this error:

$ ansible-playbook a.yml
objc[66286]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
objc[66286]: +[__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.
ERROR! A worker was found in a dead state

Turns out macOS 10.13 onward started enforcing stricter rules on fork()-safety. To get the older, unsafe behaviour (temporarily) back, use this environment variable:

$ OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES ansible-playbook a.yml

Here's a detailed writeup on this, with a focus on Ruby servers.