limited error_logger dump (vm crashes because of generating dump)

Max Lapshin <>
Mon Sep 20 08:53:04 CEST 2010


In fact gen_server:format_status doesn't solve the problem:

gen_server.erl:
    format("** Generic server ~p terminating \n"
           "** Last message in was ~p~n"
           "** When Server state == ~p~n"
           "** Reason for termination == ~n** ~p~n",
	   [Name, Msg, State, Reason1]),


This formatting has problems: Reason1 maybe many megabytes big when
state was big and some badmatch has met with it.
Maybe it would be better to format status (change import from
error_logger:format to error_logger_formatter:format) into
limited-size binary in the dying process and only then send data to
error_logger process. It will reduce memory consumption, lower
bottleneck-ness of one-core error_logger.

Speaking about detailed logging: in fact, it is usually interesting to
know first 10-20 lines of termination Reason and process dictionay
with each value, limited to 10-20 lines. Or 20-40. But not 400 000
lines of state dump.


More information about the erlang-questions mailing list