Issue #8100 has been reported by judofyr (Magnus Holm). ---------------------------------------- Bug #8100: Segfault in ruby-2.0.0p0 https://bugs.ruby-lang.org/issues/8100 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-15 12:58
on 2013-03-18 02:52
Issue #8100 has been updated by zzak (Zachary Scott). File segfault_spec.tar.gz added Subject changed from Segfault in ruby-2.0.0p0 to Segfault in trunk Target version set to current: 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] I've updated the description of this ticket, because I'm able to reproduce a similar bug. Only similar in that we're using a lot of the same dependencies. I also went ahead and created (as small as possible) reproducible script. Here's the instructions for reproducing the segfault: 1) git clone git://github.com/zzak/segfault_spec.rb.git 2) bundle install 3) bundle exec rspec segfault_spec.rb 4) repeat #3 until segfault. this may take a few tries I will also attach an archive of the script. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37684 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-18 08:14
Issue #8100 has been updated by DAddYE (Davide D'Agostino). File seg.txt added I got a similar one too, see here: https://github.com/padrino/padrino-framework/issues/1131 ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37688 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-18 17:12
Issue #8100 has been updated by zzak (Zachary Scott). Forgot to add a link to the repo on github: https://github.com/zzak/segfault_spec.rb ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37701 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-19 07:05
Issue #8100 has been updated by wardrop (Tom Wardrop). I'm also getting segfaults on Ruby 2.0.0. It seems to be related to threading or forking. Can't quite put my figure on it. All I can say is that I don't get in when running my web app in WEBrick on my Mac, but if running it on my CentOS server with Phusion Passenger using the smart spawn method, I get it all the time, about every 10th request it segfaults. Setting passenger to a conservative spawn method (one request per process) reduces the segfault rate considerably, but they still occur. Here's a stack overflow thread about it, with a response I left on there with a bit more information about my experiences: http://stackoverflow.com/questions/15315809/segfau... I also reported this to the Phusion Passenger Google Group before realising it's a problem with ruby 2.0.0: https://groups.google.com/forum/?fromgroups=#!topi... Here's a log including numerous segfaults from my CentOS server running Phusion Passenger: https://gist.github.com/Wardrop/5179380 ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37721 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-22 10:38
Issue #8100 has been updated by judofyr (Magnus Holm). File fail.rb added I've managed to reduce the script down to 30 lines (with no dependencies) that segfaults in both 2.0.0-p0 and trunk (39875). It doesn't segfault every time though so if it takes more than a few seconds to run it, simply Ctrl-C and try again. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37813 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-22 11:01
Issue #8100 has been updated by judofyr (Magnus Holm). Here's a backtrace I got in gdb: http://pastie.org/7064676. rb_gc_mark_unlinked_live_method_entries seems suspicious and related to what the script does. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37814 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-22 11:16
Issue #8100 has been updated by wardrop (Tom Wardrop). They've obviously done work on the garbage collector for Ruby 2.0. This is likely a bug introduced as result of that. Good work tracking it down judofyr. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37815 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-22 11:55
Issue #8100 has been updated by judofyr (Magnus Holm). After working with charliesome we've now found an even simpler test case: http://eval.in/13339 This *always* segfaults for me on trunk. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37816 Author: judofyr (Magnus Holm) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-22 12:22
Issue #8100 has been updated by charliesome (Charlie Somerville).
=begin
Magnus and I reduced this down to an even simpler^2 test case:
loop do
def x
"hello" * 1000
end
method(:x).call
end
=end
----------------------------------------
Bug #8100: Segfault in trunk
https://bugs.ruby-lang.org/issues/8100#change-37819
Author: judofyr (Magnus Holm)
Status: Open
Priority: Normal
Assignee:
Category:
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux]
=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/581230cbb3b3...
The code in question will do these steps in several threads at the same
time:
*
https://github.com/rtomayko/tilt/blob/581230cbb3b3...
* 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/581230cbb3b3...
* 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
on 2013-03-22 14:04
Issue #8100 has been updated by kosaki (Motohiro KOSAKI). Category set to core Status changed from Open to Assigned Assignee set to authorNari (Narihiro Nakamura) ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37823 Author: judofyr (Magnus Holm) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-23 11:03
Issue #8100 has been updated by nobu (Nobuyoshi Nakada). Status changed from Closed to Assigned % Done changed from 100 to 0 ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37847 Author: judofyr (Magnus Holm) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-23 11:17
Issue #8100 has been updated by charliesome (Charlie Somerville). nobu-san, this will loop forever when the bug is fixed. Perhaps change it to 100_000.times? ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37848 Author: judofyr (Magnus Holm) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-23 12:58
Issue #8100 has been updated by wardrop (Tom Wardrop).
I'd set it to a duration rather than a set number of iterations. I've
see it go for 2 seconds on my machine before segfault'ing. 3 seconds
should fail almost every time.
start_time = Time.now
while (Time.now - start_time) < 3
def x
"hello" * 1000
end
method(:x).call
end
----------------------------------------
Bug #8100: Segfault in trunk
https://bugs.ruby-lang.org/issues/8100#change-37851
Author: judofyr (Magnus Holm)
Status: Assigned
Priority: Normal
Assignee: authorNari (Narihiro Nakamura)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux]
=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/581230cbb3b3...
The code in question will do these steps in several threads at the same
time:
*
https://github.com/rtomayko/tilt/blob/581230cbb3b3...
* 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/581230cbb3b3...
* 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
on 2013-03-23 13:58
Issue #8100 has been updated by nobu (Nobuyoshi Nakada). charliesome (Charlie Somerville) wrote: > nobu-san, this will loop forever when the bug is fixed. Perhaps change it to 100_000.times? Sure, I've forgot it before the commit. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37854 Author: judofyr (Magnus Holm) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-23 20:53
Issue #8100 has been updated by naruse (Yui NARUSE). Status changed from Closed to Assigned ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37865 Author: judofyr (Magnus Holm) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-24 21:25
Issue #8100 has been updated by zzak (Zachary Scott). Thank you nari-san and everyone who helped with this. Should this be backported as well? ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37905 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-25 03:55
Issue #8100 has been updated by authorNari (Narihiro Nakamura). zzak (Zachary Scott) wrote: > Thank you nari-san and everyone who helped with this. > > Should this be backported as well? Yeah, this fix should be backport to 1.9.3 and 2.0.0. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37910 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-25 10:45
Issue #8100 has been updated by wardrop (Tom Wardrop). Eagerly awaiting the backport. Can someone please leave a comment when it's back-ported to ruby-2.0.0 head? ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37915 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-25 12:08
Issue #8100 has been updated by authorNari (Narihiro Nakamura). wardrop (Tom Wardrop) wrote: > Eagerly awaiting the backport. Can someone please leave a comment when it's back-ported to ruby-2.0.0 head? The backport request ticket is here. https://bugs.ruby-lang.org/issues/8163 You might want to watch this ticket for your purpose. ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37918 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-03-25 14:20
Issue #8100 has been updated by wardrop (Tom Wardrop). Thanks for that. By the way, I've applied the patch to my production server. Write me down as another happy customer :-) ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-37920 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
on 2013-05-13 12:27
Issue #8100 has been updated by morgoth (Wojciech Wnętrzak). Might be related to https://bugs.ruby-lang.org/issues/8056 ---------------------------------------- Bug #8100: Segfault in trunk https://bugs.ruby-lang.org/issues/8100#change-39305 Author: judofyr (Magnus Holm) Status: Closed Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-03-18 trunk 39805) [x86_64-linux] Backport: =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/581230cbb3b3... The code in question will do these steps in several threads at the same time: * https://github.com/rtomayko/tilt/blob/581230cbb3b3... * 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/581230cbb3b3... * 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
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.