5.8. 编译器和开发工具


glibc getenv 函数提供一个有限的线程安全形式

glibc getenv 函数不是线程安全。在以前的版本中,如果应用程序仍然调用函数 getenv,setenv,unsetenv,putenv, 和 clearenv 同时,则它们可能会意外终止或 getenv 可能会返回不正确的值。在这个版本中,getenv 功能提供有限的线程安全形式。因此,如果应用程序同时调用功能,应用程序不再崩溃。另外,getenv 只返回使用 setenv 或在程序开始时存在的环境值,只有在有可能有未排序的 unsetenv 调用时才会将之前设置的环境变量报告为未排序。

如果您直接修改 environ 数组,则此修复不适用。

Jira:RHEL-67692

pcp 软件包现在为 /var/lib/pcp/config/pmie/config.default 文件设置正确的所有者和组

在以前的版本中,如果您首次安装 pcp 软件包,软件包安装进程会错误地将 /var/lib/pcp/config/pmie/config.default 文件的所有权设置为 root:root。因此,pmie 服务无法启动,因为此服务执行的 pmieconf 工具对此文件需要 pcp:pcp 所有权。当服务无法启动时,它会在 /var/log/pcp/pmie/pmie_check.log 文件中记录以下错误:

Warning: no write access to pmieconf file "/var/lib/pcp/config/pmie/config.default", skip reconfiguration
Copy to Clipboard Toggle word wrap

有了此更新,pcp 软件包在第一次安装过程中为 /var/lib/pcp/config/pmie/config.default 文件设置正确的所有权,并在现有安装中修复它。因此,pmie 服务可以正确启动。

Jira:RHEL-59366

pcp-xsos 提供系统的快速摘要

Performance Co-Pilot (PCP)工具包中大量的可配置的组件意味着您通常使用几个不同的工具来了解系统性能。当您处理大型的压缩时间序列数据卷时,这些工具中的很多需要额外的处理时间。这个增强在 PCP 中添加了 pcp-xsos 工具。这个工具可以对 PCP 归档中的单个时间点执行快速、高级的分析。因此,pcp-xsos 可帮助您深入了解高级的性能问题,并确定进一步的目标性能分析任务。

Jira:RHEL-30590[1]

iconv 原位转换不再导致输出损坏

iconv 工具可以将转换的输出写到同一文件中。在以前的版本中,当执行一个原位转换且源文件超过特定大小时,iconv 会在处理完成之前覆盖该文件。因此,文件损坏了。有了此更新,如果源文件和输出文件是同一个文件,工具会创建一个临时文件,并在转换完成后覆盖源文件。因此,原位升级转换不再导致文件损坏。

Jira:RHEL-1915

glibc stub 解析器和 getaddrinfo() API 调用中的改进

在以前的版本中,glibc stub 解析器和 getaddrinfo() API 调用可能会在以下情况中导致比预期长的延迟:

  • 服务器无法访问。
  • 服务器拒绝查询。
  • 带查询的网络数据包丢失。

有了此更新,失败情况下的延迟减少了,并添加了一个新的解析器选项 RES_STRICTERR。使用此选项时,getaddrinfo() API 调用报告更多的 DNS 错误。另外,您现在可以在配置文件中使用带有 - 负前缀的选项。

Jira:RHEL-50662[1]

glibc exit 函数不再在同时调用时崩溃

在以前的版本中,对 exit 函数的同时调用和使用同时 <stdio.h> 流操作调用这个函数不同步。因此,如果在多线程应用程序中发生并发 exit 函数调用,应用程序可能会意外终止,数据流可能会被破坏。有了此更新,在清除它们时 exit 会锁住 <stdio.h> 流,同时调用 exit,并且 fast_exit 选择一个调用继续。因此,在这种情况下应用程序不再崩溃。

作为修复的结果,对 <stdio.h> 流执行阻止读操作的应用程序,如 getchar 函数,或者有一个使用 flockfile 函数的锁住的流无法退出,直到读操作返回或锁被释放为止。POSIX 标准需要此类阻止。

Jira:RHEL-65358[1]

glibc 中实现 POSIX 线程条件变量以唤醒等待的线程得到了改善

在以前的版本中,POSIX 线程条件变量实现中的一个缺陷可能会允许 pthread_signal() API 调用无法唤醒等待的线程。因此,线程可能会无限期等待下一个信号或广播。有了此 bug 修复,POSIX 线程条件变量的实现现在包含一个相对于序列的算法,以避免丢失的信号条件,并为正确唤醒等待的线程提供更强的保障。

Jira:RHEL-2419

在重新使用删除的 TCP 套接字时,Boost.Asio 不再显示异常

在以前的版本中,如果应用程序使用 Boost.Asio 库并重复使用一个删除的 TCP 套接字,应用程序会失败并显示 bad_executor 异常。此更新修复了这个问题,Boost.Asio 库不再在上述场景中失败。

Jira:RHEL-67973[1]

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat