diff options
author | Hans Bolinder <[email protected]> | 2010-08-25 13:28:38 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2010-08-25 13:31:58 +0200 |
commit | 334e0ea11f8740a1102ab8411a959cf8b364eb4d (patch) | |
tree | 77fdd40398c18f1ee6573300cc3a91b91f6dad4b | |
parent | 6c00708e21bccffff84595f714cf9c1003cc8916 (diff) | |
download | otp-334e0ea11f8740a1102ab8411a959cf8b364eb4d.tar.gz otp-334e0ea11f8740a1102ab8411a959cf8b364eb4d.tar.bz2 otp-334e0ea11f8740a1102ab8411a959cf8b364eb4d.zip |
Fix a bug that could cause the net_kernel process to crash.
A bug introduced in kernel-2.13.5.3 has been fixed. If running
net_kernel:set_net_ticktime/1 twice within the TransitionPerod the
second call caused the net_kernel process to crash with a badmatch.
-rw-r--r-- | lib/kernel/src/net_kernel.erl | 4 | ||||
-rw-r--r-- | lib/kernel/test/erl_distribution_SUITE.erl | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl index 1353ac65c6..9875044844 100644 --- a/lib/kernel/src/net_kernel.erl +++ b/lib/kernel/src/net_kernel.erl @@ -500,8 +500,8 @@ handle_call({new_ticktime,T,TP}, From, #state{tick = #tick{ticker = Tckr, time = T, how = How}}}, From); -handle_call({new_ticktime,From,_}, - _, +handle_call({new_ticktime,_T,_TP}, + From, #state{tick = #tick_change{time = T}} = State) -> async_reply({reply, {ongoing_change_to, T}, State}, From). diff --git a/lib/kernel/test/erl_distribution_SUITE.erl b/lib/kernel/test/erl_distribution_SUITE.erl index d15f6aa0d5..21a96f804a 100644 --- a/lib/kernel/test/erl_distribution_SUITE.erl +++ b/lib/kernel/test/erl_distribution_SUITE.erl @@ -273,6 +273,7 @@ tick_change(Config) when is_list(Config) -> ?line PaDir = filename:dirname(code:which(?MODULE)), ?line [BN, CN] = get_nodenames(2, tick_change), ?line DefaultTT = net_kernel:get_net_ticktime(), + ?line unchanged = net_kernel:set_net_ticktime(DefaultTT, 60), ?line case DefaultTT of I when is_integer(I) -> ?line ok; _ -> ?line ?t:fail(DefaultTT) @@ -377,6 +378,7 @@ run_tick_change_test(B, C, PrevTT, TT, PaDir) -> end, ?line change_initiated = net_kernel:set_net_ticktime(TT,20), + ?line {ongoing_change_to,_} = net_kernel:set_net_ticktime(TT,20), ?line sleep(3), ?line change_initiated = rpc:call(B,net_kernel,set_net_ticktime,[TT,15]), ?line sleep(7), |