Project

General

Profile

Actions

Bug #7801

closed

Segfault with block called from continuation

Added by chrismcg (Chris McGrath) over 11 years ago. Updated over 11 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin11.4.2]
Backport:
[ruby-core:51991]

Description

I'm getting a crash on OSX with 1.9.3-p385. I've also had the same crash on all the releases since at least -p194. I've seen some similar crash reports but nothing quite the same. Unfortunately this only happens intermittently when running my rails test suite and I haven't been able to make a simple reproduction.

The code where the crash occurs is in a model that uses the state_machine gem, specifically an around_transition which uses continuations internally. It's calling a block so given the intermittent nature of the crash perhaps the block is being GC'd at some point?

Our code looks like:

around_transition do |item, block|
item.changing_state = true
block.call
item.changing_state = false
end


Files

crash_output.txt (351 KB) crash_output.txt partial output from rake chrismcg (Chris McGrath), 02/08/2013 12:44 AM
ruby_2013-02-07-145034_luath.crash (25.2 KB) ruby_2013-02-07-145034_luath.crash osx crash report chrismcg (Chris McGrath), 02/08/2013 12:44 AM

Updated by ko1 (Koichi Sasada) over 11 years ago

  • Category set to ext
  • Status changed from Open to Third Party's Issue

Simply, do not use continuation.

It is difficult to make an extension library with continuation.

Actions

Also available in: Atom PDF

Like0
Like0