diff --git a/python/sglang/srt/disaggregation/mooncake/conn.py b/python/sglang/srt/disaggregation/mooncake/conn.py index 8f9d527dd..29e861e9f 100644 --- a/python/sglang/srt/disaggregation/mooncake/conn.py +++ b/python/sglang/srt/disaggregation/mooncake/conn.py @@ -742,12 +742,12 @@ class MooncakeKVSender(BaseKVSender): self.kv_mgr.request_status.pop(self.bootstrap_room) def failure_exception(self): - self.clear() - # Explicitly set the status to failure since this request has failed in another rank if self.conclude_state is None: self.conclude_state = KVPoll.Failed + self.clear() + with self.kv_mgr.failure_lock: failure_reason = self.kv_mgr.failure_records.pop( self.bootstrap_room, "Failed due to an unknown reason from another rank" @@ -1003,12 +1003,12 @@ class MooncakeKVReceiver(BaseKVReceiver): self.kv_mgr.request_status.pop(self.bootstrap_room) def failure_exception(self): - self.clear() - # Explicitly set the status to failure since this request has failed in another rank if self.conclude_state is None: self.conclude_state = KVPoll.Failed + self.clear() + with self.kv_mgr.failure_lock: failure_reason = self.kv_mgr.failure_records.pop( self.bootstrap_room, "Failed due to an unknown reason from another rank"