From 4cc6ddbc352ca7b5f4d835b355f2ff6166ad28ca Mon Sep 17 00:00:00 2001 From: Harshad Khetpal Date: Wed, 9 Sep 2026 16:27:53 +0530 Subject: [PATCH] fix(server): stop bare excepts from swallowing cancellation and shutdown Co-Authored-By: Claude Fable 5 Signed-off-by: Harshad Khetpal --- lightllm/server/build_prompt.py | 4 ++-- lightllm/server/core/objs/py_sampling_params.py | 2 +- lightllm/server/core/objs/sampling_params.py | 2 +- lightllm/server/embed_cache/afs_utils.py | 4 ++-- .../server/httpserver_for_pd_master/manager.py | 16 ++++++++-------- lightllm/server/metrics/manager.py | 2 +- lightllm/server/multi_level_kv_cache/shm_objs.py | 2 +- .../pd/decode_node_impl/decode_trans_process.py | 2 +- .../mode_backend/pd/trans_process_obj.py | 2 +- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lightllm/server/build_prompt.py b/lightllm/server/build_prompt.py index 6e55ebd68f..7ef49c75aa 100644 --- a/lightllm/server/build_prompt.py +++ b/lightllm/server/build_prompt.py @@ -58,7 +58,7 @@ def tokenizer_supports_force_thinking() -> bool: logger.debug(f"chat_template: {tokenizer.chat_template}") logger.info(f"tokenizer_supports_force_thinking : {ans}") return ans - except: + except (AttributeError, TypeError): pass try: @@ -66,7 +66,7 @@ def tokenizer_supports_force_thinking() -> bool: logger.debug(f"tokenizer.tokenizer.chat_template: {tokenizer.tokenizer.chat_template}") logger.info(f"tokenizer_supports_force_thinking : {ans}") return ans - except: + except (AttributeError, TypeError): pass logger.info("tokenizer_supports_force_thinking : False") diff --git a/lightllm/server/core/objs/py_sampling_params.py b/lightllm/server/core/objs/py_sampling_params.py index ba3368d57c..d458d5ef4b 100644 --- a/lightllm/server/core/objs/py_sampling_params.py +++ b/lightllm/server/core/objs/py_sampling_params.py @@ -125,7 +125,7 @@ def _cfg(key, default): cls._top_p = _cfg("top_p", 1.0) cls._top_k = _cfg("top_k", -1) cls._stop_sequences = generation_cfg.get("stop", None) - except: + except Exception: pass def verify(self): diff --git a/lightllm/server/core/objs/sampling_params.py b/lightllm/server/core/objs/sampling_params.py index 20bd6c61ea..ead590ecb8 100644 --- a/lightllm/server/core/objs/sampling_params.py +++ b/lightllm/server/core/objs/sampling_params.py @@ -415,7 +415,7 @@ def _cfg(key, default): cls._temperature = _cfg("temperature", 1.0) cls._top_p = _cfg("top_p", 1.0) cls._top_k = _cfg("top_k", -1) - except: + except Exception: pass def verify(self): diff --git a/lightllm/server/embed_cache/afs_utils.py b/lightllm/server/embed_cache/afs_utils.py index 5dcbac8d61..19248e99cd 100644 --- a/lightllm/server/embed_cache/afs_utils.py +++ b/lightllm/server/embed_cache/afs_utils.py @@ -50,7 +50,7 @@ def save_tensor_afs(self, name: str, tensor: torch.Tensor) -> bool: finally: try: tmp_path.unlink(missing_ok=True) - except: + except OSError: pass def load_tensor_afs(self, name: str) -> Optional[torch.Tensor]: @@ -132,7 +132,7 @@ def insert(self, md5: str, tensor: torch.Tensor) -> bool: ans = self.afs_utils.save_tensor_afs(md5, tensor) self.redis_client.update(md5) return ans - except: + except Exception: return False def load(self, md5: str) -> Optional[torch.Tensor]: diff --git a/lightllm/server/httpserver_for_pd_master/manager.py b/lightllm/server/httpserver_for_pd_master/manager.py index 96f0d7203e..1a21b40072 100644 --- a/lightllm/server/httpserver_for_pd_master/manager.py +++ b/lightllm/server/httpserver_for_pd_master/manager.py @@ -103,7 +103,7 @@ async def update_req_status(self, upkv_status: PDUpKVStatus): up_status_event = self.req_id_to_out_inf[group_request_id].up_status_event up_status_event.upkv_status = upkv_status up_status_event.set() - except: + except Exception: pass return @@ -414,7 +414,7 @@ async def _generate_one_attempt( try: await self.abort(block_group_request_id, p_node=p_node, d_node=d_node) - except: + except Exception: await self.abort(block_group_request_id) raise e @@ -724,17 +724,17 @@ async def abort( del self.req_id_to_out_inf[group_request_id] p_node = req_status.p_node d_node = req_status.d_node - except: + except Exception: pass try: await p_node.websocket.send_bytes(pickle.dumps((ObjType.ABORT, group_request_id))) - except: + except Exception: pass try: await d_node.websocket.send_bytes(pickle.dumps((ObjType.ABORT, group_request_id))) - except: + except Exception: pass return @@ -742,7 +742,7 @@ async def abort( async def remove_req(self, group_request_id): try: del self.req_id_to_out_inf[group_request_id] - except: + except Exception: pass async def timer_log(self): @@ -782,7 +782,7 @@ async def handle_loop(self): async with req_status.lock: req_status.out_token_info_list.append((sub_req_id, text, metadata, finish_status)) req_status.event.set() - except: + except Exception: pass elif obj[0] == ObjType.PD_UPLOAD_PREFILL_PROMPT_IDS: _, group_req_id, prompt_ids = obj @@ -791,7 +791,7 @@ async def handle_loop(self): async with req_status.lock: req_status.prefill_prompt_ids_event.prompt_ids = prompt_ids req_status.prefill_prompt_ids_event.set() - except: + except Exception: logger.error( f"PD_UPLOAD_PREFILL_PROMPT_IDS fail find req status for group_req_id: {group_req_id}" ) diff --git a/lightllm/server/metrics/manager.py b/lightllm/server/metrics/manager.py index 22f6426a77..04cc7599e4 100644 --- a/lightllm/server/metrics/manager.py +++ b/lightllm/server/metrics/manager.py @@ -70,7 +70,7 @@ def push_metrics(self): if time_counter >= 60: logger.info("push metrices success") time_counter = 0 - except: + except Exception: pass finally: time.sleep(self.interval) diff --git a/lightllm/server/multi_level_kv_cache/shm_objs.py b/lightllm/server/multi_level_kv_cache/shm_objs.py index 50f3abfc7b..eedca0ef16 100644 --- a/lightllm/server/multi_level_kv_cache/shm_objs.py +++ b/lightllm/server/multi_level_kv_cache/shm_objs.py @@ -296,7 +296,7 @@ def _create_shm(name: str, byte_size: int, auto_cleanup: bool = False): if auto_cleanup: register_posix_shm_for_cleanup(name) logger.info(f"create lock shm {name}") - except: + except Exception: shm = shared_memory.SharedMemory(name=name, create=False, size=byte_size) logger.info(f"link lock shm {name}") return shm diff --git a/lightllm/server/router/model_infer/mode_backend/pd/decode_node_impl/decode_trans_process.py b/lightllm/server/router/model_infer/mode_backend/pd/decode_node_impl/decode_trans_process.py index b406405e8a..bcdec8a820 100644 --- a/lightllm/server/router/model_infer/mode_backend/pd/decode_node_impl/decode_trans_process.py +++ b/lightllm/server/router/model_infer/mode_backend/pd/decode_node_impl/decode_trans_process.py @@ -258,7 +258,7 @@ def accept_peer_task_loop( for notify in _notify_list: try: notify_obj = pickle.loads(notify) - except: + except Exception: notify_obj = None if not isinstance(notify_obj, PDChunckedTransTask): diff --git a/lightllm/server/router/model_infer/mode_backend/pd/trans_process_obj.py b/lightllm/server/router/model_infer/mode_backend/pd/trans_process_obj.py index 073ecf23d2..0880ee7855 100644 --- a/lightllm/server/router/model_infer/mode_backend/pd/trans_process_obj.py +++ b/lightllm/server/router/model_infer/mode_backend/pd/trans_process_obj.py @@ -55,7 +55,7 @@ def is_trans_process_health(self): return False else: return True - except: + except Exception: return False def killself(self):