Elixir / erlang IO memory leak / deadlock

Hi! I have a problem with one my web project. Sometimes in peak hours my application hangs, not writing log files and seems do nothing. In first time I suggested what VM is dead / halted for some reason, but it still works in that cases but do nothing ( and no logs! ). I used debug tool ( https://github.com/utkarshkukreti/ex_top ) to connect to my erlang node in this moment and see this ( screenshot ).

You see, there are multiple :io.execute_request/2 calls what are not executed , just accumulate incoming messages to queue ( and do nothing! )
Any suggestions what it is and how to fix it?

3 Likes

your user process is bottlenecked, remember process message queue is sequential

4 Likes

user process is standart_io process, the process, which should print logs to standart io, and it is somehow overloaded or misbehaving. (Note, that :io.execute_request send message to user process and waiting for answer).

You should try to trace, where your user process hanging or overloaded. Or, to think about to switch from standart io logging to file/journal/something logging.