瀏覽代碼

Handle ETS table count system limit

pull/4/head
Andrew Thompson 13 年之前
父節點
當前提交
157d676562
共有 2 個檔案被更改,包括 12 行新增0 行删除
  1. +2
    -0
      src/error_logger_lager_h.erl
  2. +10
    -0
      test/lager_test_backend.erl

+ 2
- 0
src/error_logger_lager_h.erl 查看文件

@ -188,6 +188,8 @@ format_reason({system_limit, [{M, F, _}|_] = Trace}) ->
"maximum number of processes exceeded";
{erlang, list_to_atom} ->
"tried to create an atom larger than 255, or maximum atom count exceeded";
{ets, new} ->
"maximum number of ETS tables exceeded";
_ ->
{Str, _} = lager_trunc_io:print(Trace, 500),
Str

+ 10
- 0
test/lager_test_backend.erl 查看文件

@ -552,6 +552,16 @@ error_logger_redirect_test_() ->
?assertEqual(Expected, lists:flatten(Msg))
end
},
{"crash report for system ets table limit",
fun() ->
error_logger:error_report(crash_report, [[{pid, self()}, {error_info, {error, {system_limit,[{ets,new,[segment_offsets,[ordered_set,public]]},{mi_segment,open_write,1},{mi_buffer_converter,handle_cast,2},{gen_server,handle_msg,5},{proc_lib,init_p_do_apply,3}]}, []}}], []]),
timer:sleep(100),
{_, _, Msg} = pop(),
Expected = lists:flatten(io_lib:format("[error] ~w CRASH REPORT Process ~w with 0 neighbours crashed with reason: system limit: maximum number of ETS tables exceeded", [self(), self()])),
?assertEqual(Expected, lists:flatten(Msg))
end
},
{"messages should not be generated if they don't satisfy the threshold",
fun() ->
lager:set_loglevel(?MODULE, error),

Loading…
取消
儲存