Actions
Bug #20758
closedBuild failure with macOS Sequoia (15.0) and Xcode 16
Description
Observed behaviour¶
Test failures in TestProcess#test_daemon_noclose
. Output as follows:
Run options:
--seed=56670
"--ruby=./miniruby -I../src/lib -I. -I.ext/common ../src/tool/runruby.rb --extout=.ext -- --disable-gems"
--excludes-dir=../src/test/.excludes
--name=!/memory_leak/
# Running tests:
[ 99/158] TestProcess#test_daemon_nocloseobjc[89134]: +[NSPlaceholderMutableString initialize] may have been in progress in another thread when fork() was called.
objc[89134]: +[NSPlaceholderMutableString 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.
= 0.00 s
1) Failure:
TestProcess#test_daemon_noclose [/Users/mattvh/git/ruby/src/test/ruby/test_process.rb:1882]:
<"ok\n" + "/\n"> expected but was
<"">.
Finished tests in 8.625520s, 18.3177 tests/s, 112.5729 assertions/s.
158 tests, 971 assertions, 1 failures, 0 errors, 1 skips
ruby -v: ruby 3.4.0dev (2024-09-23T12:23:58Z master 4c3727c6ac) +PRISM [arm64-darwin24]
make: *** [yes-test-all] Error 1
Expected behaviour¶
I expect the tests to all pass with no errors.
Notes¶
This started happening for me immediately after upgrading my laptop to the latest macOS using the software update tool. Versions reported are:
Command Line Tools for Xcode 16.0 23/09/2024, 14:24:42
macOS Sequoia 15.0 15.0 23/09/2024, 14:41:14
This appears to be the same issue as seen in https://bugs.ruby-lang.org/issues/18912
I can replicate it using the same minimal repro that @katei (Yuta Saito) described in https://bugs.ruby-lang.org/issues/18912#note-15
Process.daemon(false, true)
Dir.pwd
and can confirm that exporting the variable OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
suppresses the error.
This behaviour was tested on this commit https://github.com/ruby/ruby/commit/4c3727c6ac
Actions
Like0
Like0Like0