diff options
author | Sverker Eriksson <[email protected]> | 2017-11-23 15:05:34 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2017-11-23 15:05:34 +0100 |
commit | 8ed0d75c186d9da24bd6cfb85732487b17a3b054 (patch) | |
tree | f458c4ef6fc080fe9859834cabe3e49d40da9908 /lib/kernel | |
parent | a5aaba7c9a316327940d0b861dd300d59aa99209 (diff) | |
download | otp-8ed0d75c186d9da24bd6cfb85732487b17a3b054.tar.gz otp-8ed0d75c186d9da24bd6cfb85732487b17a3b054.tar.bz2 otp-8ed0d75c186d9da24bd6cfb85732487b17a3b054.zip |
erts: Fix erlang:monitor toward c-nodes
by suppressing DOP_MONITOR_P, DOP_MONITOR_P_EXIT and DOP_DEMONITOR_P
if not supported by the remote node.
In 17e198d6ee60f7dec9abfed272cf4226aea44535
I changed the behavior of erlang:monitor
to not raise badarg for c-nodes but instead create
a monitor to only supervise the connection.
But I forgot to prevent DOP_MONITOR_P and friends from being
sent to the node that does not expect them.
Note: We test both DFLAG_DIST_MONITOR and DFLAG_DIST_MONITOR_NAME
for the node to support process monitoring. This is because
erl_interface is buggy as it sets DFLAG_DIST_MONITOR without
really supporting it.
ToDo: Should erl_interface stop setting DFLAG_DIST_MONITOR
or should we change the meaning of these flags?
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/test/erl_distribution_wb_SUITE.erl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/kernel/test/erl_distribution_wb_SUITE.erl b/lib/kernel/test/erl_distribution_wb_SUITE.erl index 1145d30e5e..8256444bdc 100644 --- a/lib/kernel/test/erl_distribution_wb_SUITE.erl +++ b/lib/kernel/test/erl_distribution_wb_SUITE.erl @@ -677,6 +677,8 @@ build_rex_message(Cookie,OurName) -> %% Receive a distribution message recv_message(Socket) -> case gen_tcp:recv(Socket, 0) of + {ok,[]} -> + recv_message(Socket); %% a tick, ignore {ok,Data} -> B0 = list_to_binary(Data), <<?PASS_THROUGH, B1/binary>> = B0, |