↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

WAIT FOR LSN 被报告存在死锁与升主竞态 RSS

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

发布于 2026-09-10T06:53:46.46793Z · Xuneng Zhou · PostgreSQL hackers
WAIT FOR 复制 死锁

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