#erlang #error-logging #sasl
#erlang #регистрация ошибок #sasl
Вопрос:
Является ли поле сообщений в отчете о сбое sasl текущим содержимым почтового ящика сообщений, то есть неотчитанных сообщений?
Или это история сообщений, последние полученные сообщения?
Если в нем отображаются полученные сообщения, в каком порядке они отображаются?
=CRASH REPORT==== 8-May-2011::09:00:38 ===
crasher:
initial call: most_msgs:-connect/4-fun-0-/0
pid: <0.181.0>
registered_name: []
exception exit: {tx_succ_timeout,mcm}
in function most_msgs:wait_tx_succ/4
ancestors: [<0.178.0>,<0.177.0>,<0.175.0>,<0.174.0>,<0.173.0>,<0.172.0>]
messages: [{send,{most_mcm,{most_fdh,mcm,undefined,undefined,968,6,255},
80,set,undefined,undefined,
<<244,239,62,2>>}},
{recv,{most_icm,768,status,<<2>>}},
{recv,{most_fifo_status,mcm,0,net_off,1}},
{send,{most_mcm,{most_fdh,mcm,undefined,undefined,968,6,255},
80,set,undefined,undefined,
<<244,223,62,128>>}},
Комментарии:
1. используйте это «erlang:process_info(list_to_pid(PID),message_queue_len).» во время выполнения, чтобы проверить, не перегружается ли почтовый ящик неполученными сообщениями.. Я думаю, что это было содержимое почтового ящика до сбоя.
Ответ №1:
http://www.erlang.org/doc/man/erlang.html#process_info-2
{сообщения, MessageQueue}
MessageQueue — это список сообщений процессу, которые еще не были обработаны.
Большая часть информации поступает из process_info (библиотека /stdlib/src/proc_lib.erl). Однако не уверен в порядке сообщений.
Ответ №2:
это сообщения в очереди сообщений на момент сбоя процесса.
Комментарии:
1. Есть какие-либо ссылки? У меня тоже есть догадка, но я не нашел документально подтвержденного, как это на самом деле.
2. Только опыт и логика, поскольку на самом деле это не может быть ничем другим. Была бы серьезная нагрузка на память, если бы обработанные сообщения сохранялись для всех процессов.