记录事务上限决定、报销AC11确认并归档审批旧状态调查任务 [09-27-purchase-submit-tx-timeout][09-01-reimbursement-one-page-approval-workbench]
- 09-18 PRD 注明「不提高5000ms」约束经用户 2026-09-27 决定被取代; 09-27 任务记负载验证结果(采购提交 0 次 500)。 - 父任务记用户确认:退回的报销单已重新提交并经财务审批通过(来源为 用户确认,未读生产数据);核查 SW 缓存仅含报销摘要,符合 R8。 - 09-26-approve-success-state-unchanged 验收完成并已上线,归档。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
@@ -4,4 +4,6 @@
|
||||
- [x] 采购提交、报销新建、报销提交三处 `$transaction` 显式 `{ maxWait: 5000, timeout: 10000 }`;事务内容不变。
|
||||
- [x] 回归断言:采购提交(去掉修复即失败)、报销提交。
|
||||
- [x] 后端全量单测:4451 通过 / 1 原跳过。
|
||||
- [ ] 负载复现确认无采购提交 P2028;随下次发布候选走完整门禁。
|
||||
- [x] 负载复现 2 轮(采购 ×8 + permission-direct-access ×8):采购提交 0 次 500(修复前每轮 1–2 次)。另见 1 次 P2028 为 `auth.js:1054` 令牌刷新事务「Unable to start a transaction」(连接池取连接超 2s maxWait,非本修复范围,前端重试后用例通过);AP6 待办计数负载下偶发失败(既有)。
|
||||
- [x] 2026-09-27 用户决定采用放宽方案,09-18 PRD 已注明原约束被取代。
|
||||
- [ ] 随下次发布候选走完整门禁并部署(部署需另行授权)。
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 三处事务传入 `{ maxWait: 5000, timeout: 10000 }`,采购与报销提交各有回归断言(去掉修复即失败)。
|
||||
- [ ] 后端全量单测通过。
|
||||
- [ ] 负载复现不再出现采购提交 P2028。
|
||||
- [x] 三处事务传入 `{ maxWait: 5000, timeout: 10000 }`,采购与报销提交各有回归断言(去掉修复即失败)。
|
||||
- [x] 后端全量单测通过(4451 / 1 原跳过)。
|
||||
- [x] 负载复现不再出现采购提交 P2028(2 轮 0 次,修复前每轮 1–2 次)。
|
||||
|
||||
## Test Plan
|
||||
|
||||
- `server/tests/unit/routes/purchase.submit-budget-precheck.test.js`:新增断言提交事务选项;已验证去掉修复时该用例失败。
|
||||
- `server/tests/unit/routes/reimbursements.expense-standards.test.js`:在既有成功提交用例中断言事务选项。
|
||||
- 后端全量 vitest;负载复现脚本(见 09-26-approve-success-state-unchanged/research/repro.sh)。
|
||||
- 后端全量 vitest;负载复现脚本(见 archive/2026-09/09-26-approve-success-state-unchanged/research/repro.sh)。
|
||||
|
||||
在新工单中引用
屏蔽一个用户