Finish/catchup commit from end of last week, silly me
This commit is contained in:
parent
48e82ac1a4
commit
e9268080af
1 changed files with 16 additions and 10 deletions
|
@ -1475,15 +1475,16 @@ react_to_env_A50(P_latest, FinalProps, #ch_mgr{proj=P_current}=S) ->
|
||||||
|
|
||||||
react_to_env_B10(Retries, P_newprop, P_latest, LatestUnanimousP,
|
react_to_env_B10(Retries, P_newprop, P_latest, LatestUnanimousP,
|
||||||
Rank_newprop, Rank_latest,
|
Rank_newprop, Rank_latest,
|
||||||
#ch_mgr{name=MyName, flap_limit=FlapLimit}=S)->
|
#ch_mgr{name=MyName, flap_limit=FlapLimit, proj=P_current}=S)->
|
||||||
?REACT(b10),
|
?REACT(b10),
|
||||||
|
|
||||||
{_P_newprop_flap_time, P_newprop_flap_count} = get_flap_count(P_newprop),
|
{_P_newprop_flap_time, P_newprop_flap_count} = get_flap_count(P_newprop),
|
||||||
UnanimousLatestInnerNotRelevant_p =
|
UnanimousLatestInnerNotRelevant_p =
|
||||||
case inner_projection_exists(P_latest) of
|
case inner_projection_exists(P_latest) of
|
||||||
true when P_latest#projection_v1.author_server /= MyName ->
|
true when P_latest#projection_v1.author_server /= MyName ->
|
||||||
#projection_v1{down=Down_inner} = inner_projection_or_self(
|
#projection_v1{down=Down_inner,
|
||||||
P_latest),
|
epoch_number=EpochLatest_i} = inner_projection_or_self(
|
||||||
|
P_latest),
|
||||||
case lists:member(MyName, Down_inner) of
|
case lists:member(MyName, Down_inner) of
|
||||||
true ->
|
true ->
|
||||||
%% Some foreign author's inner projection thinks that
|
%% Some foreign author's inner projection thinks that
|
||||||
|
@ -1491,8 +1492,12 @@ react_to_env_B10(Retries, P_newprop, P_latest, LatestUnanimousP,
|
||||||
?REACT({b10, ?LINE, [{down_inner, Down_inner}]}),
|
?REACT({b10, ?LINE, [{down_inner, Down_inner}]}),
|
||||||
true;
|
true;
|
||||||
false ->
|
false ->
|
||||||
?REACT({b10, ?LINE, [{down_inner, Down_inner}]}),
|
#projection_v1{epoch_number=Epoch_current} =
|
||||||
false
|
inner_projection_or_self(P_current),
|
||||||
|
Latest_GTE_Epoch_p = EpochLatest_i >= Epoch_current,
|
||||||
|
?REACT({b10, ?LINE, [{down_inner, Down_inner},
|
||||||
|
{latest_GTE_epoch, Latest_GTE_Epoch_p}]}),
|
||||||
|
not Latest_GTE_Epoch_p
|
||||||
end;
|
end;
|
||||||
_Else_u ->
|
_Else_u ->
|
||||||
false
|
false
|
||||||
|
@ -2693,9 +2698,9 @@ make_zerf2(OldEpochNum, Up, MajoritySize, MyName, AllMembers, OldWitness_list, M
|
||||||
catch
|
catch
|
||||||
throw:{zerf,no_common} ->
|
throw:{zerf,no_common} ->
|
||||||
FirstEpoch_p = case get(epochs) of
|
FirstEpoch_p = case get(epochs) of
|
||||||
[0] -> true;
|
[0] -> true;
|
||||||
[?SET_CHAIN_MEMBERS_EPOCH_SKIP, 0] -> true;
|
[_, 0] -> true;
|
||||||
_ -> false
|
_ -> false
|
||||||
end,
|
end,
|
||||||
if FirstEpoch_p ->
|
if FirstEpoch_p ->
|
||||||
%% Epoch 0 special case: make the "all" projection.
|
%% Epoch 0 special case: make the "all" projection.
|
||||||
|
@ -2711,16 +2716,17 @@ make_zerf2(OldEpochNum, Up, MajoritySize, MyName, AllMembers, OldWitness_list, M
|
||||||
P = make_all_projection(MyName, AllMembers, OldWitness_list,
|
P = make_all_projection(MyName, AllMembers, OldWitness_list,
|
||||||
MembersDict),
|
MembersDict),
|
||||||
machi_projection:update_checksum(
|
machi_projection:update_checksum(
|
||||||
P#projection_v1{epoch_number=OldEpochNum});
|
P#projection_v1{epoch_number=OldEpochNum,dbg2=[zerf_all]});
|
||||||
true ->
|
true ->
|
||||||
%% Make it appear like nobody is up now: we'll have to
|
%% Make it appear like nobody is up now: we'll have to
|
||||||
%% wait until the Up list changes so that
|
%% wait until the Up list changes so that
|
||||||
%% zerf_find_last_common() can confirm a common stable
|
%% zerf_find_last_common() can confirm a common stable
|
||||||
%% last stable epoch.
|
%% last stable epoch.
|
||||||
|
|
||||||
P = make_none_projection(MyName, AllMembers,OldWitness_list,
|
P = make_none_projection(MyName, AllMembers,OldWitness_list,
|
||||||
MembersDict),
|
MembersDict),
|
||||||
machi_projection:update_checksum(
|
machi_projection:update_checksum(
|
||||||
P#projection_v1{epoch_number=OldEpochNum})
|
P#projection_v1{epoch_number=OldEpochNum,dbg2=[zerf_none]})
|
||||||
end;
|
end;
|
||||||
_X:_Y ->
|
_X:_Y ->
|
||||||
throw({zerf, {damn_exception, Up, _X, _Y, erlang:get_stacktrace()}})
|
throw({zerf, {damn_exception, Up, _X, _Y, erlang:get_stacktrace()}})
|
||||||
|
|
Loading…
Reference in a new issue