ruby-changes:63360
From: Yusuke <ko1@a...>
Date: Fri, 16 Oct 2020 16:53:22 +0900 (JST)
Subject: [ruby-changes:63360] de5e8d0e3b (master): test/rinda/test_rinda.rb: try debugging TestRingServer#test_do_reply
https://git.ruby-lang.org/ruby.git/commit/?id=de5e8d0e3b From de5e8d0e3bc3cc39487ffc9d9c15642b6881cd54 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh <mame@r...> 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' ``` diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb index 14fc7ef..1991ab6 100644 --- a/test/rinda/test_rinda.rb +++ b/test/rinda/test_rinda.rb @@ -620,6 +620,7 @@ end https://github.com/ruby/ruby/blob/trunk/test/rinda/test_rinda.rb#L620 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 https://github.com/ruby/ruby/blob/trunk/test/rinda/test_rinda.rb#L628 @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 https://github.com/ruby/ruby/blob/trunk/test/rinda/test_rinda.rb#L802 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 v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/