docs: record BUG-1011 green gate and staging deployment
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
+5
-6
@@ -13428,20 +13428,19 @@
|
||||
|
||||
## BUG-1011 | 快照落库的数据库测试把 42 万字节 SQL 当一个命令行参数,Linux 上启动即失败
|
||||
|
||||
- 状态:investigating(修复已实现,真实数据库层仍待 Linux 门禁;本机 Docker 地址池耗尽)
|
||||
- 状态:resolved(Gitea run 2858 / validate 6349 全绿,完整快照与新增 stdin 事务合同通过;staging 已部署 `018b2b48`)
|
||||
- 首次发现:2026-09-23
|
||||
- 最近更新:2026-09-23(新增 stdin 单事务 helper;本机未进入 SQL)
|
||||
- 最近更新:2026-09-23(真实 Linux 门禁、迁移、部署与健康 SHA 核验通过;本机 Docker 地址池缺口仍保留)
|
||||
- 影响面:`frontend/tests/database-personal-report-sections.test.ts` 中报告密度快照一例;`backend-quality-gate` 的数据库测试步骤。生产写入走 RPC 请求体,不经命令行,不受影响。
|
||||
- 用户现象:无用户界面现象。门禁在含该测试的提交上变红;报告快照行在真实 Postgres 里的写入、幂等与越权隔离从未被验证。
|
||||
- 触发条件:在 Linux 上以 Docker 跑 `npm run test:db`(即门禁环境)。
|
||||
- 根因:`tests/helpers/postgres-fixture.ts` 的 `psql` / `psqlAs` 用 `psql -Atc <sql>` 把整段 SQL 作为单个 argv 元素传给 `docker compose exec`。该测试把整份快照(含 374,097 字节的附录 Markdown)内联进 SQL,单个参数 428,557 字节,超过 Linux 单参数上限 `MAX_ARG_STRLEN` 131,072 字节。验收时用同一段 SQL 以同样方式调用 `/bin/true`,稳定得到 `spawn E2BIG`。执行方两轮都因 Docker 地址池耗尽未跑数据库测试,验收机无 Docker,因此一直没暴露。
|
||||
- 修复:待执行,见 `TASK-report-density-fix2-20260923.md` G1。**不得改共享的 `psql` / `psqlAs`**:它们被 29 个文件调用 522 次,`-c` 的多语句单事务语义被依赖(`selectAsAuthenticated` 的 `set_config(…, true)` 只在当前事务内有效)。新增单事务的大脚本专用函数,只给本测试用。
|
||||
- 验证:待执行。
|
||||
- 修复:按更正任务 G1 新增 `psqlScriptAs`,通过 stdin 传 SQL,使用 `-X -At -v ON_ERROR_STOP=1 --single-transaction -f -` 和 16 MiB 输出缓冲。共享 `psql` / `psqlAs` 一字未改;仅完整快照写入及大 JSON 读回改用新 helper,原 fixture、幂等与 RLS 断言不变。
|
||||
- 验证:run 2858 / validate 6349:3,764 pass / 0 fail / 0 skip,相对 run 2857 既有测试名消失 0、新增 2;`personal report sections enforce owner-read RLS and service-owned durable transitions` 与 `stdin PostgreSQL scripts carry large SQL and preserve transaction-local settings` 通过。完整 test:db 的 47 个名称均在门禁日志中找到成功记录,包含超 131,072 字节 SQL、事务本地设置和超 1 MiB 输出。publish 6350、migrate run 2859/job 6351、deploy run 2860/job 6352 均成功;health 200 且双 deployment SHA 等于修复提交,login 200、匿名 account 401。本机 tsc/lint 通过,数据库因 Docker 地址池耗尽未进入 SQL,Windows build 因 symlink EPERM 失败,未冒充本机通过。
|
||||
- 防复发:超过数十 KB 的 SQL 一律走单事务的标准输入专用函数,并显式设 `maxBuffer`;专用函数须有测试覆盖超过 131,072 字节的 SQL,并证明事务内 `set_config(…, true)` 对后续语句可见。
|
||||
- 相关记录:BUG-1005、BUG-1009
|
||||
- 复发自:无
|
||||
- 修复版本:待提交;候选改动在 `codex/report-density-fix2-20260923`,尚未推送
|
||||
|
||||
- 修复版本:`018b2b4883eede47dae60f8860d92da0fac82f5e`(已推 staging 并部署;未提升 main)。进度见 `PROGRESS-report-density-fix2-20260923.md`。
|
||||
|
||||
## BUG-1012 | 首页入口新增 375px 断点违反既有白名单
|
||||
|
||||
|
||||
Reference in New Issue
Block a user