Skip to content

修复技能包下载导致的连接池饥饿 - #1331

Merged
yokowu merged 1 commit into
mainfrom
fix-auth-error-log
Sep 23, 2026
Merged

yokowu merged 1 commit into
mainfrom
fix-auth-error-log

Conversation

@yokowu

@yokowu yokowu commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

问题

Agent 并发下载技能包时,资源权限校验事务会一直持有数据库连接,随后技能下载又通过连接池查询一次元数据。连接池容量较小时,多个请求会各自持有一个连接并等待第二个连接,导致鉴权查询超时、接口返回 503,下载请求最终被客户端取消并记录为 499。

修改

  • 权限校验完成后立即提交只读事务并释放连接
  • 复用已经加载并授权的技能元数据,避免下载前再次查询数据库
  • 在事务之外读取对象存储并校验技能包
  • 请求取消后使用不受取消影响的上下文回滚事务
  • 为 Agent 鉴权查询失败补充请求耗时、原始错误和 pgx 连接池统计
  • 增加无需数据库查询即可输出技能包的回归测试

验证

  • go test ./...
  • git diff --check

@yokowu
yokowu merged commit d658310 into main Sep 23, 2026
2 checks passed
@yokowu
yokowu deleted the fix-auth-error-log branch September 23, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant