Actions
Bug #17587
closedSegmentation fault with ractors and unix signals
Bug #17587:
Segmentation fault with ractors and unix signals
Description
Files
Actions
Added by mweitzel (Matthew Weitzel) over 5 years ago. Updated almost 5 years ago.
Description
Files
| ruby_2021-01-27-135454_Matthews-MacBook-Air.crash (29.6 KB) ruby_2021-01-27-135454_Matthews-MacBook-Air.crash | mweitzel (Matthew Weitzel), 01/27/2021 08:56 PM |
current master is stuck.
I'll check it.
The current behavior of stacking appears to be as expected.
The registered signal handler is called from the main thread. https://git.ruby-lang.org/ruby.git/tree/thread.c?id=947d93b715436b13eefa39f87737bdad3c1f870a#n2430
Ractor.yield in the main thread must cause stuck because there are no Ractor to take it in parallel.
In addition, signals are basically ignored in the signal handler, because of interrupt_mask. https://bugs.ruby-lang.org/issues/6009
For example, Signal.trap("USR2") do sleep end; Process.kill(:USR2, $$) can make ruby stuck.
I guess this is normal behavior that has nothing to do with Ractor.
(However, there is still room for consideration of safe behavior when a signal is received in a signal handler.)
as @wanabe (_ wanabe) san described, it is an expected behavior.
(I'm not sure why I prohibited trap in Ractor...)