Perl «Попытка перезагрузить [модуль] прервана» и другие ошибки из Module::Runtime ⇐ Apache
-
Anonymous
Perl «Попытка перезагрузить [модуль] прервана» и другие ошибки из Module::Runtime
Наше приложение Perl было перенесено на AWS и теперь выдает спорадические (но частые) ошибки следующего характера (из журналов Apache):
[Вторник, 17 октября 12:59:09.890032 2023] [:error] [pid 483971:tid 484063] [asp] [483971] [ошибка] ошибка выполнения кода для включения Dashboard.s Попытка перезагрузить DateTime/TimeZone/America/Phoenix.pm прервана. Не удалось выполнить компиляцию в строке 314 /usr/local/share/perl5/5.32/Module/Runtime.pm. ; скомпилирован в SCALAR(0x7ff614426348) в /usr/local/share/perl5/5.32/Apache/ASP/Response.pm, строка 848. , /usr/local/share/perl5/5.32/Apache/ASP.pm строка 1522 [Вторник, 17 октября, 13:00:19.781309 2023] [:error] [pid 485892:tid 485923] [asp] [485892] [ошибка] ошибка выполнения кода для включения order-unit.s: DateTime::TimeZone::America::Chicago не является именем модуля в строке 3 (eval 83). Не удалось выполнить компиляцию в строке 314 /usr/local/share/perl5/5.32/Module/Runtime.pm. ; скомпилирован в SCALAR(0x7ff638214da8) в /usr/local/share/perl5/5.32/Apache/ASP/Response.pm, строка 848. , /usr/local/share/perl5/5.32/Apache/ASP.pm строка 1522 (Разрывы строк добавлены для удобства чтения.)
Стек AWS работает
[*]Выпуск Amazon Linux 2023 г. [*]perl v5.32.1 [*]Apache::ASP v2.63
Старый (рабочий) стек
[*]Выпуск CentOS Linux 7.9.2009 [*]perl v5.16.3 [*]Apache::ASP v2.63
Любая помощь приветствуется.
Я (МНОГО) искал в Интернете информацию об этой ошибке, и большинство предложений касались дублированной установки одного и того же модуля CPAN в системных каталогах (которые находятся в пути @INC). Я это проверил. В системе установлено 4144 модуля perl, НИ ОДИН из них не дублируется (например, ни один одинаковый модуль не существует по другому пути).
Я также заметил, что большинство ошибок возникает из Module::Runtime, но сейчас я действительно работаю в темноте.
ОБНОВЛЕНИЕ: Я не уверен, актуально ли это... но мой @INC во время выполнения отличается от @INC, скомпилированного в Perl:
perl -V @ИНК: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/доля/perl5 и время выполнения:
$VAR1 = [ '/data/wwwroot/apache-lib', '/usr/local/share/perl5/5.32/', '/usr/local/share/perl5/5.32/', '/usr/local/lib64/perl5/5.32', '/usr/local/share/perl5/5.32', '/usr/lib64/perl5/vendor_perl', '/usr/share/perl5/vendor_perl', '/usr/lib64/perl5', '/usr/share/perl5', '/etc/httpd' ]; Я вижу, что /etc/httpd «может» быть добавлен Apache (не знаю почему), а «/data/www/apache-lib» добавляется нашим приложением... но где 2 дополнительных «/usr/» local/share/perl5/5.32/» взят из «Я не знаю», и я не знаю, имеет ли это вообще значение. Просто решил поделиться этим для контекста
Наше приложение Perl было перенесено на AWS и теперь выдает спорадические (но частые) ошибки следующего характера (из журналов Apache):
[Вторник, 17 октября 12:59:09.890032 2023] [:error] [pid 483971:tid 484063] [asp] [483971] [ошибка] ошибка выполнения кода для включения Dashboard.s Попытка перезагрузить DateTime/TimeZone/America/Phoenix.pm прервана. Не удалось выполнить компиляцию в строке 314 /usr/local/share/perl5/5.32/Module/Runtime.pm. ; скомпилирован в SCALAR(0x7ff614426348) в /usr/local/share/perl5/5.32/Apache/ASP/Response.pm, строка 848. , /usr/local/share/perl5/5.32/Apache/ASP.pm строка 1522 [Вторник, 17 октября, 13:00:19.781309 2023] [:error] [pid 485892:tid 485923] [asp] [485892] [ошибка] ошибка выполнения кода для включения order-unit.s: DateTime::TimeZone::America::Chicago не является именем модуля в строке 3 (eval 83). Не удалось выполнить компиляцию в строке 314 /usr/local/share/perl5/5.32/Module/Runtime.pm. ; скомпилирован в SCALAR(0x7ff638214da8) в /usr/local/share/perl5/5.32/Apache/ASP/Response.pm, строка 848. , /usr/local/share/perl5/5.32/Apache/ASP.pm строка 1522 (Разрывы строк добавлены для удобства чтения.)
Стек AWS работает
[*]Выпуск Amazon Linux 2023 г. [*]perl v5.32.1 [*]Apache::ASP v2.63
Старый (рабочий) стек
[*]Выпуск CentOS Linux 7.9.2009 [*]perl v5.16.3 [*]Apache::ASP v2.63
Любая помощь приветствуется.
Я (МНОГО) искал в Интернете информацию об этой ошибке, и большинство предложений касались дублированной установки одного и того же модуля CPAN в системных каталогах (которые находятся в пути @INC). Я это проверил. В системе установлено 4144 модуля perl, НИ ОДИН из них не дублируется (например, ни один одинаковый модуль не существует по другому пути).
Я также заметил, что большинство ошибок возникает из Module::Runtime, но сейчас я действительно работаю в темноте.
ОБНОВЛЕНИЕ: Я не уверен, актуально ли это... но мой @INC во время выполнения отличается от @INC, скомпилированного в Perl:
perl -V @ИНК: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/доля/perl5 и время выполнения:
$VAR1 = [ '/data/wwwroot/apache-lib', '/usr/local/share/perl5/5.32/', '/usr/local/share/perl5/5.32/', '/usr/local/lib64/perl5/5.32', '/usr/local/share/perl5/5.32', '/usr/lib64/perl5/vendor_perl', '/usr/share/perl5/vendor_perl', '/usr/lib64/perl5', '/usr/share/perl5', '/etc/httpd' ]; Я вижу, что /etc/httpd «может» быть добавлен Apache (не знаю почему), а «/data/www/apache-lib» добавляется нашим приложением... но где 2 дополнительных «/usr/» local/share/perl5/5.32/» взят из «Я не знаю», и я не знаю, имеет ли это вообще значение. Просто решил поделиться этим для контекста
Мобильная версия