Retry failed scheduler priority notifications - #122
Open
sylvesterkaczmarek wants to merge 1 commit into
Open
sylvesterkaczmarek wants to merge 1 commit into
sylvesterkaczmarek wants to merge 1 commit into
Conversation
Fixes NVIDIA#121. Add regression coverage and preserve existing successful behavior. Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.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.
Description
Closes #121.
Record a priority snapshot as emitted only after its JSON-RPC notification write succeeds. Previously a failed write updated the delivery cache first, so ordinary reconciliation suppressed retries and scheduler status incorrectly showed the failed update as delivered.
The change keeps notification I/O outside the state mutex and retains the existing recompute serialization. Each engine remains independent: a successful delivery is not repeated because another engine failed. Ranking policy, wire fields, retry cadence and receiver behavior are unchanged.
Release intent
Changelog title
Retry failed scheduler priority notifications
Changelog body
The scheduler retries changed priorities after a failed local notification write and keeps its status aligned with the last successful delivery.
Bumps
Scope
Only the scheduler delivery bookkeeping, its regression tests and its README are changed. The scheduler binary and services aggregate receive patch intent. No version files are edited by hand.
The broker, shared wire types, proxies, desktop and terminal interface need no contract changes. Existing cross-process scheduler tests verify the emitted frames and ranking behavior. The open engine-addition PRs modify the engine list in the same source file, not this delivery path.
Validation
go vet, the scheduler build,gofmt, repository SPDX-header checks andgit diff --checkpass. The release-intent description validates locally.Tested with Go 1.27.1. The desktop gates, whole cross-process suite, live engines and multi-node integration were not run. No test or runtime guard was disabled. These tests cover failures before any frame bytes are delivered; they do not claim recovery from partial-frame corruption.
Risk
Low, localized state-ordering correction. No new dependency, network listener, persistent data, protocol field or service boundary. The previous snapshot remains authoritative when a new write fails. The issue was reported on 25 September 2026 and rechecked for assignments and competing fixes before submission.
Checklist