Repository navigation
Conversation
This reverts commit 7c587c1.
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.
Cell fetches could retry full peers indefinitely, while a zero-sized or evicted route cache discarded the placement sample needed to exclude a refused peer. Carry that sample through dispatch, preserve a monotonic rejection watermark, and bound retries by the original deadline and cancellation. Preserve
Overloaded/unknownthrough the guest bridge; ambiguous transport outcomes stop without replay.Retaining shutdown checked the node-log seal before syncing resident cells into the per-cell layout. Sync before the seal check so the last node can restart without its stopped witnesses, retaining deadline, authority and coverage guards. A two-node regression covers bundle pacing and reload.
Remove an SDK-owned Python reference cycle:
Contexteagerly heldStorage, which held the context. Even stateless requests retained contexts and native bridges until cyclic collection. Create storage handles on access; handles still retain their originating context and enforce scope and expiration. Release successful eager invocations before further admission. Tests disable cyclic GC so collection cannot hide retention on completion or capacity rejection.Completed Raft requests release payloads and capacity before publishing replies. Deferred peer steps retain both ordinary and inbound permits until execution drains. The single-slot startup fixture retries only read-only
Overloadedstatus observations within three seconds because background inspection shares that slot. The cancellation fixture now polls cancellation before releasing held SQL. Original startup, cancellation, outcome and durability assertions remain strict.Add the Python S3 counter qualification fixture with the same native host, load generator and recovery scenarios. Linux qualification checks pinned runtime images, loader provisioning, binary hashes and raw shutdown evidence. The load harness records disjoint host/client CPU affinity and supports a pinned reference revision on the same runner, preserving every arrival and refusal. The Node package fixture owns an independent execution domain instead of colliding with the bootstrap singleton. Register the PydanticAI example in the catalog and cover lost acknowledgments in model/tool checkpoints.
Completed Python invocations now mark managed cleanup as finished, avoiding a redundant native completion wakeup while preserving cancellation wakeups for unfinished or directly expired tasks. Deterministic scheduler time isolates receipt-accounting tests from CI scheduling delays; a separate test verifies genuinely late arrivals are rejected before transport. Native recovery fixtures capture the last settlement state, exact acknowledgment response and binding-adoption failure context without changing deadlines, retries or assertions.
The Python native sender now captures the original event-loop and invocation accessors before application imports, while checking their current values on every operation. Rebinding a module attribute can no longer substitute caller identity. GC traversal covers the captured references; the regression fails against the previous implementation.
Validation:
e5057bfon the same runner. The candidate still completes only 71–73% of native throughput with p99 approximately 11 times native; all capacity drops remain in the report. Absolute comparisons between ABI runners are invalid.9312ed4. Independent verification checks image/source/binary identities, acknowledged-write totals, and 16 joined shutdown reports plus 21 recovery records for each native/Python runtime on each ABI runner. Recovery reads encountered HTTP 500 responses and were retried; mutations were not replayed. This is functional recovery evidence with shared host resources, not uninterrupted availability or production capacity qualification.Qualification remains open:
31521e2failed in the now-corrected receipt-accounting fixture and cold follower binding adoption. The standard push job also failed initial settlement and two positive acknowledgment assertions. Twenty isolated Linux cold-recovery replays and ten local replays passed without reproducing those native failures. The new failure capture is diagnostic evidence support, not a claimed production fix. Full SDK runs ate5057bfwere still in progress when this update was published; they are not counted as passing. Publishing the new head restarts full qualification under workflow concurrency rules. Updated-head CI must finish before merge.