5.2. 程序错误修复
这部分论述了 Red Hat Enterprise Linux 8.0 中修复的错误,它们对用户有严重影响。
5.2.1. Desktop
PackageKit 现在可在 rpm 软件包上运行
在这个版本中,在 rpm
软件包上操作的支持已添加到 PackageKit 中。
(BZ#1559414)
5.2.2. 图形基础结构
QEMU 无法正确处理 8 字节 ggtt
条目
QEMU 有时会将一个 8 字节的 ggtt
条目写入到两个连续的 4 字节写入操作中。这些部分写入各自可能会触发单独的主机 ggtt
写入。有时,两个 ggtt
写被错误地合并。因此,转换到机器地址会失败,并会出现错误日志。
(BZ#1598776)
5.2.3. 身份管理
企业安全客户端使用 opensc
库进行令牌检测
Red Hat Enterprise Linux 8.0 仅支持用于智能卡的 opensc
库。有了此更新,企业安全客户端(ESC)使用 opensc
而不是删除的 coolkey
库进行令牌检测。因此,应用程序可以正确地检测到支持的令牌。
(BZ#1538645)
证书系统现在支持轮转调试日志
在以前的版本中,证书系统使用自定义日志记录框架,它不支持日志轮转。因此,调试日志(如 /var/log/pki/instance_name/ca/debug
)无限增长。在这个版本中,证书系统使用 java.logging.util
框架,它支持日志轮转。因此,您可以在 /var/lib/pki/instance_name/conf/logging.properties
文件中配置日志轮转。
有关日志轮转的更多信息,请参阅 java.util.logging
软件包的文档。
(BZ#1565073)
证书系统不再记录服务启动时 SetAllPropertiesRule
操作警告
在以前的版本中,当服务启动时,证书系统会在 /var/log/messages
日志文件中记录 SetAllPropertiesRule
操作的警告信息。这个问题已被解决,上面提到的警告不再被记录。
(BZ#1424966)
证书系统 KRA 客户端正确地解析 Key Request
响应
在以前的版本中,证书系统切换到新的 JSON 库。因此,某些对象的序列化会有所不同,Python 密钥恢复颁发机构(KRA)客户端无法解析 Key Request
响应。客户端已被修改,以支持使用旧和新的 JSON 库的响应。因此,Python KRA 客户端会正确解析 密钥请求
响应。
(BZ#1623444)
5.2.4. 编译器和开发工具
GCC 不再针对出站访问产生假的正警告
在以前的版本中,当使用 -O3
优化级别选项编译时,GNU Compiler Collection(GCC)偶尔会返回有关出站访问的假警告,即使编译的代码没有包含它。这个优化已被修复,GCC 不再显示假的正警告。
(BZ#1246444)
ltrace
可正确显示大型结构
在以前的版本中,ltrace
工具无法正确打印函数返回的大型结构。ltrace
中大型结构的处理已得到改进,它们现在可以正确打印。
(BZ#1584322)
GCC 内置功能 __builtin_clz
在 IBM Z 上返回正确的值
在以前的版本中,GCC 编译器错误地折叠 IBM Z 架构的 FLOGR
指令。因此,使用这个指令的 __builtin_clz
功能可能会在使用 -funroll-loops
GCC 选项编译代码时返回错误的结果。这个程序错误已被解决,这个功能现在提供了正确的结果。
(BZ#1652016)
GDB 在批处理模式中的最后一个命令失败时提供非零退出状态
在以前的版本中,在以批处理模式运行时,GDB 始终以状态 0
退出,无论命令中出现什么错误。因此,无法确定命令是否成功。这个行为已被更改,GDB 现在会在上一命令发生错误时退出状态 1
。这样可保持与之前执行所有命令的行为的兼容性。因此,现在可以确定 GDB 批处理模式是否成功执行。
(BZ#1491128)
5.2.5. 文件系统和存储
更高的打印级别不再导致 iscsiadm
意外终止
在以前的版本中,当用户使用 --print
或 -P
选项指定大于 0 的打印级别时,iscsiadm
程序会意外终止。这个问题已被解决,所有打印级别现在都可以正常工作。
(BZ#1582099)
当 multipathd
无法获取路径的 WWID 时,它不再禁用该路径
在以前的版本中,multipathd
服务会把一个路径的 WWID 视为获得空 WWID 的失败尝试。如果 multipathd
无法获取路径的 WWID,有时会禁用该路径。
在这个版本中,如果在检查是否改变时无法获取 WWID,则 multipathd
会继续使用旧的 WWID。
因此,当当检查 WWID 是否已更改时,当 multipathd
不能得到 WWID 时,它不再禁用路径。
5.2.6. 高可用性和集群
新的 /etc/sysconfig/pcsd
选项拒绝客户端发起的 SSL/TLS 重新协商
当在服务器上启用 TLS 重新协商时,客户端可以发送重新协商请求,该请求将启动新的握手。握手的计算要求在服务器上高于客户端。这使得服务器易受 DoS 攻击。在这个版本中,/etc/sysconfig/pcsd
配置文件中设置 PCSD_SSL_OPTIONS
会接受 OP_NO_RENEGOTIATION
选项来拒绝重新协商。请注意,客户端仍然可以打开多个与在所有服务器中执行握手的服务器的连接。
(BZ#1566430)
删除的集群节点不再显示在集群状态中
在以前的版本中,当使用 pcs cluster node remove
命令删除一个节点时,删除的节点会在 pcs status
显示的输出中保持可见。在这个版本中,删除的节点不再显示在集群状态中。
(BZ#1595829)
现在可以使用更新的首选参数名称或已弃用的参数名称来配置隔离代理
大量隔离代理参数已被重命名,而旧参数名称仍被支持为已弃用。在以前的版本中,pcs
无法设置新参数,除非与 --force
选项一同使用。在这个版本中,pc s
现在支持重命名的隔离代理参数,同时保持对已弃用参数的支持。
(BZ#1436217)
pcs
命令现在可以正确地读取集群的 XML 状态。
pcs
命令以 XML 格式运行 crm_mon
实用程序来获取群集的状态。crm_mon
实用程序将 XML 打印到标准输出,并将警告打印到标准错误输出。以前,pcs
将 XML 和警告混合到一个流中,无法将其作为 XML 解析。在这个版本中,标准和错误输出在 pcs
中分离,并读取集群的 XML 状态可以正常工作。
(BZ#1578955)
在从现有集群创建新集群时,用户不再建议销毁集群
在以前的版本中,当用户在运行 pcs cluster setup
命令时指定现有集群中的节点或者使用 pcsd
Web UI 创建集群时,pcs 将其报告为一个错误,并建议用户销毁节点上的集群。因此,用户会销毁节点上的集群,破坏节点所属的集群节点,因为剩余的节点仍会将销毁的节点视为集群的一部分。在这个版本中,建议用户从其集群中删除节点,从而更好地通知他们如何在不中断集群的情况下解决问题。
(BZ#1596050)
pcs
命令不再以交互方式请求凭证
当非 root 用户运行需要 root 权限的 pcs
命令时,pcs
会连接到本地运行的 pcsd
守护进程,并将命令传给它,因为 pcsd
守护进程使用 root 权限来运行,所以可以运行该命令。在以前的版本中,如果用户没有认证到本地 pcsd
守护进程,则 pcs
会要求输入用户名和密码。这给用户造成混淆,要求在运行 pcs
的脚本中进行特殊处理。在这个版本中,如果用户未通过身份验证,则 pcs
退出并显示应执行的操作: 无论是以 root 身份运行 pcs
,还是使用新的 pcs client local-auth
命令进行身份验证。因此,pcs
命令不会以互动方式询问凭证,改进用户体验。
(BZ#1554310)
现在,当 crypto-policies
被设置为 FUTURE
时,pcsd
守护进程会使用其默认自生成的 SSL 证书启动。
FUTURE
的 crypto-policies
设置需要 SSL 证书中的 RSA 密钥至少为 3072b 长。在以前的版本中,当设置了此策略时,pcsd
守护进程不会启动,因为它使用 2048b 密钥生成 SSL 证书。有了这个更新,pcsd
自生成的 SSL 证书的密钥大小已增加到 3072b,并且 pcsd
现在使用其默认自生成的 SSL 证书启动。
(BZ#1638852)
pcsd
服务现在在网络就绪时启动
在以前的版本中,当用户配置了 pcsd
来绑定到特定 IP 地址,且当 pcsd
试图启动时,地址在启动过程中未准备好,则 pcsd
无法启动,需要手动干预来启动 pcsd
。有了此修复,pcsd.service
依赖于 network-online.target
。因此,当网络就绪且可绑定到 IP 地址时,pcsd
可以启动。
(BZ#1640477)
5.2.7. 网络
glib-networking
不再允许弱 TLS 算法
在以前的版本中,glib-networking
软件包与 RHEL 8 系统范围的 Crypto 策略不兼容。因此,使用 glib
库进行联网的应用程序可能会允许使用较弱算法的传输层安全(TLS)连接。有了此更新,会应用系统范围的加密策略,现在为网络使用 glib
的应用程序只允许按照策略可接受的 TLS 连接。
(BZ#1640534)
5.2.8. 安全性
SELinux 策略现在允许 iscsiuio
进程连接到发现门户
在以前的版本中,对于 iscsiuio
进程,SELinux 策略的限制太强,这些进程无法使用 mmap
系统调用访问 /dev/uio*
设备。因此,到发现门户的连接会失败。此更新在 SELinux 策略中添加了缺少的规则,在上述场景中,iscsiuio
进程可以按预期正常工作。
(BZ#1626446)
5.2.9. 订阅管理
dnf
和 yum
现在无论 subscription-manager
值都可以访问存储库
在以前的版本中,dnf
或 yum
命令会忽略 subscription-manager 服务添加的 URL 中的 https://
前缀。更新的 dnf
或 yum
命令不会忽略无效的 https://
URL。因此,dnf
和 yum
无法访问存储库。为解决这个问题,新的配置变量 proxy_scheme
已添加到 /etc/rhsm/rhsm.conf
文件中,其值可以设置为 http
或 https
。如果没有指定值,subscription-manager 会使用更常用的默认值设置 http
。
请注意,如果代理使用 http
,大多数用户不应更改 /etc/rhsm/rhsm.conf
中的配置中的任何内容。如果代理使用 https
,用户应将 proxy_scheme
的值更新为 https
。然后,在这两种情况下,用户都需要运行 subscription-manager repos --list
命令,或等待 rhsmcertd
守护进程进程正确重新生成 /etc/yum.repos.d/redhat.repo
。
5.2.10. 虚拟化
在 Azure 上挂载临时磁盘现在可以更可靠
在以前的版本中,如果虚拟机"停止(取消分配)",然后启动,在 Microsoft Azure 平台上运行的虚拟机(VM)中挂载临时磁盘会失败。在这个版本中,在上述情况下可以正确处理磁盘重新连接,这可防止问题的发生。
(BZ#1615599)