Bug #7570

rb_fatal() in Fiber don't terminate process

Added by Tomoyuki Chikanaga almost 3 years ago. Updated almost 3 years ago.

Assignee:Koichi Sasada
ruby -v:ruby 2.0.0dev (2012-12-16 trunk 38414) [x86_64-darwin10.8.0] Backport:


rb_fatal() (C function) should terminate whole script.

rb_fatal() # a extension library method calling rb_fatal()
p :ng # => never reached here

But rb_fatal() inside Fiber could be ignored.

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.

fatal_in_fiber.patch Magnifier (1.63 KB) Tomoyuki Chikanaga, 12/16/2012 02:01 AM


#1 Updated by Koichi Sasada almost 3 years ago

  • Assignee set to 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?

#2 Updated by Tomoyuki Chikanaga almost 3 years ago

  • Status changed from Open to Closed

Thank you for your review.
I've committed at r38441.

Also available in: Atom PDF