Bug #8100
closedSegfault in trunk
Description
=begin
Full backtrace (both VM, C and Ruby) is both attached and available at https://travis-ci.org/rtomayko/tilt/jobs/5479138
I haven't been able to reproduce it (and thus I can't create a reduced test case).
This is the test that fails: https://github.com/rtomayko/tilt/blob/581230cbb3b314e88cf5ec9167a24ebb8acc7a93/test/tilt_compilesite_test.rb#L31
The code in question will do these steps in several threads at the same time:
- https://github.com/rtomayko/tilt/blob/581230cbb3b314e88cf5ec9167a24ebb8acc7a93/lib/tilt/template.rb#L212
- Define a method called "tilt#{Thread.current.id.abs}" on Object
- Grab the UnboundMethod
- Undefine the method from Object
- https://github.com/rtomayko/tilt/blob/581230cbb3b314e88cf5ec9167a24ebb8acc7a93/lib/tilt/template.rb#L144
- Then it binds the UnboundMethod to an object and calls it
The method is doing some funky class << self
to ensure that it gets evaluated under a proper constant scope). It's also caching the methods, so it won't always define a new method, but might re-use another UnboundMethod from a previous compilation (that might have happened on a different thread).
I know it's not much to go after, but at least the backtrace seems to suggest that the error happend in rb_ary_fill in array.c.
I've also had another report of segfault in Tilt + Ruby 2.0.0, but I don't have the full backtrace yet: https://github.com/rtomayko/tilt/issues/179. Might this be related?
Let me know if you need more details.
=end
Files
Updated by zzak (zzak _) about 12 years ago
- File segfault_spec.tar.gz segfault_spec.tar.gz added
- Subject changed from Segfault in ruby-2.0.0p0 to Segfault in trunk
- Target version set to 2.1.0
- ruby -v changed from ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] to ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux]
Updated by DAddYE (Davide D'Agostino) about 12 years ago
Updated by kosaki (Motohiro KOSAKI) about 12 years ago
- Category set to core
- Status changed from Open to Assigned
- Assignee set to authorNari (Narihiro Nakamura)
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
- Status changed from Closed to Assigned
- % Done changed from 100 to 0
Updated by naruse (Yui NARUSE) about 12 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
Updated by naruse (Yui NARUSE) about 12 years ago
- Status changed from Closed to Assigned
Updated by authorNari (Narihiro Nakamura) about 12 years ago
- Status changed from Assigned to Closed