PostgreSQL 10.4、9.6.9、9.5.13、9.4.18 和 9.3.23 已发布!

发布于 2018-05-10,作者:PostgreSQL 全球开发组
PostgreSQL 项目

PostgreSQL 全球开发组已发布我们数据库系统所有受支持版本的更新,包括 10.4、9.6.9、9.5.13、9.4.18、9.3.23。此版本修复了一个安全问题以及过去三个月报告的几个错误。用户应计划在下一个方便的停机时间进行更新。

请参阅“更新”部分,了解有关安全修复和“不正确的易失性和并行安全标记”修复的安装后步骤。

请注意,PostgreSQL 在 10.0 版本发布时更改了其版本控制方案,因此从 10.0、10.1、10.2 或 10.3 更新到 10.4 版本被认为是小版本更新。

安全问题

此版本已关闭一个安全漏洞

  • CVE-2018-1115:函数 pg_logfile_rotate() 上过于宽松的访问控制列表

请参阅下面的“更新”部分,了解更新后的步骤。

错误修复和改进

此更新还修复了过去几个月报告的 50 多个错误。其中一些问题仅影响 10 版本,但许多问题会影响所有受支持的版本。

这些修复包括

  • 修复了几个内置函数上不正确的易失性和并行安全标记,以确保正确的查询计划优化
  • 对分区进行了多项修复,包括潜在的崩溃以及允许将 TRUE 和 FALSE 用作分区边界
  • 修复了新的 TOAST 值可能会被分配给已失效但尚未被清理的 TOAST OID 的问题,这会导致类似于“toast 值 nnnnn 的意外块号 0(预期为 1)”的错误
  • 修复了 32 位平台上带有 bigint 标识列的“CREATE TABLE ... LIKE”
  • 修复了在重复执行哈希连接的查询运行时中的内存泄漏
  • 修复了围绕使用 GROUPING SET 的查询的多个崩溃问题
  • 避免在提交准备好的事务时发生查询取消或会话终止中断时发生故障
  • 减少自动清理工作程序调度期间的锁定,从而防止潜在工作程序并发性的损失
  • 修复了可能导致 REFRESH MATERIALIZED VIEW CONCURRENTLY 执行缓慢的问题
  • 修复了围绕使用“仅索引”扫描的查询计划的多个问题
  • 避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中出现死锁
  • 修复了 SP-GiST 索引的多个问题,包括文本列上的一个排序规则感知搜索
  • 修复了与计算部分 GiST、SP-GiST 和 Bloom 索引中元组数量相关的问题
  • 修复了逻辑解码和复制的多个问题
  • 修复了在转储中错误引用列表值 GUC 变量(例如 local_preload_libraries、session_preload_libraries、shared_preload_libraries、temp_tablespaces)的值的问题
  • 修复了 pg_stat_activity 的多个问题
  • 修复了 ecpg 的多个问题
  • 修复了 pg_recvlogical 以确保与 10 之前发布的 PostgreSQL 版本兼容
  • 修复了 pg_rewind 的多个问题

此更新还包含 tzdata 版本 2018d,其中包含巴勒斯坦和南极洲(凯西站)的更新,以及葡萄牙及其殖民地、恩德伯里岛、牙买加、特克斯和凯科斯群岛以及乌拉圭的历史修正。

更新

所有 PostgreSQL 更新版本都是累积的。与其他小版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本(虽然对于此版本,请参阅关于“易失性和并行安全标记”的说明);您可以简单地关闭 PostgreSQL 并更新其二进制文件。

跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;请参阅早期版本的发行说明了解详细信息。

CVE-2018-1115 的安装后步骤

如果您在任何 PostgreSQL 9.6 或 10 版本中安装了“adminpack”,则需要让数据库管理员在安装了“adminpack”的每个数据库中运行以下命令

ALTER EXTENSION adminpack UPDATE;

函数标记的安装后步骤

应标记为“易失”的函数

  • cursor_to_xml
  • cursor_to_xmlschema
  • query_to_xml
  • query_to_xml_and_xmlschema
  • query_to_xmlschema

应标记为“并行不安全”的函数

  • binary_upgrade_create_empty_extension,
  • brin_desummarize_range
  • brin_summarize_new_values
  • brin_summarize_range
  • cursor_to_xml
  • cursor_to_xmlschema
  • gin_clean_pending_list
  • pg_import_system_collations
  • ts_rewrite
  • ts_stat

如果您使用上述任何函数,您可以通过以下方式更新标记

选项 1:在您使用的每个数据库的“pg_proc”表中手动更新标记

这些函数。您可以通过以数据库超级用户身份执行以下命令来实现此目的

/* Functions that should be marked "volatile" */
ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xml_and_xmlschema(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xmlschema(text, boolean, boolean, text) VOLATILE;
/* Functions that should be marked "parallel-unsafe" */
ALTER FUNCTION pg_catalog.binary_upgrade_create_empty_extension(text, text, bool, text, _oid, _text, _text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_desummarize_range(regclass, bigint) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_summarize_range(regclass, bigint) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.gin_clean_pending_list(regclass) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.pg_import_system_collations(regnamespace) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_rewrite(tsquery, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_stat(text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_stat(text, text) PARALLEL UNSAFE;

选项 2:运行 pg_upgrade 到包含正确标记数据的版本(例如 10.4 及更高版本)

链接

  • 下载:https://postgresql.ac.cn/download/
  • 发行说明:https://postgresql.ac.cn/docs/current/static/release.html
  • 安全页面:https://postgresql.ac.cn/support/security/
  • 版本控制策略:https://postgresql.ac.cn/support/versioning/
  • 在 Twitter 上关注 @postgresql:https://twitter.com/postgresql