Skip to content

跟踪 Python 3.14 测试中偶发的 aiosqlite event-loop 关闭警告 #516

Description

@liujuanjuan1984

背景

#515 的 SDK 兼容审计期间,全量 ./scripts/doctor.sh 偶发出现 PytestUnhandledThreadExceptionWarningaiosqlite_connection_worker_thread 尝试通过 call_soon_threadsafe 回调时,pytest event loop 已关闭。

该警告在锁定的 a2a-sdk 1.1.2 与临时安装的上游 v1.1.3 release commit 环境中都观察到,因此不是 SDK 升级或 #514 出站鉴权修改引入。测试本身仍通过。

当前证据

  • 环境:Python 3.14.6、aiosqlite 0.22.1。
  • 曾在 tests/server/test_transport_contract.py 测试执行附近出现。
  • 单独以 -W error::pytest.PytestUnhandledThreadExceptionWarning 重跑相关测试未复现,初步判断为 teardown/lifecycle 时序问题。

建议调查

  • 检查 app/database engine fixture 是否等待所有 aiosqlite worker 与 connection 完整关闭。
  • 在 Python 3.14 下重复运行 database/transport tests,形成稳定复现。
  • 判断是否需要将该 warning 提升为 CI error,避免资源泄漏被测试成功状态掩盖。

验收标准

  • 获得稳定复现或确认触发条件
  • 明确是测试 fixture、应用生命周期还是 aiosqlite 上游问题
  • 修复后在 Python 3.14 重复运行不再出现该 warning
  • ./scripts/doctor.sh 通过

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions