Skip to content

Create contributor_guide.md - #992

Merged
Ying1123 merged 2 commits into
mainfrom
Ying1123-patch-1
Aug 8, 2024
Merged

Ying1123 merged 2 commits into
mainfrom
Ying1123-patch-1

Conversation

@Ying1123

@Ying1123 Ying1123 commented Aug 8, 2024

Copy link
Copy Markdown
Contributor

No description provided.

@Ying1123
Ying1123 merged commit 228cf47 into main Aug 8, 2024
@Ying1123
Ying1123 deleted the Ying1123-patch-1 branch August 8, 2024 10:58
timethink pushed a commit to timethink/sglang that referenced this pull request Mar 9, 2025
hhhh1252023 pushed a commit to hhhh1252023/sglang_public that referenced this pull request Jul 13, 2026
efschu pushed a commit to efschu/htsglang that referenced this pull request Aug 28, 2026
… its seat too

Boot 11 (aae7e3b) reached 3m47s -- sgl-project#991 held, no AttributeError -- and
died on `sgl-project#801-spin PP IDLE-VOID LIVELOCK REFUSED` (pp_rank=2, 512
consecutive voided passes, scheduler_pp_mixin.py:8214). The guard is right
that the defect is not on rank 2.

ROOT. Uniform membership -- "a rank executing a forwarded schedule may admit
only what the decision names" -- is enforced at scheduler.py's `pp_not_named`
skip for every candidate that comes out of `waiting_queue`, and NOWHERE for
the one candidate that never appears in a queue. `add_chunked_req` runs ~250
lines earlier and appends `self.chunked_req` unconditionally, before the
decision is consulted at all.

MEASURED, 512 byte-identical rounds (21:27-21:31): rank 1 held rid
8a330526c7b9410f963232874adc451b at executed=3332 as its parked
continuation, in NO queue on ANY rank, so rank 0's decision could not name
it. That site gave it the seat; the decision's own rid (dfd22a9a… /
9528ff20…) could then not be reached; `sgl-project#791 FORWARDED SCHEDULE UNEXECUTABLE`
voided the pass; `sgl-project#971 REHOME-ON-REFUSAL` put the continuation straight back
into `self.chunked_req`; the next pass was identical. Rank 2 voided every
pass behind it until the bound fired.

THE CLASS: a compensator that restores the precondition of its own trigger.
The cut therefore belongs upstream of the rehome, at the admission -- fixing
sgl-project#971 would only move the latch.

FIX. At the one junction, gate `add_chunked_req` on the same membership test
the queue loop already applies: when this rank is executing a forwarded
schedule that does not name its continuation, refuse the SEAT. Not a drop --
the precedent is the sgl-project#906 gate immediately below it: the request stays
`self.chunked_req`, keeps prefix, pages and mid-chunk position, and resumes
on the first pass whose decision names it. PP0 has no incoming decision, so
`incoming is None` there and the default path is byte-identical.

SIBLING SWEEP: the two candidate sources into `can_run_list` under a
forwarded schedule are the queue loop and this one; the queue loop was
already gated. `_note_skip("batch_full_break")` and `pp_not_named` are the
two symptoms this produced in the census and both are downstream of it.

WHAT THIS DOES NOT CLOSE, stated rather than assumed: sgl-project#968's half. sgl-project#968
makes the parked-continuation fact ride the return lap so PP0 CAN name such
a rid, but its actuator `pp_parked_continuation_priority` only REORDERS
PP0's queue and is a no-op exactly when the rid is in no queue on PP0 --
which is this specimen. The new log line prints the rid, its executed
extent and the decision's full name set, so boot 12 MEASURES whether the
continuation ever becomes named instead of leaving it to inference.

Evidence: desk. py_compile + import smoke. Belegstufe: DESK-BEWIESEN.
efschu pushed a commit to efschu/htsglang that referenced this pull request Aug 28, 2026
Boot 13 (4fde6e5) did not crash: it WEDGED. 5 queued, 0 running, no
first token, on all three ranks, behind 239 identical refusals of one
shape:

  sgl-project#791 FORWARDED SCHEDULE UNEXECUTABLE for rid=901a7d29…: the decision
  names prefix_len=0, this rank holds 7938.

ROOT, and it is the second half of the exemption sgl-project#992 found. `sgl-project#791 PP
ADMISSION UNIFORMITY` has two halves -- MEMBERSHIP ("admit only what the
decision names") and GEOMETRY ("with exactly the prefix it named") -- and
both are implemented inside the waiting-queue loop, applied strictly before
`adder.add_one_req`. The chunked continuation does not travel that loop: it
reaches `can_run_list` through `add_chunked_req`, ~250 lines earlier, and
was therefore exempt from BOTH. sgl-project#992 closed membership. Geometry stayed
open, so a NAMED continuation entered the batch carrying its own prefix
while the decision named another -- and that is a SHAPE disagreement,
because `prepare_for_extend` sizes the cross-stage tensor directly off
`len(req.prefix_indices)`. The follower refused, correctly, every pass.

The decision said 0 because PP0 had spent its `sgl-project#946 PREMISE RECOMPUTE`
terminator on that rid. That is PP0's call to make and the follower's to
execute; second-guessing it is what the refusal exists to prevent.

FIX: apply the same `truncate_prefix_to(told)` the queue loop applies, at
the same point in the same order -- immediately before the re-derivation.
sgl-project#930: the helper moves `prefix_indices` and `cache_protected_len` together.
sgl-project#961: the mover must be followed by the re-derivation it invalidates; in the
queue loop that is `add_one_req`, here it is `add_chunked_req` on the next
line. Nothing is re-derived by hand and no new helper is introduced.

Logged with rid, local prefix and told, counted, so the adoption is
affirmative rather than inferred from the absence of refusals.

SIBLING SWEEP: the two entries into `can_run_list` under a forwarded
schedule are the queue loop and this one. Both now carry both halves of
uniformity. PP0 has no incoming decision (`incoming is None`), so its path
is byte-identical.

BOOT 13 ALSO BOUGHT: sgl-project#993's containment fired and held -- no repeat of
boot 12's allocator assert. sgl-project#992 held -- no repeat of boot 11's sgl-project#801-spin.
Batch lines were symmetric 5/5/5 across ranks, i.e. no rank is structurally
excluded.

Evidence: desk. py_compile + import smoke + wiring assertion. Belegstufe:
DESK-BEWIESEN.
efschu pushed a commit to efschu/htsglang that referenced this pull request Aug 28, 2026
…ter a boot

Commit 7398727 published two predictions. The second one was wrong, and it
was wrong at the time I published it -- its author withdrew it before the boot
ran and I re-checked the withdrawal against the log myself. It stands struck
through rather than deleted: a published prediction may not quietly vanish.

WHY (b) IS FALSE, three ways, all in the specimen:
 * The refusals' actual cause is printed one line ABOVE each of them: :2033
   (PP1) and :2044 (PP2), 'sgl-project#992 CHUNKED CONTINUATION NOT NAMED rid=da614e20
   executed=7939 decision_names=5689567b'. That is the sgl-project#992 asymmetry -- the
   followers hold a resident the decision does not name -- and no false
   last_chunk is involved.
 * :2028 'sgl-project#968 MINT none rank=0 rid=5689567b end=4096 prefix=0'. It was a
   genuine MIDDLE chunk, so last_chunk=False was correct. Cut C carries the
   same verdict and the refusal fires unchanged. Two stays two.
 * :2120 'local=8446 -> upstream=8447 appended=1'. The follower is SHORTER and
   the adopt raised it, which is the covered direction. Site #0 needs the
   executing rank LONGER. That never happened in this boot.

So Site #0 is desk-proven as a defect, has ZERO boot-observed instances, and
contributed nothing to Boot 16. Cut C fixes a LATENT defect and the next boot
can neither confirm nor refute it -- which matters operationally, because
anyone watching for an indicator there is watching for one that cannot come.

Exactly one prediction now rides on the boot: the sgl-project#631 leftover SURVIVES.

And the class section is corrected rather than left flattering: the two seams
do NOT carry the same evidence tier. D1 (:5330-5331) is boot-proven at the
symptom; Site #0 (:1433) is desk-proven with no instances. Two independent
finds still argue the class better than one, but the class is carried by the
metal-backed half, and writing it otherwise would inherit exactly the
overclaim the indicator law exists to forbid.

The error form is recorded too, because it is not a foreign one: an event that
FITS a mechanism was read as BEING that mechanism, without reading the line
above naming the alternative. Twice, and both times the refutation was one line
higher in the same log. Same shape as the dead ratchet in sgl-project#996 and the false
guard hint in sgl-project#997. The cheap counter-check is the same in all three and costs
seconds: read the line above.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant