Я бегу ejabberd, и каждый так часто он падает. Чтобы понять, почему он разбился, я знаю, что нужно посмотреть в файле erl_crash.dump. Проблема в том, что файл erl_crash.dump не выглядит. Однако есть файл дампа ядра. Загрузка его в БГД и работает «BT полные,» здесь являются две верхние рамы:Erlang: No Crash Dump
(gdb) bt full
#0 0x000000000054df83 in prepare_crash_dump (secs=<optimized out>) at sys/unix/sys.c:735
max = <optimized out>
env = "\005", '\000' <repeats 15 times>"\200, \373!ڴ"
heart_port = 0x7fb46f31eab0
hp = 0x7fb4d6efb938
heart_fd = {865035, -1}
has_heart = 0
i = <optimized out>
envsz = <optimized out>
heap = {4460060, 140412855877120, 1}
list = 18446744073709551611
#1 erts_sys_prepare_crash_dump (secs=<optimized out>) at sys/unix/sys.c:780
Таким образом, оказывается, что он разбился, пока он пытался написать аварийный дамп, но не получил всю дорогу , Я провел некоторое исследование, и это звучит очень похоже на проблему, которая была опубликована ранее (https://groups.google.com/forum/#!msg/erlang-programming/XH2Uly6hsLY/aeR2Yx2UkZMJ). Сердце не было включено в командной строке, что означает, что это не должно быть проблемой, но ... в дампе ядра, heart_port устанавливается на что-то ненулевое. Это должно означать, что сердце где-то скрывается, не так ли? Если да, есть ли способ рассказать сердце действительно не работает?
Вы пытались установить значение ERL_CRASH_DUMP_SECONDS env var на высокое значение? Или -1? – Isac
Да, забыл упомянуть. Я установил его до 300, что кажется, что он должен быть достаточно длинным. –