From: Eric Wong Date: 2011-04-06T07:36:56+09:00 Subject: [ruby-core:35619] [Ruby 1.9 - Bug #4289] Timeouts in threads cause SEGV Issue #4289 has been updated by Eric Wong. File 0001-timeout.rb-avoid-introducing-new-class-for-every-tim.patch added Hiding, but not fixing the issue is the attached patch: [PATCH] timeout.rb: avoid introducing new class for every timeout This is expensive because of clearing the method cache upon GC. As a side effect, it also seems to pass the deadlock_test.rb[1] for Bug #4266[2] and also the JRuby load_timeout.rb[3] test. However, DO NOT consider this a fix for Bug #4266 or other timeout-related issues. I believe this patch merely hides the real bug and makes it hard to trigger from Ruby standard library. [1] http://redmine.ruby-lang.org/attachments/download/1404/deadlock_test.rb [2] http://redmine.ruby-lang.org/issues/4266 [3] https://github.com/jruby/jruby/raw/master/test/load/load_timeout.rb ---------------------------------------- Bug #4289: Timeouts in threads cause SEGV http://redmine.ruby-lang.org/issues/4289 Author: Motohiro KOSAKI Status: Assigned Priority: Normal Assignee: Akira Tanaka Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3dev (2011-01-18 trunk 30591) [x86_64-linux] Derived from [Bug#4266] Running deadlock_test.rb in [Bug#4266] on trunk makes segfault. git bisect indicate first bad commit is below. --------------------------------------------------------------------------- commit d295957957c828588a8ca3c7b8619c7a93be6b5c Author: akr Date: Tue Nov 2 22:37:08 2010 +0000 * vm_method.c (rb_clear_cache_by_class): just return if the class has no method. reported by Eric Wong. [ruby-core:32689] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e -------------------------------------------------------------------------------- Plus, I've confirmed latest trunk + revert d2959579 doesn't makes segfault. -- http://redmine.ruby-lang.org