我有一個坐在循環中並接收命令的進程。Erlang接收***警告***
receive
increase ->
...
decrease ->
...
after 5000 ->
...
end
但是當我用數以千計的信息轟炸它時,它會發生故障並接收到這些警告。
警告消息:
***WARNING*** Unexp msg {<0.106.0>,rec_acked}, info {running,
[{'_UserConnections',20}],
{ieval,3994,34,log,
clientLogging,
[20],
false}}
反正是有來處理呢?它是否會導致任何問題?
謝謝你的回答!
你可以嘗試創建一個減少的測試用例來觸發這個警告呢?這是我能找到這個確切警告的唯一實例:https://github.com/erlang/otp/blob/770454f0a32fbc0714c6762ed3e4d761b799814f/lib/debugger/src/dbg_icmd.erl#L225-L226。不知道爲什麼該進程正在接收'rec_acked'消息。 – Dogbert
如果大約1000多個進程發送消息給1個PID(循環),就會發生這種情況。 – Mike5050
必須有一些額外的條件觸發這一點。我從2000年產生的進程中發送2000條消息到一個進程,並且沒有警告消息(總共400萬條消息)。 Erlang VM當前使用500MB以上的RAM,因爲主進程沒有處理任何消息。 – Dogbert