From: takashikkbn@... Date: 2018-07-07T14:58:54+00:00 Subject: [ruby-core:87846] [Ruby trunk Bug#14867][Assigned] Process.wait can wait for MJIT compiler process Issue #14867 has been updated by k0kubun (Takashi Kokubun). Status changed from Closed to Assigned Hi Eric. I fixed [Bug #14892] on r63875, but only the rubyspec check you added is failing with -DMJIT_FORCE_ENABLE like: ``` $ make test-spec $ /home/k0kubun/src/github.com/ruby/ruby-svn/.ruby-force/miniruby -I/home/k0kubun/src/github.com/ruby/ruby-svn/lib /home/k0kubun/src/github.com/ruby/ruby-svn/tool/runruby.rb --archdir=/home/k0kubun/src/github.com/ruby/ruby-svn/.ruby-force --extout=.ext -- /home/k0kubun/src/github.com/ruby/ruby-svn/spec/mspec/bin/mspec-run -B ../spec/default.mspec ruby 2.6.0dev (2018-07-07 trunk 63874) +JIT [x86_64-linux] [| | ================ 40% | 00:02:03] 0F 0E leaked before wait2 specs: [[31406, #]] 1) An exception occurred during: before :all FAILED Expected [[31406, #]] to be empty /home/k0kubun/src/github.com/ruby/ruby-svn/spec/ruby/core/process/wait2_spec.rb:18:in `block (3 levels) in ' /home/k0kubun/src/github.com/ruby/ruby-svn/spec/ruby/core/process/wait2_spec.rb:16:in `block (2 levels) in ' /home/k0kubun/src/github.com/ruby/ruby-svn/spec/ruby/core/process/wait2_spec.rb:3:in `' [- | ==================100%================== | 00:00:00] 1F 0E Finished in 103.288794 seconds 3607 files, 28545 examples, 208272 expectations, 1 failure, 0 errors, 0 tagged uncommon.mk:777: recipe for target 'yes-test-spec' failed make: *** [yes-test-spec] Error 1 ``` So I skipped the check in r63876. I'm not sure if it's reproducible on your environment, but could you check it? ---------------------------------------- Bug #14867: Process.wait can wait for MJIT compiler process https://bugs.ruby-lang.org/issues/14867#change-72867 * Author: k0kubun (Takashi Kokubun) * Status: Assigned * Priority: Normal * Assignee: normalperson (Eric Wong) * Target version: * ruby -v: * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- If Ruby tries to wait for any child process, MJIT's gcc/clang process could be caught by the method call. It's not convenient for both Ruby's user and MJIT worker thread, so Process.wait and its families should somehow avoid waiting for it. ---Files-------------------------------- 0001-hijack-SIGCHLD-handler-for-internal-use.patch (13.8 KB) JIT-test-all.log (39.9 KB) mjit_test-all_63796.log (40.4 KB) config_ruby-loco_mingw.log (27 KB) test_jit_results.txt (41.2 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: