Repository navigation
GH-5334 Lifting a pause on a URI that is not an agent no longer waits out the confirmation timeout - #5337
Merged
Conversation
… out the confirmation timeout ApplyRestrictionsAsync's GH-4871 confirmation waited for an assignment row for every released URI. A receiving endpoint paused by its own URI is a supported restriction that no agent family owns, so no row ever appears: the lift ran the full AgentRestrictionConfirmationTimeout and then threw AgentRestrictionsNotConfirmedException, after the restriction had already been removed. The confirmation now only waits for URIs the evaluation's assignment grid holds as agents, the same test AssignmentGrid.ApplyRestrictions uses to skip them. Agent URIs, including wolverine-listener:// exclusive listeners, are still confirmed as before. Closes #5334 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCggXgxnG3EBXoR9rrq37U
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.
Closes #5334
Problem
In Balanced mode, the GH-4871 confirmation in
ApplyRestrictionsAsyncwaited for an assignment row for every released URI. You can pause a receiving endpoint by its own URI (local://,rabbitmq://,tcp://, or an exclusive listener addressed by its endpoint URI), but no agent family owns that URI, so a row never appears. The lift ran the fullAgentRestrictionConfirmationTimeoutand then threwAgentRestrictionsNotConfirmedException, after the restriction row had already been deleted. A caller that restarts the listener only after the call returns never restarted it.Fix
assertReleasedAgentsAreRunningAsyncnow waits only for released URIs that the evaluation's assignment grid (NodeController.LastAssignments) holds as agents. That is the same testAssignmentGrid.ApplyRestrictionsalready uses to skip paused URIs that aren't agents. Agent URIs, includingwolverine-listener://exclusive listeners, are still confirmed as before. The fix adds a small internalAssignmentGrid.HasAgent(Uri).Tests
lifting_a_pause_on_a_uri_that_is_not_an_agent_returns_without_waitinginPersistenceTests.Agents.restriction_changes_report_unconfirmed_agents_4871(Postgres, Balanced): pauses and liftslocal://queue-a/, then asserts the lift returns inside the confirmation timeout and the restriction is gone from memory and from the store. With the filter removed, it fails withAgentRestrictionsNotConfirmedException ... local://queue-a/.PersistenceTests.Agentsnamespace: 14/14 pass, including the existing ApplyRestrictionsAsync reports success when the StartAgents it triggered was never confirmed; an operator restart that started nothing looks identical to one that worked #4871 negative test, which still throws for a real agent that never starts.FullyQualifiedName~Agents: 585 passed, 6 skipped, 0 failed.dotnet build wolverine.slnx -c Release -f net9.0: clean.🤖 Generated with Claude Code
https://claude.ai/code/session_01DCggXgxnG3EBXoR9rrq37U