Remove short circuit (bad idea!) from react_to_env_C100()
This commit is contained in:
parent
cc87f682fe
commit
22337e1819
1 changed files with 4 additions and 17 deletions
|
@ -1319,34 +1319,21 @@ react_to_env_C100(P_newprop, P_latest,
|
||||||
I_am_UPI_in_newprop_p = lists:member(MyName, P_newprop#projection_v1.upi),
|
I_am_UPI_in_newprop_p = lists:member(MyName, P_newprop#projection_v1.upi),
|
||||||
I_am_Repairing_in_latest_p = lists:member(MyName,
|
I_am_Repairing_in_latest_p = lists:member(MyName,
|
||||||
P_latest#projection_v1.repairing),
|
P_latest#projection_v1.repairing),
|
||||||
%% TODO: ShortCircuit_p was a bad idea, I'm nearly sure. Get rid of it.
|
|
||||||
ShortCircuit_p = false,
|
|
||||||
Current_sane_p = projection_transition_is_sane(P_current, P_latest,
|
Current_sane_p = projection_transition_is_sane(P_current, P_latest,
|
||||||
MyName),
|
MyName),
|
||||||
put(xxx_hack, [{p_current, machi_projection:make_summary(P_current)},
|
put(xxx_hack, [{p_current, machi_projection:make_summary(P_current)},
|
||||||
{epoch_compare, P_latest#projection_v1.epoch_number > P_current#projection_v1.epoch_number},
|
{epoch_compare, P_latest#projection_v1.epoch_number > P_current#projection_v1.epoch_number},
|
||||||
{i_am_upi_in_newprop_p, I_am_UPI_in_newprop_p},
|
{i_am_upi_in_newprop_p, I_am_UPI_in_newprop_p},
|
||||||
{i_am_repairing_in_latest_p, I_am_Repairing_in_latest_p},
|
{i_am_repairing_in_latest_p, I_am_Repairing_in_latest_p}]),
|
||||||
{shortcircuit_p, ShortCircuit_p}]),
|
case Current_sane_p of
|
||||||
case {ShortCircuit_p, Current_sane_p} of
|
|
||||||
_ when P_current#projection_v1.epoch_number == 0 ->
|
_ when P_current#projection_v1.epoch_number == 0 ->
|
||||||
%% Epoch == 0 is reserved for first-time, just booting conditions.
|
%% Epoch == 0 is reserved for first-time, just booting conditions.
|
||||||
?REACT({c100, ?LINE, [first_write]}),
|
?REACT({c100, ?LINE, [first_write]}),
|
||||||
react_to_env_C110(P_latest, S);
|
react_to_env_C110(P_latest, S);
|
||||||
{true, _} ->
|
true ->
|
||||||
%% Someone else believes that I am repairing. We assume
|
|
||||||
%% that nobody is being Byzantine, so we'll believe that I
|
|
||||||
%% am/should be repairing. We ignore our proposal and try
|
|
||||||
%% to go with the latest.
|
|
||||||
?REACT({c100, ?LINE, [repairing_short_circuit]}),
|
|
||||||
%% io:format(user, "C100 shortcut true: E ~w -> E ~w sane ~w\n", [P_current#projection_v1.epoch_number, P_latest#projection_v1.epoch_number, Current_sane_p]),
|
|
||||||
%% ZXZX = lists:flatten(io_lib:format("C100 shortcut true: E ~w -> E ~w sane ~w\n", [P_current#projection_v1.epoch_number, P_latest#projection_v1.epoch_number, Current_sane_p])),
|
|
||||||
%% erlang:display(ZXZX),
|
|
||||||
react_to_env_C110(P_latest, S);
|
|
||||||
{_, true} ->
|
|
||||||
?REACT({c100, ?LINE, [sane]}),
|
?REACT({c100, ?LINE, [sane]}),
|
||||||
react_to_env_C110(P_latest, S);
|
react_to_env_C110(P_latest, S);
|
||||||
{_, _AnyOtherReturnValue} ->
|
_AnyOtherReturnValue ->
|
||||||
%% P_latest is not sane.
|
%% P_latest is not sane.
|
||||||
%% By process of elimination, P_newprop is best,
|
%% By process of elimination, P_newprop is best,
|
||||||
%% so let's write it.
|
%% so let's write it.
|
||||||
|
|
Loading…
Reference in a new issue