From: "ko1 (Koichi Sasada)" Date: 2012-12-18T05:47:51+09:00 Subject: [ruby-core:50953] [ruby-trunk - Bug #7570] rb_fatal() in Fiber don't terminate process Issue #7570 has been updated by ko1 (Koichi Sasada). Assignee set to ko1 (Koichi Sasada) Target version set to 2.0.0 Thank you for your report. Your patch seems good and passed test-all on my environment. Could you commit it? ---------------------------------------- Bug #7570: rb_fatal() in Fiber don't terminate process https://bugs.ruby-lang.org/issues/7570#change-34810 Author: nagachika (Tomoyuki Chikanaga) Status: Open Priority: Low Assignee: ko1 (Koichi Sasada) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-12-16 trunk 38414) [x86_64-darwin10.8.0] rb_fatal() (C function) should terminate whole script. Thread.start{ rb_fatal() # a extension library method calling rb_fatal() }.resume p :ng # => never reached here But rb_fatal() inside Fiber could be ignored. Fiber.start{ rb_fatal() }.resume p :ng # => reached here! I think it's because TAG_FATAL is ignored in rb_vm_make_jump_tag_but_local_jump(). I'll attach a patch with a testcase. -- http://bugs.ruby-lang.org/