Forum: Ruby-core Timeouts in threads cause "ThreadError: deadlock; recursive locking"

Posted by kosaki (Motohiro KOSAKI) (Guest)
on 2012-11-17 02:37
(Received via mailing list)
Issue #4266 has been updated by kosaki (Motohiro KOSAKI).


Brian,

Can you please provide us a reproducer for you monitor.rb issue? And can 
you please make a new ticket for your issue to prevent cross line 
discussion? I plan to close this ticket soon and I also hope to don't 
forget your issue.

Thanks.
----------------------------------------
Bug #4266: Timeouts in threads cause "ThreadError: deadlock; recursive 
locking"
https://bugs.ruby-lang.org/issues/4266#change-33004

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:
 <internal:prelude>:8:in `lock'
 <internal:prelude>:8:in `synchronize'
 bin/deadlock_test.rb:86:in `block (4 levels) in <main>'
 /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 <main>'
 bin/deadlock_test.rb:83:in `times'
 bin/deadlock_test.rb:83:in `block (2 levels) in <main>'

 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
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
No account? Register here.