From: "Paul (Paul Donohue)" Date: 2012-08-03T23:23:16+09:00 Subject: [ruby-core:46965] [Backport87 - Backport #3532] Segfault/infinite loop/GC bug when a thread aborts on an exception whose to_s method uses a block Issue #3532 has been updated by Paul (Paul Donohue). Incase anyone stumbles across this again, I am fairly confident this was related to: http://timetobleed.com/the-broken-promises-of-mrireeyarv/ However, I have no idea how someone would go about finding the source of the erroneous garbage collection that led to this ... maybe try to print the contents of rb_block->prev before it is garbage collected and re-allocated, then figure out from that where the object was allocated? That doesn't seem like it would be trivial. ---------------------------------------- Backport #3532: Segfault/infinite loop/GC bug when a thread aborts on an exception whose to_s method uses a block https://bugs.ruby-lang.org/issues/3532#change-28628 Author: Paul (Paul Donohue) Status: Open Priority: High Assignee: Category: core Target version: =begin The attached crash.rb file reliably causes Ruby 1.8.7 to either segfault, get stuck in an infinite loop, or die with a GC bug message. The exact behavior seems to depend on how ruby was compiled. =end -- http://bugs.ruby-lang.org/