ruby - A fiber issue with `autoload`: `fiber called across stack rewinding barrier (FiberError)` -
we using fiber eventmachine (em-synchrony) in our production env quite long time, , works well. use outdated ruby 1.9.3 , activerecord 3.x on 2 years. migrating 2 big parts latest versions.
when trying upgrade ruby latest, got exception fiber called across stack rewinding barrier (fibererror)
in 2.0+, not in 1.9.3. can guys figure out problem?
minimal sample:
test.rb
autoload :user, './user.rb' f = fiber.new p user end f.resume f.resume
user.rb
class user end fiber.yield # line important
run
$ rvm 1.9.3,2.0,2.1 sh -c 'echo ==== $ruby_version; ruby test.rb' ==== ruby-1.9.3-p551 user ==== ruby-2.0.0-p598 user.rb:4:in `yield': fiber called across stack rewinding barrier (fibererror) user.rb:4:in `<top (required)>' test.rb:4:in `block in <main>' ==== ruby-2.1.5 user.rb:4:in `yield': fiber called across stack rewinding barrier (fibererror) user.rb:4:in `<top (required)>' test.rb:4:in `block in <main>'
more sample codes in repo:
https://github.com/qqshfox/test_fiber
any appreciated!
Comments
Post a Comment