发布于 2026-09-10T06:53:46.46793Z · Xuneng Zhou · PostgreSQL hackers

Xuneng Zhou 报告了 WAIT FOR LSN 实现的四个问题。最重的是死锁:standby_replay 模式下,backend 若还持有上一条语句留下的重量级锁,可能与 startup 进程形成环路,而 WaitForLSN() 用 latch 休眠而不是 ProcSleep(),死锁检测器看不见这条依赖。另外三处是 WAL buffer 回收缺唤醒、升主后重读 LSN 的竞态和恢复非显式结束时的返回语义。
Xuneng Zhou 报告了 WAIT FOR LSN 实现的四个问题。最重的是死锁:standby_replay 模式下,backend 若还持有上一条语句留下的重量级锁,可能与 startup 进程形成环路,而 WaitForLSN() 用 latch 休眠而不是 ProcSleep(),死锁检测器看不见这条依赖。另外三处是 WAL buffer 回收缺唤醒、升主后重读 LSN 的竞态和恢复非显式结束时的返回语义。
来源记录
- center.info_item · 5e0c50cc03fb892d · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 5e0c50cc03fb892d · 2026-10-03T04:08:55.967155Z