Skip to content

Exit 0 when queue is exhausted after lazy-load boot#386

Open
ianks wants to merge 1 commit intomainfrom
ianks/fix-lazy-load-0-test-exit-status
Open

Exit 0 when queue is exhausted after lazy-load boot#386
ianks wants to merge 1 commit intomainfrom
ianks/fix-lazy-load-0-test-exit-status

Conversation

@ianks
Copy link
Copy Markdown
Contributor

@ianks ianks commented Apr 2, 2026

In lazy-load mode, the queue.exhausted? check runs before the app boots (runner.rb:96). Slow workers can finish booting after the queue has been fully drained by faster workers -- at that point Minitest.run [] finds nothing to run and returns false, causing the worker to exit 1 and Buildkite to mark the job failed.

This was observed on the areas-core-storefront-liquid-vm-compile-json pipeline where 49 workers boot in parallel. Boot time ranges from 138s to 452s due to CPU contention; the queue drains in ~418s. Workers that boot past that point get 0 tests and spuriously fail.

Add a second exhausted? check immediately before Minitest.run []. If the queue is already drained at that point, print "All tests were ran already" and exit 0.

Bump version to 0.86.0.

In lazy-load mode, the queue.exhausted? check runs before the app
boots. Slow workers can finish booting after the queue has been fully
drained by faster workers -- at that point Minitest.run [] finds nothing
to run and returns false, causing the worker to exit 1.

Add a second exhausted? check immediately before Minitest.run []. If the
queue is already drained at that point, print the existing "All tests
were ran already" message and exit 0 instead of propagating a false
failure to Buildkite.

Bump version to 0.86.0.
@ianks ianks requested a review from danielahrnsbrak April 2, 2026 03:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant