E.8. 版本 8.2.16 #
发行日期
2010-03-15
本次发布包含对 8.2.15 的多方面修复。有关 8.2 大版本中新特性的信息,请参见第 E.24 节。.
E.8.1. 迁移到版本 8.2.16
对于运行 8.2.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 8.2.14 的版本升级,请参阅 8.2.14 的发布说明。
E.8.2. 变更
新增配置参数
ssl_renegotiation_limit,控制对 SSL 连接进行会话密钥重协商的频率(Magnus)可以把它设为零以完全禁用重协商,这在使用有缺陷的 SSL 库时可能是必需的。特别是,某些厂商发布的 CVE-2009-3555 临时补丁会导致重协商尝试失败。
修复后端启动期间可能的死锁(Tom)
修复因未干净地处理 relcache 重载期间的错误而可能的崩溃(Tom)
修复试图从子事务启动失败中恢复时可能的崩溃(Tom)
修复与使用保存点以及客户端编码不同于服务器编码相关的服务器内存泄漏(Tom)
修复 GIST 索引页分裂的恢复结束清理期间发出的不正确 WAL 数据(Yoichi Hirai)
如果在完成未完成的 GIST 插入之后、在恢复结束清理期间崩溃,这会导致索引损坏,或者更可能在 WAL 重放期间出错。
让
bit类型的substring()把任何负长度都视为“字符串的其余全部”(Tom)以前的编码只对 -1 这样处理,对其他负值会产生无效的结果值,可能导致崩溃(CVE-2010-0442)。
修复整数到位串的转换:当输出位宽比给定整数宽出非 8 位倍数时,正确处理第一个小数字节(Tom Lane)
修复若干病态缓慢的正则表达式匹配情形(Tom)
修复备份历史文件中的
STOP WAL LOCATION条目:当结束位置恰好位于段边界时报告下一个 WAL 段的名称(Itagaki Takahiro)修复更多临时文件泄漏的情形(Heikki)
这纠正了上一个小版本中引入的问题。失败的一种情形是返回集合的 plpgsql 函数在另一个函数的异常处理器中被调用。
改进布尔变量情形的约束排除处理,特别是使排除带有 “bool_column = false” 约束的分区成为可能(Tom)
读取
pg_hba.conf及相关文件时,如果@出现在引号内,不要把@something当作文件包含请求;另外,永远不要把单独的@当作文件包含请求(Tom)这防止了角色名或数据库名以
@开头时的古怪行为。如果需要包含路径名包含空格的文件,仍然可以做到,但必须写@"/path to/file"而不是把引号放在整个构造之外。防止在某些平台上把目录命名为
pg_hba.conf及相关文件中的包含目标时出现无限循环(Tom)修复
SSL_read或SSL_write失败而未设置errno时可能的无限循环(Tom)据报道这在某些 Windows 版本的 openssl 上可能发生。
修复 psql 的
numericlocale选项,使其不在 latex 和 troff 输出格式中格式化不应格式化的字符串(Heikki)当同时指定
ON_ERROR_STOP和--single-transaction且隐含的COMMIT期间发生错误时,让 psql 返回正确的退出状态(3)(Bruce)修复组合列被设为 NULL 的一种情形下 plpgsql 的失败(Tom)
修复从 PL/PerlU 调用 PL/Perl 函数或相反时可能的失败(Tim Bunce)
在 PL/Python 中添加
volatile标记,以避免可能的编译器特定错误行为(Zdenek Kotala)确保 PL/Tcl 完全初始化 Tcl 解释器(Tom)
此疏漏唯一已知的症状是使用 Tcl 8.5 或更高版本时 Tcl 的
clock命令行为异常。防止在向
dblink_build_sql_*函数指定过多键列时contrib/dblink崩溃(Rushabh Lathia、Joe Conway)修复
contrib/xml2中因草率内存管理导致的若干崩溃(Tom)让
contrib/xml2在 Windows 上的构建更健壮(Andrew)修复 Windows 信号处理中的竞态条件(Radu Ilie)
此缺陷的一个已知症状是
pg_listener中的行可能在重负载下被丢弃。把时区数据文件更新为 tzdata 版本 2010e for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa。