返回 Bug 清单
BUG-0320project-45高待处理backend-logic

Go 服务启动时 DB 单次连接失败即静默降级内存模式 —— postgres 未 ready 导致 repo 永远 nil

发现:2026-10-01验证:2026-10-09置信度:70%

症状

docker compose 启动时 sandbox/user-auth 比 postgres 先起,单次连接失败后永久走内存模式——重启 postgres 后服务不自愈,重启服务才能恢复

根因

compose 的 depends_on 只保证容器启动顺序不保证 postgres 就绪;服务启动时单次 db.Connect 失败就直接 fallback 内存模式且不再重试,把瞬时不可用固化成永久降级

修复方案

启动阶段改为重试循环(最多 10 次 × 3s),全部失败才降级内存模式并打 warning 日志;sandbox 与 user-auth 两个服务同步修复

错误签名

数据库不可用,使用内存模式 db.Connect 重试 compose postgres 未 ready repo nil

技术信息

来源项目

project-45

标签

project-45, mcp-reported