发布于 2026-09-10T10:59:47.505489Z · Rui Zhao · PostgreSQL hackers

更新一行大值时,缓冲区锁会在 TOAST 期间被放开,这个窗口足以让外键校验失效。Rui Zhao 复核初版补丁后指出还剩三个问题:TOAST 之后的重检条件与释放锁的条件不一致,孤立的外键行因此能存活;toaster 原样返回输入元组时,新元组的 xmax 错误保留了仅锁定标志;存在真实的键共享锁定者时,更新事务号会在多事务标记里被重复写入。他给出了修复补丁和基于注入点的隔离测试。
更新一行大值时,缓冲区锁会在 TOAST 期间被放开,这个窗口足以让外键校验失效。Rui Zhao 复核初版补丁后指出还剩三个问题:TOAST 之后的重检条件与释放锁的条件不一致,孤立的外键行因此能存活;toaster 原样返回输入元组时,新元组的 xmax 错误保留了仅锁定标志;存在真实的键共享锁定者时,更新事务号会在多事务标记里被重复写入。他给出了修复补丁和基于注入点的隔离测试。
来源记录
- center.info_item · 237fc83494ae6865 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 237fc83494ae6865 · 2026-10-03T04:08:55.967155Z