Re: Questions about "erl -epmd_start false"
Jérôme de Bretagne <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CA+kEDGGMyYUtS8bwpcGDypTLZUmX6fmrfjZJamJ1YsSNR3x2gg@mail.gmail.com> |
Hi Shino, No worries at all for the lag and thanks a lot for the explanation! Cheers, Jérôme Le mar. 12 janv. 2021 à 01:44, Shunichi Shinohara <[email protected]> a écrit : > Hi Jérôme, > > Sorry for the late reply. (new-year-holiday-lag) > > > Could you describe a case when the epmd daemon is running but you > > wouldn't want the registration to happen? In your original question, > > what is the actual issue with the node being registered when epmd is > > running? > > Our company sells a package software written in Erlang. If epmd daemon > process is unnecessary, user operation will be simpler. > # However, it makes very little difference and is not feature related. > # So, eliminating epmd is not a blocking issue but just nice-to-have. > > On the other hand, I want to keep the difference between my development > environment and users' production ones as little as possible. On my side, > epmd is almost always running (e.g. erlang_ls processes use it.) > > To satisfy both, it's great that Erlang nodes do not register themselves > even > in the case epmd is running. > > Thanks, > Shino > > 2021年1月1日(金) 0:37 Jérôme de Bretagne <[email protected]>: > >> You're welcome, Shino. >> >> Could you describe a case when the epmd daemon is running but you >> wouldn't want the registration to happen? In your original question, >> what is the actual issue with the node being registered when epmd is >> running? >> >> For anyone interested by the details, the code that triggers the >> registration (via 'register_node') is found here: >> >> https://github.com/erlang/otp/blob/master/lib/kernel/src/erl_epmd.erl#L224-L245 >> and the 'erl_epmd_port' option is used only as a fallback when >> 'do_register_node' doesn't succeed in registering with the epmd >> daemon. >> >> With the default 'inet_tcp' distribution protocol, the call to >> 'register_node' is currently mandatory in 'gen_listen' here: >> >> https://github.com/erlang/otp/blob/master/lib/kernel/src/inet_tcp_dist.erl#L93-L97 >> >> With the 'gen_tcp_dist' alternative distribution protocol example, the >> call to 'register_node' is also mandatory, this time in 'listen' here: >> >> https://github.com/erlang/otp/blob/master/lib/kernel/examples/gen_tcp_dist/src/gen_tcp_dist.erl#L86-L94 >> but it should be relatively easy to make a custom version that gives >> the priority to the 'erl_epmd_port' option if preferred. >> >> Cheers, >> Jérôme >> >> >> Le mar. 22 déc. 2020 à 04:03, Shunichi Shinohara >> <[email protected]> a écrit : >> > >> > Maybe there are anyone interested, discussion continues in github PR: >> > Document the -no_epmd option by JeromeDeBretagne · Pull Request #2945 >> · erlang/otp >> > https://github.com/erlang/otp/pull/2945 >> > >> > Thanks for the PR, Jérôme! >> > >> > ----- >> > Shino >> > >> > 2020年12月21日(月) 10:11 Shunichi Shinohara <[email protected]>: >> >> >> >> Hi Jérôme, >> >> >> >> Thanks a lot for the useful information, it works like a charm! >> >> >> >> Thanks again, >> >> Shino >> >> >> >> >> >> 2020年12月18日(金) 17:50 Jérôme de Bretagne <[email protected]>: >> >>> >> >>> Hi Shino, >> >>> >> >>> This behavior is indeed expected. >> >>> >> >>> To avoir all registrations to epmd, you can pass the -no_epmd option >> instead. >> >>> >> >>> It is mentioned in the following documentation: >> >>> https://erlang.org/doc/apps/erts/alt_dist.html >> >>> >> >>> Cheers, >> >>> Jérôme >> >>> >> >>> Le ven. 18 déc. 2020 à 03:40, Shunichi Shinohara < >> [email protected]> a écrit : >> >>>> >> >>>> Hi List, >> >>>> >> >>>> I try "epmdlessless" configuration described in: >> >>>> Running Erlang Releases without EPMD on OTP 23.1+ · Erlware Blog >> >>>> https://blog.erlware.org/epmdlessless/ >> >>>> >> >>>> It works as described, thanks to people who contributed to the >> feature! >> >>>> However, it behaves in an unexpected way (to me) under epmd daemon >> running case. >> >>>> >> >>>> Expected behavior is the case without running epmd daemon. After >> launching a node as: >> >>>> >> >>>> % erl -sname foo -start_epmd false -erl_epmd_port 14693 >> >>>> Erlang/OTP 23 [erts-11.1.4] [source] [64-bit] [smp:16:16] >> [ds:16:16:10] [async-threads:1] >> >>>> >> >>>> epmd daemon does *NOT* start, as expected: >> >>>> >> >>>> % epmd -names >> >>>> epmd: Cannot connect to local epmd >> >>>> >> >>>> On the other hand, after epmd daemon started as epmd -daemon, >> >>>> by executing the same erl command above, the node is registered to >> epmd daemon: >> >>>> >> >>>> % epmd -names >> >>>> epmd: up and running on port 4369 with data: >> >>>> name foo at port 14693 >> >>>> >> >>>> The questions are: >> >>>> - Is this behavior expected (to other than me)? >> >>>> - Is there any option(s) of erl command to avoid registration to >> epmd? >> >>>> # I guess it's possible by using >> https://github.com/tsloughter/epmdless >> >>>> >> >>>> Thanks, >> >>>> Shino >> >