gpt4 book ai didi

perl - "Maximal count of pending signals (120) exceeded"是什么意思?

转载 作者:行者123 更新时间:2023-12-04 11:32:00 26 4
gpt4 key购买 nike

我的 Perl Web 应用程序在 Apache mod_fastcgi 下运行,经常出现类似
下列的:

Maximal count of pending signals (120) exceeded at line 119.



我已经看到与文件上传有关的这种情况,但我不确定那是
唯一一次发生。在我收到该错误之前(或可能之后)我也得到了一个 SIGPIPE。

有什么想法吗?

编辑 谢谢大家的建议。有人问119号线是什么。抱歉,应该把它放进去。它在我对上传文件运行病毒检查程序的代码块中。我不是每次都收到错误,只是偶尔。
if(open VIRUS_CK, '|/usr/local/bin/clamscan - --no-summary >'.$tmp_file) {

print VIRUS_CK $data; // THIS IS LINE 119

close VIRUS_CK;

if (($? >> 8) == 1) {

open VIRUS_OUTPUT, '<'.$tmp_file;
my $vout = <VIRUS_OUTPUT>;
close VIRUS_OUTPUT;
$vout =~ s/^stdin:\s//;
$vout =~ s/FOUND$//;


print STDERR "virus found on upload: $vout\n";
return undef, 'could not accept attachment, virus found: '.$vout;
}
unlink($tmp_file);
}

最佳答案

这意味着操作系统向 Perl 传递信号的速度比它处理它们的速度要快,并且已经达到饱和点。在操作之间,Perl 保存要处理的信号,然后在有机会时处理它们。你得到这个错误是因为在 Perl 有机会喘口气之前接收到了太多的信号。这是一个 fatal error ,因此您的 Perl 进程终止。

解决方案是弄清楚是什么产生了如此多的信号。见 here 更多细节。

更新:我最初的回答有些不准确,说生成新的 Perl 进程是问题的一部分,而实际上并非如此。我根据下面@ysth 的评论进行了更新。

关于perl - "Maximal count of pending signals (120) exceeded"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com