diff --git a/ruby/lib/ci/queue/redis/base.rb b/ruby/lib/ci/queue/redis/base.rb index 7124cc7e..5f9be7b7 100644 --- a/ruby/lib/ci/queue/redis/base.rb +++ b/ruby/lib/ci/queue/redis/base.rb @@ -133,11 +133,15 @@ def running redis.zcard(key('running')) end - def to_a + def test_ids redis.multi do |transaction| transaction.lrange(key('queue'), 0, -1) transaction.zrange(key('running'), 0, -1) - end.flatten.reverse.map { |k| index.fetch(k) } + end.flatten + end + + def to_a + test_ids.reverse.map { |k| index.fetch(k) } end def progress diff --git a/ruby/lib/ci/queue/redis/supervisor.rb b/ruby/lib/ci/queue/redis/supervisor.rb index a473e60c..96e796ce 100644 --- a/ruby/lib/ci/queue/redis/supervisor.rb +++ b/ruby/lib/ci/queue/redis/supervisor.rb @@ -39,7 +39,19 @@ def wait_for_workers yield if block_given? end - puts "Aborting, timed out." if time_left <= 0 && !exhausted? + if time_left <= 0 && !exhausted? + puts "Aborting, timed out." + + remaining_tests = test_ids + remaining_tests.first(10).each do |id| + puts " #{id}" + end + + if remaining_tests.size > 10 + puts " ..." + end + end + puts "Aborting, it seems all workers died." if time_left_with_no_workers <= 0 && !exhausted? exhausted?