Issue evidence · Serve · sgl-project/sglang

NIXL PD abort can leave all default transfer workers waiting on healthy non-terminal handles

GitHub issue: https://github.com/sgl-project/sglang/issues/44369

Confirmed from source (not run)

The NIXL prefill transfer worker only bounds its wait after an error handle is seen, so an aborted request with handles that stay in progress waits forever.

What Badgr ran

Read python/sglang/srt/disaggregation/nixl/conn.py on SGLang main (2026-10-15). Not run: no NIXL prefill and decode pair was set up.

What came back

  • Line 737: the deadline is armed only when failure_seen is true, otherwise it is None.
  • Line 1513: the worker calls _await_handles(handles, failure_seen=False) after submitting handles.

Code reading only (not run): the stall itself was not demonstrated.

Checked 2026-10-15 in Badgr’s local development environment.

← All issue evidence