os_mon & alarm_handler in R10B-10

Serge Aleynikov <>
Fri Mar 24 23:06:59 CET 2006


Hi,

I've been experimenting with the reworked os_mon in R10B-10, and 
encountered the following issue.

The documentation encourages to replace the default alarm handler with 
something more sophisticated.  For that reason I created a custom 
handler - lama_alarm_h (LAMA app in jungerl), which uses 
gen_event:swap_sup_handler/3.

I initiate that handler prior to starting OS_MON, and then start OS_MON.

In the latest release R10B-10, OS_MON calls alarm_handler:get_alarms/0 
upon startup.

This causes the 'alarm_handler' event manager issue a call in the 
alarm_handler.erl module.  However, since that handler was replaced by a 
custom alarm handler, the gen_event's call fails with
{error, bad_module}.

gen_event always dispatches a call/3 to a specific handler module passed 
as a parameter, e.g.:

-----[alarm_handler.erl (line: 60)]-----
get_alarms() ->
     gen_event:call(alarm_handler, alarm_handler, get_alarms).
----------------------------------------

Yet, if the alarm_handler handler was swapped by another module, the 
gen_event:call will report an error, therefore crashing OS_MON.

One way to resolve this problem would be to introduce another exported 
function in gen_event:

gen_event:call(EventMgrRef, Request) -> Result

Can the OTP team suggest some other workaround?

Serge

-- 
Serge Aleynikov
R&D Telecom, IDT Corp.
Tel: (973) 438-3436
Fax: (973) 438-1464




More information about the erlang-questions mailing list