abrtd服务占满系统资源
abrtd服务占满系统资源
abrtd 是一个守护进程监控的应用程序崩溃.当发生崩溃时,它将收集的崩溃(核心文件的命令行, etc .)application ,并采取措施根据类型崩溃并根据 abrt.conf config 文件中的配置中.有插件的各种动作:例如 bugzilla 报表的崩溃,将该报表.通过 ftp 传输或报表或 scp .请查看手册页的相应的插件.
解决方法:systemctl restart abrtd.service
另外解决方法需要更新abrt程序 :
yum update
abrt
红帽官方解决文档:https://access.redhat.com/solutions/4082791
原文如下:
abrtd 进程占用 Red Hat Enterprise Linux 7 中 1 个内核的 100%。
SOLUTION 已验证 - 已更新 2019年九月3日21:48 原文地址
环境
- 红帽企业 Linux 7
- abrt-2.1.11-52.el7.x86_64
问题
当与应用程序相关的进程中止时,abrtd 进程会消耗 100% 的 CPU 内核并保持在该利用率级别,直到重新启动守护程序
这发生在应用程序进程收到 SIGABRT 之后,并且自 9 月 18 日以来已发生 10 次,没有设定的发生模式.
决议
- 此问题已被确定为错误,Bugzilla 票证 1655241已提交给我们的工程团队采取进一步行动。
- 此 Bugzilla 票证导致Errata RHBA-2019:2027,应该可以解决问题。
- 请将此勘误表应用于您的系统以确定这是否解决了您的问题。应用勘误表的说明包含在上面的勘误表链接中。
- 如果勘误表不能解决您的问题,请提交支持案例。
- 请注意,GUI 软件包可能依赖于勘误表中未涵盖的其他软件包,它们是相同的次要版本。如果您在应用勘误表后遇到 GUI 问题,建议您进行完整的 yum 更新。
- 作为一种解决方法,可以通过以 root 身份
abrtd
运行来重新启动该服务。systemctl restart abrtd.service
根源
- 以下提交将解决问题。
daemon: Fix double closed fd race condition
When a communication channel is set up between abrtd and abrt-server it uses
abrt_gio_channel_unix_new(). In that function there is a call g_io_channel_set_close_on_unref() [1].
This function sets whether to close a file/socket/whatever associated with the channel when channel
recieves a final unref and is to be destroyed.
Calling a close() on fd associated with the channel before/after g_io_channel_unref()
created a double close() race condition when ABRT was processing a lot of crashes at the same time.
诊断步骤
- 日志:
# abrt-cli list|grep time
time: Sun 11 Nov 2018 09:52:09 PM CST
time: Wed 19 Sep 2018 01:31:33 PM CDT
time: Tue 06 Nov 2018 07:52:11 AM CST
time: Tue 06 Nov 2018 07:52:11 AM CST
time: Tue 06 Nov 2018 07:40:57 AM CST
time: Fri 21 Sep 2018 05:15:19 PM CDT
time: Thu 20 Sep 2018 08:41:25 PM CDT
time: Thu 20 Sep 2018 08:39:42 PM CDT
time: Thu 20 Sep 2018 08:30:51 PM CDT
time: Tue 18 Sep 2018 08:13:06 AM CDT
该解决方案是红帽快速发布计划的一部分,提供了红帽工程师在为客户提供支持的同时创建的庞大解决方案库。为了让您立即获得所需的知识,这些文章可能会以未经编辑的原始形式呈现。
文章目录
关闭