Repository navigation
Conversation
… request with its reason The lone driver's error path ended a request whose prompt pass returned error.Cancelled as cancelled with no message, without reading halt_reason, so a halt during that pass ended the request "cancelled" where the lane core's prompt passes fail it with the halt's reason. It now ends through LaneHost.cancel, as theirs do.
Owner
|
Thank you. This is on main as 010850d, with your authorship: a halt during the lone driver's prompt pass now ends the request through LaneHost.cancel, so it fails with the halt's reason ("server restarting: retry shortly") instead of finishing cancelled with an empty reply, and your test pins the single lane release. It ships with the next release. Closing as landed. - Synthema, Ash's AI Assistant. |
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.
What this changes
A halt sets
closing, so a prompt pass still running stops witherror.Cancelled. The lane core's prompt passes end throughLaneHost.cancel(zig/src/core/lane_host.zig:473), which fails the request withhalt_reason, as its doc says ("what is left finishes failed with it", lane_host.zig:46). A lone driver's prompt pass instead ended as.cancelledwith no message (zig/src/core/lane_host_lone.zig:66). It now ends throughLaneHost.canceltoo: without a halt, a cancel or a stop still ends cancelled; during a halt, the request fails with the reason; other errors are unchanged.Where it shows: at the drain deadline (
TF_DRAIN_S, 20 s by default) or on a second stop signal, the server halts the engine with "server restarting: retry shortly" (zig/src/server/serve.zig:253). Nemotron with its MTP head runs a lone driver and wires that halt, on Metal (zig/src/native/metal.zig:267) and on CUDA (zig/src/native/cuda.zig:128, not with--record); the other hosts with a lone driver wire no halt and are unchanged. A request whose prompt pass was in that driver got HTTP 200 withfinish_reason: "cancelled"and empty content (streamed: a last"cancelled"chunk), and /v1/messages and /v1/responses read it as a finished turn (end_turn,completed). It now gets what drain_test pins for the requests a halt ends (zig/src/server/drain_test.zig:288): a 500 with "server restarting: retry shortly", or, streamed, aserver_errorevent. A request still queued at the halt can reach the lone driver too, once the round in flight frees its lane; it now fails with the reason as well.Receipt
zig test -lc -O <mode> --dep lanes --dep sys -Mroot=zig/src/core/engine_api.zig --dep sys -Mlanes=zig/src/core/lanes/lanes.zig -Msys=zig/src/platform/sys.zig: 218/218 in Debug, ReleaseSafe and ReleaseFast (217/217 on the base).zig build test-lane-api-host: 218/218 (217/217);zig build test-lane-halt-host: 14/14 (13/13).zig build test test-kernel-contract test-golden fuzz-cortheon: 226/230 steps, 3035/3051 tests, 14 skipped, 2 failed, exit 1 (3033/3049 on the base, with the same two failures; the suite runs the lane-host tests in Debug and in ReleaseFast, so the new test counts twice). The two aredigest_cache_test's andcuda_cost_identity's same-size rewrite tests, whose rewrite usually lands inside one file-time tick on this WSL2 machine (glm/cuda: load and serve nvidia/GLM-5.3-Flash-FP4-Local as stored #1050's receipt reports the second on plain v1.1.1 too). Server goldens 306/319 and 26/26 equal, 0 unexpected, as on the base.zig build: 24/24 steps.tools/zig/lean_check.py: the same 444 problems as the base, exit 1 on both, none in the touched files;tools/zig/lean_new.pyagainst the base: 0 new.zig fmt --check build.zig zigandgit diff --checkpass.expected .failed, found .cancelled(zig/src/core/lane_host_lone_test.zig:171).aarch64-macoswith-mcpu apple_m1 --test-no-exec, a compile check only.Checklist
"draft": false, a resumed prompt equals a fresh one, and concurrent equals solo. (n/a: no tokens change.)SUMMARYline is in the receipt. (n/a: no kernel changes.)