perl 5.26.2 падает с SIGSEGV (код выхода 139) в контейнере Ubuntu - PullRequest
1 голос
/ 23 января 2020

У меня странное perl поведение. Время от времени (несколько раз в день) происходит сбой при работе внутри контейнера ubuntu 18.04 kubernetes с SIGSEGV (exit code 139). В coredump выявляется странная ошибка, подобная приведенной ниже:

Type "apropos word" to search for commands related to "word"...
Reading symbols from /opt/mettools/bin/perl...done.
[New LWP 2218]
[New LWP 1]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `perl /opt/mettools/bin/s4p-server-http.pl -a'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI_getenv (name=0x7f34b8d9b226 "", name@entry=0x7f34b8d9b224 "TZ") at getenv.c:84
84      getenv.c: No such file or directory.
[Current thread is 1 (Thread 0x7f34b79ab700 (LWP 2218))]
(gdb) bt
#0  __GI_getenv (name=0x7f34b8d9b226 "", name@entry=0x7f34b8d9b224 "TZ") at getenv.c:84
#1  0x00007f34b8cba0db in tzset_internal (always=1) at tzset.c:378
#2  __tzset () at tzset.c:552
#3  0x00005650223b41ef in Perl_localtime64_r ()
#4  0x00005650223698c5 in Perl_pp_gmtime ()
#5  0x000056502230c5b6 in Perl_runops_standard ()
#6  0x000056502228586f in Perl_call_sv ()
#7  0x00007f34b9aba93b in S_jmpenv_run () from /opt/mettools/lib/5.26.2/x86_64-linux-thread-multi/auto/threads/threads.so
#8  0x00007f34b9abab9d in S_ithread_run () from /opt/mettools/lib/5.26.2/x86_64-linux-thread-multi/auto/threads/threads.so
#9  0x00007f34b97b86db in start_thread (arg=0x7f34b79ab700) at pthread_create.c:463
#10 0x00007f34b8d0788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

У кого-нибудь есть идеи, где искать подобные ошибки? Сценарий perl - это сервер API, работающий в контейнере. Благодаря природе kubernetes он перезапускает контейнер каждый раз, когда происходит сбой perl (5-6 сбоев в день), но, конечно, досадно видеть такую ​​систему с ошибками. :)

Система:

  • Ubuntu 18.04
  • perl 5.26.2 (из канала Anaconda Conda-Forge)
  • база модуль для сервера HTTP :: Server :: Simple :: CGI 0.52

Я не знаю, имеет ли это отношение или просто совпадение, но работает тот же docker контейнер в похожем * Инфраструктура роя 1023 * помогает увеличить срок службы контейнера до нескольких недель, а иногда и месяцев. Пожалуйста, поделитесь своими мыслями!

...