While debugging a hangup in a daemon, created the following program that crashes intermittently in 1.9.1 and 1.9.2 (don't have a current 1.9.3), and finishes in 1.8 (ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-linux]):
====== infinite.rb
def foo
x = "hello world"*100000
ObjectSpace.define_finalizer(x, lambda { |x| recurse(1000);print "x: "+caller[1]+"\n"})
x = nil
end