Skip to content

[mod_erlang_event] Answer net_kernel is_auth gen_calls that use an alias tag - #3234

Draft
paridin wants to merge 1 commit into
signalwire:masterfrom
paridin:mod_erlang_event-alias-is-auth
Draft

paridin wants to merge 1 commit into
signalwire:masterfrom
paridin:mod_erlang_event-alias-is-auth

Conversation

@paridin

@paridin paridin commented Oct 21, 2026

Copy link
Copy Markdown

Since OTP 24, gen:call/3 tags requests with [alias | Ref] instead of a plain reference:

{'$gen_call', {Pid, [alias | Ref]}, {is_auth, Node}}

handle_net_kernel_msg only decoded a plain reference, so it dropped the request and never replied. net_adm:ping/1 (and Elixir's Node.ping/1) toward the FreeSWITCH node then blocked forever, even though the connection and cookie were fine.

This change decodes both tag shapes and echoes the tag unchanged in the {Tag, yes} reply, which is what gen expects.

Tested on v1.11.3 (the module is unchanged on master) built against OTP 28.3.1:

  • before: net_adm:ping('freeswitch@10.77.0.20') from an OTP 28 node hangs.
  • after: pong from an erl -name probe on the same host, and Node.ping/1 returns :pong from an Elixir 1.19.5 / OTP 28 node on another host.
  • the outbound erlang dialplan app and sendmsg still work: a call handed to the remote node was answered and echoed.

…ias tag

Since OTP 24, gen:call/3 tags requests with [alias | Ref] instead of a
plain reference, so handle_net_kernel_msg failed to decode the tag and never
replied. net_adm:ping/1 (and Elixir's Node.ping/1) toward FreeSWITCH then
blocked forever. Decode both tag shapes and echo the tag unchanged in the
{Tag, yes} reply.
@paridin
paridin force-pushed the mod_erlang_event-alias-is-auth branch from 1edef9c to 12b379a Compare October 21, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant