随机故障开始 clamav-milter [补丁]
作者: tlhackque创建于 2022年12月27日更新于 2026年8月30日
描述错误------------------clamav-milter 启动时似乎出现了随机故障;启动时卡死。clamav 0.103.7,但这是一个长期存在的问题。如何重现问题----------------------------不幸的是,这很难。我碰巧将 clamav-milter 移动到一台机器上,时间使其 100% 可重现;以前的故障非常罕见。这些问题取决于时间和环境。 - daemonize_parent_wait() 进行分叉,然后设置信号处理程序,以便子进程可以发送初始化完成的信号。如果子进程首先发送了信号,父进程(通常)会由于未处理的信号而退出,而不是按计划等待。 - 更糟的是,daemonize_signal_parent() 在发送完整信号之前放弃权限。现在,权限被剥夺的子进程尝试向仍然具有权限的父进程发送信号,而 kill() 将会默默失败。在这种情况下,父进程将永远卡死。 - 最后,如果子进程没有退出,而是在父进程等待时因信号而死亡,父进程中的调用者将不会收到错误返回,事情就会变得奇怪。附件------------------milter-hang.patch
内容来源: Cisco-Talos/clamav