Hello! On Sat, Jun 29, 2019 at 08:00:59PM +0300, Vadim A. Misbakh-Soloviov wrote:
> Поправка: оно не падает в таком положении (даже на той машине) ТОЛЬКО если > цепляться по -p (без дебага, замечу, падает. Так что странно). > > Попробовал запустить напрямую под gdb, получил такое: > > ``` > #0 0x00007ffff492d0c7 in raise () from /lib64/libc.so.6 > #1 0x00007ffff492eaf9 in abort () from /lib64/libc.so.6 > #2 0x00007ffff49242a9 in ?? () from /lib64/libc.so.6 > #3 0x00007ffff4924331 in __assert_fail () from /lib64/libc.so.6 > #4 0x00007ffff4e1d28f in S__invlist_len (invlist=0x555555ea8078) at > invlist_inline.h:49 [...] > #11 0x00007ffff4e5d0d2 in S_reg (my_perl=0x555555dd5c60, > pRExC_state=0x7fffffff8da0, paren=0, flagp=0x7fffffff8ad8, depth=1) at > regcomp.c:12088 > #12 0x00007ffff4e3ebf7 in Perl_re_op_compile (my_perl=0x555555dd5c60, > patternp=0x0, pat_count=1, expr=0x555555dee908, eng=0x7ffff532b9a0 > <PL_core_reg_engine>, old_re=0x0, is_bare_re=0x0, orig_rx_flags=0, > pm_flags=1073741824) at regcomp.c:7705 Всё это по прежнему выгядит как падение собственно перла в процессе компиляции регулярного выражения. Судя по: > #16 0x00007ffff500f64e in S_require_file (my_perl=0x555555dd5c60, > sv=0x555555b9ce10) at pp_ctl.c:4322 > #17 0x00007ffff500f7aa in Perl_pp_require (my_perl=0x555555dd5c60) at > pp_ctl.c:4346 и по: > #26 0x00007ffff500f64e in S_require_file (my_perl=0x555555dd5c60, > sv=0x555555e35038) at pp_ctl.c:4322 > #27 0x00007ffff500f7aa in Perl_pp_require (my_perl=0x555555dd5c60) at > pp_ctl.c:4346 в процессе загрузки какого-то модуля, видимо второго по вложенности. С учётом того, что при создании perl-интерпретатора nginx автоматически загружает модуль nginx - видимо, падение вызывает что-то, что подтягивается из nginx.pm. Там в свою очередь используются Exporter и XSLoader, но ничего нетривиального в них не видно. Впрочем, это может быть и что-то из site-local загрузки. Для начала, наверное, имеет смысл разобраться, что именно за регулярное выражение падает, и из какого именно файла. Ну а дальше - смотреть соответствующие коммиты/тикеты в перле, воспроизводить и так далее. Впрочем, если перл в nginx'е не используется - проще всего perl-модуль убрать из сборки и заб(ы|и)ть. [...] -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru