mod_perl2 случайно терпит неудачу при интенсивном использовании, не восстанавливается - PullRequest
0 голосов
/ 04 октября 2018

На новом сервере Ubuntu наша система Apache2 mod_perl2 случайно выходит из строя, когда подключается более 8 клиентов.После сбоя он не восстанавливается - все дальнейшие действия быстрого CGI завершаются неудачно, и Apache должен быть перезапущен.Ошибка очень своеобразна: она говорит, что в стандартных модулях Perl есть синтаксические ошибки, которые он пытается перезагрузить.Очевидно, что это неправильно, так как он уже загружал их много раз раньше, и это стандартные модули Perl.

Вот трассировка стека Perl, которую мы получаем:

    [Thu Oct 04 18:33:09.222314 2018] [perl:error] [pid 11191:tid 139899223140096] [client 10.100.1.61:38632] failed to resolve handler `Che\
mAxonServer': syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 65, near "croak "usage: $class->new()""
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 73, near "croak "usage: $class->new_from_fd(FD, MODE)""
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 99, near "croak "IO::Handle: bad open mode: $mode""
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 104, near "croak 'usage: $io->fdopen(FD, MODE)'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 123, near "croak 'usage: $io->close()'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 137, near "croak 'usage: $io->opened()'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 142, near "croak 'usage: $io->fileno()'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 147, near "croak 'usage: $io->getc()'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 152, near "croak 'usage: $io->eof()'"
syntax error at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm line 157, near "croak 'usage: $io->print(ARGS)'"
/usr/lib/x86_64-linux-gnu/perl/5.22/IO/Handle.pm has too many errors.
Compilation failed in require at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Seekable.pm line 9.
BEGIN failed--compilation aborted at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/Seekable.pm line 9.
Compilation failed in require at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/File.pm line 11.
BEGIN failed--compilation aborted at /usr/lib/x86_64-linux-gnu/perl/5.22/IO/File.pm line 11.
Compilation failed in require at /usr/share/perl/5.22/IO/Compress/Base.pm line 11.
BEGIN failed--compilation aborted at /usr/share/perl/5.22/IO/Compress/Base.pm line 11.
Compilation failed in require at /usr/share/perl/5.22/IO/Compress/RawDeflate.pm line 9.
BEGIN failed--compilation aborted at /usr/share/perl/5.22/IO/Compress/RawDeflate.pm line 9.
Compilation failed in require at /usr/share/perl/5.22/IO/Compress/Gzip.pm line 11.
BEGIN failed--compilation aborted at /usr/share/perl/5.22/IO/Compress/Gzip.pm line 11.
Compilation failed in require at /emi/src/trunk/public_html_chemaxon/fcgi/ChemAxonServer.pm line 29.
BEGIN failed--compilation aborted at /emi/src/trunk/public_html_chemaxon/fcgi/ChemAxonServer.pm line 29.
Compilation failed in require at (eval 3) line 2.

Дальнейшие попытки использовать системуприводят к повторяющимся ошибкам, например:

[Thu Oct 04 18:33:09.514512 2018] [perl:error] [pid 11191:tid 139899072071424] [client 10.100.1.61:38686] failed to resolve handler `ChemAxonServer': Attempt to reload ChemAxonServer.pm aborted.\nCompilation failed in require at (eval 9) line 2.\n

Насколько мы можем судить, между старым и новым серверами нет существенных различий:

Ubuntu 14.04 Apache 2.4.18

Я могу только догадываться, что он достигает некоторого ограничения ресурсов, такого как память или файлы, и как только это происходит, он не может перекомпилировать модули и предполагает, что сообщение об ошибке компилятора является реальным, когда на самом деле компилятор обращается к ресурсупредел.Но это всего лишь предположение.

Спасибо, Крейг

...