Пустой coredump для сигнала 11

edo888 nginx-forum на forum.nginx.org
Ср Сен 21 18:31:42 UTC 2022


Здравствуйте,

Очень редко у меня в журнале ошибок появляется "worker process NNN exited on
signal 11 (core not dumped)"

Я пытаюсь создать дамп, но что бы я ни делал, он не создается или его размер
равен 0.

Я использую FreeBSD, и первое, что я попытался сделать, это разрешить nginx
создавать дампы, но независимо от того, насколько большой я установил
worker_rlimit_core, дампы не создаются. Я проверил исходный код и вижу
следующее:

/usr/include/sys/signal.h:
#define SIGSEGV 11 /* segmentation violation */

/usr/include/sys/wait.h:
#define WCOREFLAG 0200
#define _W_INT(i) (i)
#define WCOREDUMP(x) (_W_INT(x) & WCOREFLAG)

nginx/src/os/unix/ngx_process.c:
ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, "%s %P exited on signal
%d%s", process, pid, WTERMSIG(status), WCOREDUMP(status) ? " (core dumped)"
: " (core not dumped)");

Это означает, что WCOREDUMP(11) равен 0 и дамп создаваться не будет. Так что
не знаю, что мне делать.

Я также попытался включить дампы ядра через ОС, установив sysctl
kern.sugid_coredump=1 и sysctl kern.corefile=/home/coredump/%N.core.%P, а
для ulimit установлено значение unlimited. После этого я вижу, что дампы
имеют размер 0.

Можете подсказать, как включить дампы для сигнала 11?

Спасибо!

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295263,295263#msg-295263



Подробная информация о списке рассылки nginx-ru