本地人工审核保存被遗留事务长期阻塞
现象
本地合同台账对合同 182 执行人工审核保存时,页面持续显示保存中;网关请求约 300 秒后以 fetch failed 失败。
根因
解析库存在来自本地解析服务的 PostgreSQL 会话,状态为 idle in transaction。该会话在草稿核对入库路径执行 SELECT contract_no, mineru_md FROM contracts WHERE id = $1 后未提交、回滚或关闭,持续占有合同记录锁。后续人工审核在 SELECT contract_no FROM contracts WHERE id=$1 FOR UPDATE 上排队等待。
已恢复
2026-08-28:本地测试库中终止了一个僵尸事务及其 5 个等待保存请求;所有未提交内容均已回滚。验证后合同 182 不再存在等待锁。
后续防护
- 排查草稿核对入库请求为何会遗留未关闭事务。
- 为本地/生产数据库配置
idle_in_transaction_session_timeout。 - 为网关人工审核到解析服务的转发增加明确超时与可读错误。
- 增加回归测试:异常中断后连接必须回滚/关闭,后续审核保存不得被阻塞。