From: "ko1 (Koichi Sasada)" Date: 2012-11-17T01:04:26+09:00 Subject: [ruby-core:49435] [ruby-trunk - Bug #4266] Timeouts in threads cause "ThreadError: deadlock; recursive locking" Issue #4266 has been updated by ko1 (Koichi Sasada). Assignee changed from ko1 (Koichi Sasada) to kosaki (Motohiro KOSAKI) I passed this ticket to thread specialist. ---------------------------------------- Bug #4266: Timeouts in threads cause "ThreadError: deadlock; recursive locking" https://bugs.ruby-lang.org/issues/4266#change-32972 Author: cjbottaro (Christopher Bottaro) Status: Assigned Priority: High Assignee: kosaki (Motohiro KOSAKI) Category: core Target version: 2.0.0 ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0] =begin Run the attached file (or this pastie http://pastie.org/1448542) a few times and you'll eventually get: ThreadError: deadlock; recursive locking: :8:in `lock' :8:in `synchronize' bin/deadlock_test.rb:86:in `block (4 levels) in
' /Users/cjbottaro/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/timeout.rb:57:in `timeout' bin/deadlock_test.rb:85:in `block (3 levels) in
' bin/deadlock_test.rb:83:in `times' bin/deadlock_test.rb:83:in `block (2 levels) in
' I've had the script run successfully over 5 times in a row before getting the errors, so if it doesn't happen the first few times... keep trying. The problem doesn't happen in 1.8.7 or Jruby, but does happen in 1.9.1. =end -- http://bugs.ruby-lang.org/