Repository navigation
Bind each test run to the job that started it - #65
Merged
Merged
Conversation
A test job could report succeeded with another run's results, even a different mode's: Unity's test callbacks carry no run identity, so the service credited a run to whichever job was current when it bound. Upstream 9f8152c closed the in-domain path; three remained: - A request waiting behind an earlier run read the current job only once the lock freed, so a cleared job's request ran its own filter as the newer job (or as nobody, holding the busy flag). - After a domain reload, the current job was assumed to own the resumed run, even when its own request had died while queued. - A reload forgot a run whose job was already cleared, so the next run overlapped it and both reported into the new job. Record the requesting job before waiting and refuse to start if it was cleared meanwhile. Record the run's owner in SessionState until the run reports back and restore tracking from it after a reload; a current job whose request died with the old domain now fails at once, and the Play Mode settings stay with a resumed run. clear_stuck drops the recorded owner so the next reload still releases a run Unity lost. Issue #30. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A test job could report
succeededwith another run's results: wrong tests, sometimes even the wrong mode. Unity's test callbacks carry no run identity, so the service credited a run to whichever job was current when it bound. Upstream 9f8152c closed the in-domain path. This closes the three that remained:The service now records the requesting job before waiting, and refuses to start the run if that job was cleared meanwhile. It also keeps the run's owner in SessionState until the run reports back, and restores tracking from it after a reload. A job whose request died in a reload now fails immediately. The Play Mode settings stay with a resumed run.
clear_stuckdrops the recorded owner, so a reload still frees a run Unity lost. The tools reference now says that abandoning a recovered run takesclear_stuckfollowed by a reload.Testing
TestJobManagerLifecycleTests, plus one new assertion in an existing test.tools/check-unity-versions.shcompiles clean on 6000.5.5f1.Commits:
Issue: #30
🤖 Generated with Claude Code