From b1bce9d985a839227ef8c61ff2b4f31b19a1fd2b Mon Sep 17 00:00:00 2001 From: Thad Craft Date: Tue, 21 Apr 2026 12:34:35 -0400 Subject: [PATCH] Fix UnresolvedEntry error --- ruby/Gemfile.lock | 2 +- ruby/lib/ci/queue/version.rb | 2 +- ruby/lib/minitest/queue/runner.rb | 2 ++ ruby/test/ci/queue/redis_test.rb | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index 1f8e7f04..6b909ee5 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - ci-queue (0.92.0) + ci-queue (0.93.0) logger GEM diff --git a/ruby/lib/ci/queue/version.rb b/ruby/lib/ci/queue/version.rb index cfc20ce3..d4abea01 100644 --- a/ruby/lib/ci/queue/version.rb +++ b/ruby/lib/ci/queue/version.rb @@ -2,7 +2,7 @@ module CI module Queue - VERSION = '0.92.0' + VERSION = '0.93.0' DEV_SCRIPTS_ROOT = ::File.expand_path('../../../../../redis', __FILE__) RELEASE_SCRIPTS_ROOT = ::File.expand_path('../redis', __FILE__) end diff --git a/ruby/lib/minitest/queue/runner.rb b/ruby/lib/minitest/queue/runner.rb index 2a405ff1..92b0c7a9 100644 --- a/ruby/lib/minitest/queue/runner.rb +++ b/ruby/lib/minitest/queue/runner.rb @@ -115,6 +115,8 @@ def run_command puts "#{remaining} tests left and #{running} workers running." if remaining <= running puts green("Queue almost empty, exiting early...") + verify_reporters!(reporters) + exit!(0) else prepare_queue_for_execution end diff --git a/ruby/test/ci/queue/redis_test.rb b/ruby/test/ci/queue/redis_test.rb index f3139582..21312006 100644 --- a/ruby/test/ci/queue/redis_test.rb +++ b/ruby/test/ci/queue/redis_test.rb @@ -687,6 +687,10 @@ def test_worker_does_not_pick_up_its_own_requeued_test_when_others_are_available w1 = worker(1, tests: test_list, build_id: 'self-requeue', timeout: 10, max_requeues: 1, requeue_tolerance: 1.0) w2 = worker(2, populate: false, build_id: 'self-requeue', timeout: 10, max_requeues: 1, requeue_tolerance: 1.0) w3 = worker(3, populate: false, build_id: 'self-requeue', timeout: 10, max_requeues: 1, requeue_tolerance: 1.0) + # Identity resolver so poll yields the raw queue entry (poll now skips + # UnresolvedEntry values, and these workers don't share w1's @index). + w2.entry_resolver = ->(entry) { entry } + w3.entry_resolver = ->(entry) { entry } w2.send(:register) w3.send(:register)