This project is closed and read-only.
Actions
Backport #7123
closedSegmentation fault in ruby 1.9.3-p194
Backport #7123:
Segmentation fault in ruby 1.9.3-p194
Status:
Closed
Assignee:
Description
Example source for this issue is posted at https://github.com/mscottford/segfault-test, with reproduction instructions.
I'm encountering a segmentation fault in ruby 1.9.3-p194 on a project using Rails 3.2.8. The issue is only happening on Mac OS X. Members of my team that are running Linux do not have the same issue. The issue does not occur consistently; it sometimes takes several (20+) runs for the crash to happen.
test:
require 'spec_helper'
describe Widget do
it "removes widget on rejection" do
widget = Widget.create!
expect do
widget.reject!
end.to change { described_class.count }.by(-1)
GC.start
end
end
model:
class Widget < ActiveRecord::Base
attr_accessor :check_rejection_reason
state_machine :initial => :requested do
# I suspect that the issue is related to the issue being accessed in this closure after it has been deleted
around_transition :requested => :none do |gm, transition, blk|
gm.check_rejection_reason = true
blk.call
gm.check_rejection_reason = false
end
# This closure deletes the instance, but it is still being accessed by the `around_transition` above.
after_transition any => :none do |gm, transition|
gm.destroy
end
on :reject do
transition :requested => :none
end
end
end
Files
Actions