misc: enable e2e test when push - #828
Merged
Merged
Conversation
timethink
pushed a commit
to timethink/sglang
that referenced
this pull request
Mar 9, 2025
JinyanYi
pushed a commit
to JinyanYi/sglang
that referenced
this pull request
Jun 23, 2026
Add openai api dp testcases
efschu
pushed a commit
to efschu/htsglang
that referenced
this pull request
Aug 23, 2026
Wave 3, stage 4 of the batched-window tree. WINDOW-QUEUE ticket W6 (strand 21a, preflight_pass=Y: 19 passed red-first with 6F/6P before the fix, 8/8 mutants killed, id-regression 75 files byte-identical with 0 new). Two commits, base 3b2bbde -- which is already ON this line (the sgl-project#770/sgl-project#812 floor-clamp withdrawal), so this stage adds no divergence of its own: b546893 [sgl-project#828] The backing dial converges the BACKING, and a post is credited by what it delivered 4235879 [sgl-project#828] Desk pre-flight for the batched window: the released band clears the gate boot_827 refused at THE DEFECT. `runtime_set_backing_tokens` branched grow-vs-shrink on `self.size` -- the EXPOSED id space -- instead of on the committed backing, so a rung that should have released reported `branch=grow` and released 0. A dial that converges the wrong quantity is not a mis-tuned dial; it is a dial attached to the wrong shaft, and the census downstream then credits a post for delivering nothing. This is the same family the catalog records in section 2 under the funding authority: a post is credited BY WHAT IT DELIVERED, not by what it was asked for. sgl-project#770 named the posts; this makes the credit honest. GATE. Battery test/registered/unit/{managers,planner,server_args,mem_cache}, hermetic under CUDA_VISIBLE_DEVICES="", one battery at a time. baseline (tip 4f2072a) 7 failed, 8585 passed, 1852 skipped, 887 s stage 1 (W1+W2) 7 failed, 8638 passed, 1852 skipped, 868 s stage 2 (W3) 7 failed, 8653 passed, 1852 skipped, 922 s stage 3 (W4a/W5/W4b) 7 failed, 8673 passed, 1852 skipped, 915 s stage 3b (sgl-project#791 stub) 0 failed, 8684 passed, 1852 skipped, 900 s this stage 0 failed, 8703 passed, 1852 skipped, 931 s NEW failure ids NONE THIS IS THE FIRST STAGE GATED AGAINST A ZERO BASELINE. Since stage 3b the line's extracted failure list is EMPTY, so "no new failure ids" here is not a comparison against a tolerated set -- it is the whole result. CITATION MAINTENANCE, carried in this commit because this stage is what forced it. W6 adds 37 lines to funding_authority.py and 71 to memory_pool.py, both of which the catalog cites by file:line, and the section-18 checker did NOT notice: it verifies that a cited line EXISTS, not that the cited SYMBOL is on it, so it stayed at 104 passed while solve_arming_floor moved :659 -> :694, diagnose_floor_band :585 -> :620 and slack_above_uniform_floor :813 -> :848, each then pointing at a comment, an `if` and a dataclass field. A sweep of every citation this train touches found the same drift elsewhere and all of it is corrected here, verified line by line against the files: scheduler.py nine citations (stage 3 added 113 lines) :4684->:4795, :4792->:4903, :4814->:4925, :4938->:5049, :4947->:5058, :4995->:5106, :5011->:5122, :7085->:7196, :7462->:7573; phase_flip_runtime.py five, :3838/:3839->:4040/:4041, :3881->:4083, :6275->:6487, :7128->:7353; memory_pool.py :4978 -> :4983 with the bound assert at :5032. Untouched and re-verified as still correct: kv_row_ownership.py, prefetch_ballot.py, uniform_floor_scope.py, tree_congruence.py, invariant_checker.py:1175, mamba_ckpt_utils.py:185, kv_backing_relief.py:162/:547, phase_policy.py:831. One drift found in the sweep is NOT this train's doing and is labelled as such: planner/placement.py:813 -> :838, in a file no stage here touches. It drifted earlier and nothing caught it, which is the point. The gap is now recorded in section 18.8 with the measurement that proves it, and the interim practice it implies is applied rather than merely described: where a file takes inserts from several tickets, the STATEMENT is cited alongside the line (done for sgl-project#821's three cur_batch_for_debug sites). Symbol-resolving the checker is registered as its own task. A note on the checker being live rather than assumed, because it caught ME while I was documenting its blind spot: writing the phrase `watchdog.py:88` into the section-18.8 prose turned the gap note itself into a section-18 citation, and the checker went 104 passed / 1 FAILED on the spot. It scans section 18 for anything of the shape `file.py:N`, prose included. The wording now names the class instead of quoting a path, and the checker is back to 104 passed / 0 failed -- re-run after the edit, not assumed. So the checker is genuinely armed for the class it covers; the gap in 18.8 is about the class it does not. codespell clean. No boot.
efschu
pushed a commit
to efschu/htsglang
that referenced
this pull request
Aug 24, 2026
…eturn W24's flip-sticky root. 43 of 45 binding refusals on PP0's corridor gate read cause=phantom_capacity, every 60-75 s for 21.6 min: the allocator-cache post promised ~309-324 MiB (memory_reserved - memory_allocated), an empty_cache() draw delivered 0, sgl-project#828's law 2 derated the post to zero, and the next pass re-promised the same bytes and paid for the same sync again. sgl-project#828 made the VERDICT honest. The PROMISE stayed dishonest, and a silent derate loop is what that costs. ROOTED AGAINST THE LOG, and two hypotheses are closed for good: - stale pricing KILLED: the derate denominator takes 21 distinct values, drifting 320464384 -> 325639168 B. It is re-measured every pass. - missing release KILLED: _reclaim_cached_blocks has no production hook and 43/43 phantom lines are tagged [reclaim figures measured this pass], against the one scarcity line tagged [reclaim figures never measured]. - wrong-rank read: no positive evidence; all PP0, one device per worker. - fragmentation survives as the only candidate but is NOT PROVEN: the log carries no allocator-segment telemetry at all (inactive_split, fragment and segment appear zero times in 14490 lines). So this does not assume the root, it MEASURES it. inactive_split_bytes is the free-but-trapped remainder inside segments still in use, and empty_cache() returns only whole free segments, so releasable = reserved - allocated - inactive_split is what a draw can actually hand the driver. A raw-nonzero, releasable-zero cache becomes an honest zero that NAMES the fragmentation, and the cause reads scarcity rather than phantom_capacity -- nothing was promised, so nothing is phantom. The seam then skips a sync it can prove will return nothing. The fix is correct under every one of the four hypotheses: a cache that really is releasable measures nonzero, draws and pays exactly as before, with law 2 still underneath as the backstop for an estimator that over-promises. The discriminator W24 lacked is now emitted every pass -- the predicted releasable figure printed next to what the draw actually returned. Agreement confirms the fragmentation account; a nonzero prediction against a zero delivery falsifies it and indicts this estimator instead. THE ABSTENTION IS LOAD-BEARING. Under expandable_segments:True, reserved counts a VIRTUAL extent -- measured in this tree at 36910 MiB on a 32607 MiB card -- so the arithmetic is void. Subtracting there UNDER-reports, and an under-report suppresses a draw that would have paid, making the flip stickier: the precise defect this commit removes. It abstains instead, along with a backend lacking the counter and an empty reservation, each returning the seam to sgl-project#828 behaviour byte for byte. All three live in a pure function over a stats mapping so they are falsifiable without a GPU. TESTS (hermetic, CUDA_VISIBLE_DEVICES=""): test_honest_cache_pricing_852.py 19 passed test/registered/unit/managers/ 3800 passed, 18 skipped, 334 subtests (740 s) test/registered/unit/mem_cache/ 1710 passed, 1658 skipped, 361 subtests (128 s) ruff check + format clean Red-both-ways proven: the census wire was red as 'releasable not found in ... cause=phantom_capacity' before wiring, and the expandable-segments guard was red as '524288000 is not None' -- the 500 MiB under-report -- with the guard disabled.
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.
Thank you for your contribution, we really appreciate it. The following instructions will help improve your pull request and make it easier to receive feedback. If there are any items you don't understand, don't worry. Just submit the pull request and ask the maintainers for help.
Motivation
Please explain the motivation behind this PR and the goal you aim to achieve with it.
Modification
Briefly describe the changes made in this PR.
Checklist
pre-commit run --all-filesor other linting tools are used to fix potential lint issues.