processone / ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
https://www.process-one.net/en/ejabberd/
Other
6k stars 1.5k forks source link

swap_handler fails #4233

Open list-processing opened 3 weeks ago

list-processing commented 3 weeks ago

Environment

Bug description

https://github.com/processone/ejabberd/blob/master/src/ejabberd_system_monitor.erl#L62

this line just successfully deletes the {alarm_handler, swap} , but fails to adds {?MODULE, []} .

{error,
             {'EXIT',
                 {function_clause,
                     [{ejabberd_system_monitor,init,
                          [{[],{alarm_handler,[]}}],
                          [{file,"src/ejabberd_system_monitor.erl"},
                           {line,86}]},
                      {gen_event,server_add_handler,4,
                          [{file,"gen_event.erl"},{line,710}]},
                      {gen_event,server_swap_handler,6,
                          [{file,"gen_event.erl"},{line,754}]},
                      {gen_event,handle_msg,6,
                          [{file,"gen_event.erl"},{line,565}]},
                      {proc_lib,init_p_do_apply,3,
                          [{file,"proc_lib.erl"},{line,241}]}]}}}

why not use gen_event:delete_handler/3?