WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

获取mysql实例数据库信息导致archery服务卡死 #3096

@luml6

Description

@luml6

重现步骤

1.调用archery接口获取全部实例列表
2.调用archery接口获取每个实例的数据库信息
3.碰到无效的mysql实例连接,接口返回异常,archery服务卡死,服务和页面无法访问

预期外的结果

Image

日志文本

2025-11-27 17:44:06,444 - django.request - WARNING - Bad Request: /api/v1/instance/resource/
[2025-11-27 17:44:06,702][MainThread:140072210048832][task_id:default][mysql.py:535][WARNING]- MySQL语句执行报错,语句:show databases,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/mysql.py", line 512, in query
    conn = self.get_connection(db_name=db_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/archery/sql/engines/mysql.py", line 94, in get_connection
    self.conn = MySQLdb.connect(
                ^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
    return Connection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (2002, "Can't connect to MySQL server on '172.30.172.88' (110)")
2025-11-27 17:44:06,702 - default - WARNING - MySQL语句执行报错,语句:show databases,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/mysql.py", line 512, in query
    conn = self.get_connection(db_name=db_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/archery/sql/engines/mysql.py", line 94, in get_connection
    self.conn = MySQLdb.connect(
                ^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
    return Connection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (2002, "Can't connect to MySQL server on '172.30.172.88' (110)")
2025-11-27 17:44:06,702 - django.request - WARNING - Bad Request: /api/v1/instance/resource/
[2025-11-27 17:44:07,621][MainThread:140072210048832][task_id:default][mysql.py:535][WARNING]- MySQL语句执行报错,语句:show databases,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/mysql.py", line 512, in query
    conn = self.get_connection(db_name=db_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/archery/sql/engines/mysql.py", line 94, in get_connection
    self.conn = MySQLdb.connect(
                ^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
    return Connection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (2002, "Can't connect to MySQL server on '172.21.53.181' (110)")
2025-11-27 17:44:07,621 - default - WARNING - MySQL语句执行报错,语句:show databases,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/mysql.py", line 512, in query
    conn = self.get_connection(db_name=db_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/archery/sql/engines/mysql.py", line 94, in get_connection
    self.conn = MySQLdb.connect(
                ^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
    return Connection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (2002, "Can't connect to MySQL server on '172.21.53.181' (110)")
2025-11-27 17:44:07,622 - django.request - WARNING - Bad Request: /api/v1/instance/resource/
[2025-11-27 17:44:16,516][MainThread:140072210048832][task_id:default][mysql.py:535][WARNING]- MySQL语句执行报错,语句:show databases,错误信息Traceback (most recent call last):
  File "/opt/archery/sql/engines/mysql.py", line 512, in query
    conn = self.get_connection(db_name=db_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/archery/sql/engines/mysql.py", line 94, in get_connection
    self.conn = MySQLdb.connect(
                ^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
    return Connection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv4archery/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb.OperationalError: (2002, "Can't connect to MySQL server on '172.29.14.226' (110)")

版本

1.11.0

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions