From de5e8d0e3bc3cc39487ffc9d9c15642b6881cd54 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Fri, 16 Oct 2020 16:51:33 +0900 Subject: test/rinda/test_rinda.rb: try debugging TestRingServer#test_do_reply https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20201016T063003Z.fail.html.gz ``` 1) Error: Rinda::TestRingServer#test_do_reply: Timeout::Error: timeout /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:837:in `sleep' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:837:in `wait_for' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:659:in `_test_do_reply' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:643:in `block in test_do_reply' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:807:in `with_timeout' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:643:in `test_do_reply' ``` --- test/rinda/test_rinda.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb index 14fc7ef2cc..1991ab6abf 100644 --- a/test/rinda/test_rinda.rb +++ b/test/rinda/test_rinda.rb @@ -620,6 +620,7 @@ end class TestRingServer < Test::Unit::TestCase def setup + @aoe_back = Thread.abort_on_exception @port = Rinda::Ring_PORT @ts = Rinda::TupleSpace.new @@ -627,6 +628,7 @@ class TestRingServer < Test::Unit::TestCase @server = DRb.start_service("druby://localhost:0") end def teardown + Thread.abort_on_exception = @aoe_back @rs.shutdown # implementation-dependent @ts.instance_eval{ @@ -800,7 +802,12 @@ class TestRingServer < Test::Unit::TestCase tl = nil th = Thread.new(Thread.current) do |mth| sleep n - (tl = Thread.list - tl0).each {|t|t.raise(Timeout::Error)} + puts "...timeout! Show the backtraces of all living threads" + (tl = Thread.list - tl0).each_with_index do |t, i| + puts "Thread #{ i }: #{ t.inspect }", *t.backtrace, "" + t.raise(Timeout::Error) + end + puts "and then raise Timeout::Error to the main thread" mth.raise(Timeout::Error) end tl0 << th -- cgit v1.2.3