[erlang-questions] Timeouts: gen_server:call or multi_call, and erlang:monitor

Scott Lystig Fritchie <>
Fri Mar 2 22:46:05 CET 2007


Good afternoon, all.  I've found something odd regarding timeout
handling with gen_server:call and gen_server:multi_call.  There are
cases where:

    gen_server:call({some_server, }, some_term, 1000)

... can take much longer than 1000 milliseconds before timing out.

It looks like the problem is erlang:monitor/2.  If I suspend the
'' VM with control-Z, I can see this behavior(*):

  ()47> timer:tc(erlang, monitor, [process,{foo_srvr,''}]).
  {7005921,#Ref<0.0.0.2791>}

(That's using R11B-3, with whatever default value is for -kernel
net_ticktime (60 seconds?).)

Has anyone had a little/big problem with this kind of timeout?  The
control-Z suspension is quite harsh, but it does a not-too-bad job of
simulating an alive-but-very-slow remote node.

-Scott

(*) In a tiny amount of experimenting, erlang:monitor(process, Pid)
when is_pid(Pid) == true shows the same 7 second delay.



More information about the erlang-questions mailing list