From: ko1@... Date: 2018-10-23T02:59:02+00:00 Subject: [ruby-core:89521] [Ruby trunk Bug#14867] Process.wait can wait for MJIT compiler process Issue #14867 has been updated by ko1 (Koichi Sasada). "multi-thread-safe" is not correct. It was my mistake and it should be "signal handler safe" because this API is used by stackprof (used with SIGPROF). however, I recognize this assumption is broken with the following ticket. ``` commit 5a1dfb04bc2b09fcf8f3427cac72d0ce52a45eb2 Author: normal Date: Thu May 17 04:20:33 2018 +0000 vm_trace: implement postponed_jobs as st_table st_table allows the use of st_shift to act as an order-preserving queue while allowing fast lookups to prevent duplicate jobs. In typical Ruby apps, this table will only have one entry for gc_finalize_deferred_register. ``` I believe this commit should be reverted (and I need to write a comment about assumption). ---------------------------------------- Bug #14867: Process.wait can wait for MJIT compiler process https://bugs.ruby-lang.org/issues/14867#change-74574 * Author: k0kubun (Takashi Kokubun) * Status: Closed * 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: