[release/v0.18.0.post1][Bugfix] fix oom no response to user (#2638)

Signed-off-by: bjf-frz <frz123db@gmail.com>
This commit is contained in:
bjf-frz authored and GitHub committed 2026-04-09 20:31:58 +08:00
1 parent 589e664947
commit ca7ee8d6e7
12 files changed
+332 -47

No files matched your search

+23
View File
@@ -242,6 +242,29 @@ class Orchestrator:
output = stage_client.get_diffusion_output_async()
if output is not None:
idle = False
if isinstance(output, dict) and output.get("type") == "error":
req_id = output.get("request_id")
req_state = self.request_states.get(req_id)
await self.output_async_queue.put(
{
"type": "error",
"request_id": req_id,
"stage_id": stage_id,
"status_code": output.get("status_code", 500),
"error": output.get("error", "Unknown diffusion stage error"),
"error_type": output.get("error_type"),
"detail": output.get("detail") or {},
"finished": True,
"stage_submit_ts": req_state.stage_submit_ts.get(stage_id) if req_state else None,
}
)
self._cleanup_companion_state(req_id)
self.request_states.pop(req_id, None)
continue
req_state = self.request_states.get(output.request_id)
if req_state is not None:
stage_metrics = self._build_stage_metrics(stage_id, output.request_id, [output], req_state)