From: "mame (Yusuke Endoh)" Date: 2012-04-13T23:07:51+09:00 Subject: [ruby-core:44340] [ruby-trunk - Bug #6288][Feedback] Change error message for thread block to be less misleading Issue #6288 has been updated by mame (Yusuke Endoh). Status changed from Open to Feedback Is "possible deadlock detected" better? Please elaborate "a more complex scenario" with small example. -- Yusuke Endoh ---------------------------------------- Bug #6288: Change error message for thread block to be less misleading https://bugs.ruby-lang.org/issues/6288#change-25884 Author: rklemme (Robert Klemme) Status: Feedback Priority: Normal Assignee: Category: core Target version: ruby -v: ruby 1.9.3p125 (2012-02-16) [i386-cygwin] Test case: 11:50:07 ~$ ruby19 -r thread -e 'q=SizedQueue.new 10;1_000_000.times {|i| p i;q.enq i}' 0 1 2 3 4 5 6 7 8 9 10 /opt/lib/ruby/1.9.1/thread.rb:301:in `sleep': deadlock detected (fatal) from /opt/lib/ruby/1.9.1/thread.rb:301:in `block in push' from :10:in `synchronize' from /opt/lib/ruby/1.9.1/thread.rb:297:in `push' from -e:1:in `block in
' from -e:1:in `times' from -e:1:in `
' This is not a deadlock, but there is no other thread which could wake up main thread. Deadlock is misleading because in a more complex scenario where I had the error initially it wasn't obvious that the other thread had died and I looked for the wrong error in my code. -- http://bugs.ruby-lang.org/