From: Eric Wong Date: 2018-10-31T03:07:49+00:00 Subject: [ruby-core:89655] Re: [Ruby trunk Bug#14867] Process.wait can wait for MJIT compiler process takashikkbn@gmail.com wrote: > > ubf_select inside ruby_waitpid_locked is safe, but contention on vm->gvl.lock seems wrong. Made r65465 which should fix rb_f_system. > > > > Also taking a look at native_ppoll_sleep for spawn; > > Thanks for taking a look at them :) OK, I think it's the lack of locking/atomics around checking waitpid_state.ret and I introduced the bug in commit 9d4027b50334ef804f6f138fba1d342fe188826b ("process.c: simplify SIGCHLD-based waitpid"). I redesign rb_thread_sleep_interruptible tomorrow. Really tired and stressed now from crappy keyboard. > > but I would feel more comfortable investigating issues if possible race condition around iseq->body access in MJIT worker could be eliminated as source of data corruption. > > Ok. As said above, I believe it's properly guarded with locks and `in_jit`, but I'll take a look at that after https://80x24.org/spew/20181030184614.3830-1-e@80x24.org/raw is committed. Could you check in ccan/list one first? I'll check https://80x24.org/spew/20181030184614.3830-2-e@80x24.org/raw one later, but ccan change should be safe to merge separately. Sorry, I missed your message about in_jit. Trying ccan/list now as r65468 Unsubscribe: