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

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

PostgreSQL 19 外键快速路径被查出三个严重缺陷 RSS

Nikolay Samokhvalov 在 PostgreSQL 19 新增的外键检查快速路径里发现三处问题。这条路径把外键检查攒成批处理,但延迟刷批时会执行用户定义的转换函数或操作符,于是给了重入的机会:满批刷新时重入会造成越界写入并可能崩溃;子事务回滚会丢掉父事务缓冲的行,导致外键检查被跳过、孤儿数据得以提交;跨表重入还会让哈希迭代漏掉条目。三者都能由普通用户用带隐式转换的自定义类型复现。Amit Langote 已确认并开始排查。

发布于 2026-09-10T10:59:42.396414Z · Nikolay Samokhvalov · pgsql-hackers
PostgreSQL 19 外键 缺陷

Nikolay Samokhvalov 在 PostgreSQL 19 新增的外键检查快速路径里发现三处问题。这条路径把外键检查攒成批处理,但延迟刷批时会执行用户定义的转换函数或操作符,于是给了重入的机会:满批刷新时重入会造成越界写入并可能崩溃;子事务回滚会丢掉父事务缓冲的行,导致外键检查被跳过、孤儿数据得以提交;跨表重入还会让哈希迭代漏掉条目。三者都能由普通用户用带隐式转换的自定义类型复现。Amit Langote 已确认并开始排查。

Nikolay Samokhvalov 在 PostgreSQL 19 新增的外键检查快速路径里发现三处问题。这条路径把外键检查攒成批处理,但延迟刷批时会执行用户定义的转换函数或操作符,于是给了重入的机会:满批刷新时重入会造成越界写入并可能崩溃;子事务回滚会丢掉父事务缓冲的行,导致外键检查被跳过、孤儿数据得以提交;跨表重入还会让哈希迭代漏掉条目。三者都能由普通用户用带隐式转换的自定义类型复现。Amit Langote 已确认并开始排查。

原始来源 ↗

来源记录
  • center.info_item · 226c163c263bab15 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 226c163c263bab15 · 2026-10-03T04:08:55.967155Z