{"conclusion":"Both differentials are observed on real upstream code with identical inputs on both trees. Experiment A: intake-rejected requests were admitted and sender/receiver created pre-fix, retired at the door post-fix; re-entering and valid requests behave identically on both trees. Experiment B: the #36988-head unit tests fail 0/7 pre-fix and pass 7/7 post-fix; the probe shows pre-fix aborted results were cached-as-unfinished and requeued (B1/B5), and a delayed result for an already-retired request still sent a KV chunk (B4); post-fix they are released exactly once and finished. This proves the two fixes change the observed behavior as designed. It does NOT prove a GPU/RDMA leak, real GLM-5.3 cross-tenant disclosure, or benchmark behavior.","environment":{"gpu":"none","machine":"Muse VM, AMD EPYC 9D25, 2 vCPU, 7 GB RAM","network":"only PyPI/GitHub downloads for pinned source and packages; no model weights, no tenant data, no production service","notes":"Env correction during P2: transformers was 5.21.0 (unpinned install) but both trees pin transformers==5.12.1; the #36988-era trees crashed at import on 5.21.0 (AutoConfig.register qwen3_asr clash; the 8f3d6944 tree tolerates it via exist_ok=True). Downgraded to pinned transformers==5.12.1 + tokenizers==0.22.2, then re-ran P1 combined: 19 passed, 12 subtests passed (log pytest-both-rerun-20261028.log).","numpy":"2.3.5","os":"Linux","pytest":"9.2.0","python":"3.12.3","torch":"2.14.1+cpu","torch_cuda_available":false,"transformers":"5.12.1"},"executed_at":"2026-10-28T10:27:00+08:00/10:34:00+08:00","experiment_a_admission_door_pr38935":{"base_commit":"17ba2c2e7c7b81f31a8a9e693e7435ab262c16b4","base_tarball_sha256":"18a613cc773bd97aacecd7a9f6dcd502242e109e4373cf26fa15ecad254301cf","base_tarball_url":"https://codeload.github.com/sgl-project/sglang/tar.gz/17ba2c2e7c7b81f31a8a9e693e7435ab262c16b4","differential":{"A1_rejected_prefill":{"post":{"create_sender_called":false,"queue":[],"retire_called":true},"pre":{"create_sender_called":true,"queue":["admission-abort"],"retire_method_absent":true}},"A2_rejected_decode":{"post":{"create_receiver_called":false,"retire_called":true},"pre":{"create_receiver_called":true,"retire_method_absent":true}},"A3_reentering_prefill_metadata_buffer":{"post":{"is_unadmitted_reject":false,"queue":["admission-abort"],"retire_called":false},"pre":{"is_unadmitted_reject":null,"queue":["admission-abort"],"retire_method_absent":true}},"A4_valid":{"post":{"decode_receiver_called":true,"prefill_queue":["admission-abort"]},"pre":{"decode_receiver_called":true,"prefill_queue":["admission-abort"]}}},"head_commit":"8f3d6944b76c428d884582cb6c82a39db1465360","head_tarball_sha256":"49ba1602bac37a5fb1656f70859299e89403da95f1521f7881dcf56924e3fa6c","merge_commit":"3f8eb35eadfb29ad98d7900910f19fafcbac5ccb","post_log":"probe-admission-post-20261028.json","post_log_sha256":"8bbcba087ee0d235a074d3483e00be5373ae961b2f850174821038d7518f72ca","post_stderr_sha256":"e812fddf5451b654bd374846518db1fcbd30b5c77969a1ca86b29719745f760e","pre_log":"probe-admission-pre-20261028.json","pre_log_sha256":"8985a124633bf4d28897a5feb9dd7a329eb35e211aedf0f3aa4a991a63a07803","pre_stderr_sha256":"a4ed2780f56b254a55860aa67a2a81b7b4c4a210f4e70ae8d4225b759863ceff","probe":"probe_admission_differential.py","probe_note":"Version-tolerant: is_unadmitted_reject / retire_unadmitted_request probed with hasattr; absence recorded as null/ABSENT, not stubbed. Same Req construction and queue stubs as the upstream test on both trees.","probe_sha256":"bddee1eaf8af4a6d25ce5c859576e0ea655e63fab8cd4b2094c22419bf759d4f","verdict":"DIFFERENTIAL_OBSERVED"},"experiment_b_prefill_cleanup_pr36988":{"base_commit":"9c254df8cdbe99ef5f58e7fcd932da052f258538","base_tarball_sha256":"287782e8fd4aa5a4fbdb9905477c619629dd8064c46fe558660b68873fa72c80","base_tarball_url":"https://codeload.github.com/sgl-project/sglang/tar.gz/9c254df8cdbe99ef5f58e7fcd932da052f258538","differential":{"B1_aborted_final_result":{"post":{"maybe_cache_called":false,"metadata_freed":true,"release_kv_cache_calls":1,"req_finished":true,"req_in_inflight_queue":false,"sender_abort_called":true,"stream_output_called":true},"pre":{"maybe_cache_called":true,"metadata_freed":false,"release_kv_cache_calls":0,"req_finished":false,"req_in_inflight_queue":true,"sender_abort_called":false,"stream_output_called":false}},"B2_aborted_middle_last_chunk":{"post":{"release_kv_cache_calls":1,"req_finished":true,"stream_output_called":true},"pre":{"exception":"ValueError: config namespace 'disagg' not published","release_kv_cache_calls":0,"req_finished":false}},"B3_aborted_middle_chunk_inflight":{"post":{"release_kv_cache_calls":0,"req_finished":false,"req_in_pending_chunk_rids":true},"pre":{"release_kv_cache_calls":0,"req_finished":false,"req_in_pending_chunk_rids":false}},"B4_delayed_result_already_retired":{"post":{"maybe_cache_called":false,"req_in_inflight_queue":false,"send_kv_chunk_called":false},"pre":{"maybe_cache_called":true,"req_in_inflight_queue":true,"send_kv_chunk_called":true}},"B5_sender_abort_raises":{"post":{"metadata_freed":true,"release_kv_cache_calls":1,"req_finished":true,"stream_output_called":true},"pre":{"maybe_cache_called":true,"release_kv_cache_calls":0,"req_finished":false,"req_in_inflight_queue":true}}},"head_commit":"2ee5742af92db2727236460473554c2ee8c4ddaa","head_tarball_sha256":"87a2f727fe197452578798ce5e5836df7d1581cc6e4f8b0c11a587875f7dda5e","head_tarball_url":"https://codeload.github.com/sgl-project/sglang/tar.gz/2ee5742af92db2727236460473554c2ee8c4ddaa","head_test_blob_sha":"2d9bd57783af3702bae4eb91970a6b65ba66ca5d","head_test_file":"test/registered/unit/disaggregation/test_prefill_abort_result_cleanup.py","merge_commit":"febb360519875d95dfc25997a7e7d73ba1dc8377","post_log":"probe-prefill-post-20261028.json","post_log_sha256":"338037df7c8af2e64fdc8a62f2bc66f7514c1b21fc3f2cd371d10096397535e4","post_probe_note":"RuntimeError 'transport is down' in post stderr is the expected B5 side effect, caught by the code (logger.exception); local cleanup still completed exactly once.","pre_log":"probe-prefill-pre-20261028.json","pre_log_sha256":"78ac58660502acb248b32cae949236caef8751f0486b9a217168810b3f30d994","pre_probe_note":"CacheRequestHandle/CacheRequestOutcome do not exist in either #36988-era tree (added later); the probe uses an identical placeholder token on both trees, passed only to the mocked tree_cache. Recorded as cache_request_handle_real_import=false on both runs.","probe":"probe_prefill_differential.py","probe_sha256":"a4b50e172c9c4932d370b0c2da126913648ae82f0718940c92e9928bdad456af","upstream_test_runs":{"post":{"cases":7,"failed":0,"log":"pytest-prefill-post36988-20261028.log","log_sha256":"81433538604a5c0ab3c77d648722c7d76dd939d4ff41379c597b9a148338279d","passed":7},"pre":{"cases":7,"failed":7,"failure_modes":"6x AttributeError: SimpleNamespace has no attribute 'set_prefill_transfer_queue_entry_time' (pre-fix code falls through to the normal transfer path, which the post-fix test stub does not model); 1x ValueError: config namespace 'disagg' not published (same fall-through reaching a disagg-context lookup)","log":"pytest-prefill-pre36988-20261028.log","log_sha256":"bfee823e1a251dd7adf8c1dc324ad1b8a188135ee4484e649ceba5bf2f1fce7d","passed":0}},"verdict":"DIFFERENTIAL_OBSERVED"},"limitations":["CPU-only; CUDA paths not exercised","Probes use Mock collaborators for transport/cache/scheduler parts; they exercise real mixin/queue/retire code, not a live prefill/decode cluster","No model weights; no RDMA transfer; no multi-GPU handoff; no real tenant data","Exp B pre-fix test failures are fall-through artifacts (AttributeError/ValueError), not assertion failures: the pre-fix code lacks the early abort branch, so aborted requests reach the normal transfer path. The probe (with completed stubs) turns this into direct behavioral observations (B1/B4/B5).","Exp A/B isolate one PR each (base vs head of the same PR); the pinned 8f3d6944 tree additionally contains later changes, which is why Exp B compares against the #36988 head 2ee5742a instead"],"p1_reverification":{"combined_log":"pytest-both-rerun-20261028.log","combined_log_sha256":"e0fb6c8b3fb764e2301ca7f63ceed56af4a8c99b8edfc939523ed3bfef49f0bb","passed":19,"subtests_passed":12},"publication_authorized":false,"scope":"REAL_UPSTREAM_SGLANG_PRE_POST_FIX_DIFFERENTIAL_CPU_ONLY","status":"PASS","task_id":"2026-10-28-workflow4-glm53-sglang-cpu-p2","version":1}