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/