I think it is because the process generated in rpc:multicall exited with the reason normal.
When two processes are linked, if one of them exits with the reason normal, the other one without trap_exit won't exist.
And when process_flag(trap_exit, true)
is not commented, in the source code of gen_server.erl, we can see this:
346 decode_msg(Msg, Parent, Name, State, Mod, Time, Debug, Hib) ->
347 case Msg of
348 {system, From, Req} ->
349 sys:handle_system_msg(Req, From, Parent, ?MODULE, Debug,
350 [Name, State, Mod, Time], Hib);
351 {'EXIT', Parent, Reason} ->
352 terminate(Reason, Name, Msg, Mod, State, Debug);
Gen_server will terminate automatically as long as its parent (The process which generates the gen_server) exits.