Здравствуйте,
Очень редко у меня в журнале ошибок появляется "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?
Спасибо!