From: "nagachika (Tomoyuki Chikanaga)" Date: 2012-12-16T02:01:46+09:00 Subject: [ruby-core:50917] [ruby-trunk - Bug #7570][Open] rb_fatal() in Fiber don't terminate process Issue #7570 has been reported by nagachika (Tomoyuki Chikanaga). ---------------------------------------- Bug #7570: rb_fatal() in Fiber don't terminate process https://bugs.ruby-lang.org/issues/7570 Author: nagachika (Tomoyuki Chikanaga) Status: Open Priority: Low Assignee: Category: core Target version: 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/