From 1f9517f03d789995a6ed0f21d79f4951d6e7114b Mon Sep 17 00:00:00 2001 From: easonysliu Date: Thu, 9 Apr 2026 12:06:19 +0800 Subject: [PATCH] fix: replace bare except clauses with specific exception types Bare `except:` clauses catch KeyboardInterrupt and SystemExit, which prevents proper Celery worker shutdown and can cause processes to hang. - `utils.py`: uuid.UUID() raises ValueError on invalid input, so catch (ValueError, AttributeError) instead of bare except - `base_tool_node.py`: json.loads() raises JSONDecodeError on invalid JSON, so catch (json.JSONDecodeError, TypeError, ValueError) instead Fixes #5065 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../application/flow/step_node/tool_node/impl/base_tool_node.py | 2 +- apps/ops/celery/utils.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/application/flow/step_node/tool_node/impl/base_tool_node.py b/apps/application/flow/step_node/tool_node/impl/base_tool_node.py index b6bcbc3f0b1..826611fcd86 100644 --- a/apps/application/flow/step_node/tool_node/impl/base_tool_node.py +++ b/apps/application/flow/step_node/tool_node/impl/base_tool_node.py @@ -51,7 +51,7 @@ def valid_reference_value(_type, value, name): raise Exception(_( 'Field: {name} Type: {_type} Value: {value} Unsupported types' ).format(name=name, _type=_type)) - except: + except (json.JSONDecodeError, TypeError, ValueError): return value if not isinstance(value, instance_type): raise Exception(_( diff --git a/apps/ops/celery/utils.py b/apps/ops/celery/utils.py index d14f9e1f4db..e0d8e94afa4 100644 --- a/apps/ops/celery/utils.py +++ b/apps/ops/celery/utils.py @@ -42,7 +42,7 @@ def get_task_log_path(base_path, task_id, level=2): task_id = str(task_id) try: uuid.UUID(task_id) - except: + except (ValueError, AttributeError): return os.path.join(PROJECT_DIR, 'data', 'caution.txt') rel_path = os.path.join(*task_id[:level], task_id + '.log')