Hello,<br><br>I am experimenting with the +R <release number> emulator flag as described in the erl man page ( <a href="http://www.erlang.org/doc/man/erl.html">http://www.erlang.org/doc/man/erl.html</a>) and I am confused about when I should be using this and also what happens if I do not use this when communicating between 2 nodes from different releases.<br>
<br><dl><dt><strong><a name="compat_rel"><span class="code">" +R ReleaseNumber</span></a></strong></dt><dd>
<p>Sets the compatibility mode.</p>
<p>The distribution mechanism is not backwards compatible by
default. This flags sets the emulator in compatibility mode
with an earlier Erlang/OTP release <span class="code">ReleaseNumber</span>.
The release number must be in the range
<span class="code"><current release>-2..<current release></span>. This
limits the emulator, making it possible for it to communicate
with Erlang nodes (as well as C- and Java nodes) running that
earlier release.</p>
<p>Note: Make sure all nodes (Erlang-, C-, and Java nodes) of
a distributed Erlang system is of the same Erlang/OTP release,
or from two different Erlang/OTP releases X and Y, where
<strong>all</strong> Y nodes have compatibility mode X."</p>
</dd></dl> This is what I am doing when setting up 2 nodes from release 13B03 and 16B. The release numbers difference is greater than 2 so I cannot use the +R flag anyway but the nodes have no problems communicating without the flag. I was expecting that the nodes would not be able to connect at all but clearly I am wrong.<br>
<br>#startup<br><br>#first node<br>erl -name node_a -setcookie x<br>Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]<br><br>Eshell V5.7.4 (abort with ^G)<br>(node_a@myhost.work)1> erlang:system_info(otp_release).<br>
"R13B03"<br><br>#second node<br>downloads/otp_src_R16B/bin/erl -name node_b -setcookie x <br>Erlang R16B (erts-5.10.1) [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]<br><br>Eshell V5.10.1 (abort with ^G)<br>
(node_b@myhost.work)1> erlang:system_info(otp_release).<br>"R16B"<br><br><br># subsequent session<br>(node_b@myhost.workl)3> net_adm:ping('node_a@myhost.work').<br>pong<br><br><br>(node_a@myhost.work)2> nodes(). <br>
['node_b@myhost.work']<br>(node_a@myhost.work)5> net_kernel:disconnect('node_b@myhost.work').<br>true<br>(node_a@myhost.work)6> nodes(). <br>[]<br>(node_a@myhost.work)7> net_adm:ping('node_b@myhost.work'). <br>
pong<br>(node_a@myhost.work)8> <br><br><br>Thank you for any help in interpreting this.<br><br>Devangana<br><br><br><br><br>