diff --git a/src/machi_chain_manager1.erl b/src/machi_chain_manager1.erl index f23999d..83e895e 100644 --- a/src/machi_chain_manager1.erl +++ b/src/machi_chain_manager1.erl @@ -2672,7 +2672,7 @@ poll_private_proj_is_upi_unanimous3(#ch_mgr{name=MyName, proj=P_current, EpochID = machi_projection:make_epoch_id(Proj_ios), {Rs, S2} = read_latest_projection_call_only2(private, UPI, S), Rs2 = [if is_record(P, projection_v1) -> - machi_projection:make_epoch_id(P); + machi_projection:make_epoch_id(inner_projection_or_self(P)); true -> P end || #projection_v1{}=P <- Rs], @@ -2688,9 +2688,7 @@ poll_private_proj_is_upi_unanimous3(#ch_mgr{name=MyName, proj=P_current, PStr -> PStr end, - [io:format(user, "whereis(~w) ~w, ", [X, whereis(X)]) || - X <- [a_pstore, a_pstore2]], -io:format(user, "POLL: ~w updates ~w ~W\n", [S#ch_mgr.name, NewProj#projection_v1.epoch_number, NewProj#projection_v1.epoch_csum, 6]), +io:format(user, "POLL: ~w: ~w updates ~w ~W ~w\n", [S#ch_mgr.name, P_current#projection_v1.epoch_csum == (machi_projection:update_checksum(P_current))#projection_v1.epoch_csum, NewProj#projection_v1.epoch_number, NewProj#projection_v1.epoch_csum, 6, NewProj#projection_v1.epoch_csum == (machi_projection:update_checksum(NewProj))#projection_v1.epoch_csum]), ok = machi_projection_store:write(ProjStore, private, NewProj), %% Unwedge our FLU. io:format(user, "\nUnwedge ~w @ ~W\n", [MyName, EpochID, 7]), diff --git a/src/machi_projection_store.erl b/src/machi_projection_store.erl index e5131ea..0961d8f 100644 --- a/src/machi_projection_store.erl +++ b/src/machi_projection_store.erl @@ -276,22 +276,15 @@ do_proj_read(ProjType, Epoch, S_or_Dir) -> {{error, Else}, S_or_Dir} end. -do_proj_write(public=ProjType, Proj, S) -> - do_proj_write2(ProjType, Proj, S); -do_proj_write(private=ProjType, #projection_v1{epoch_number=Epoch}=Proj, S) -> - case S#state.max_public_epochid of - {PublicEpoch, _} when PublicEpoch =< Epoch -> - do_proj_write2(ProjType, Proj, S); - {_PublicEpoch, _} -> - {{error, bad_arg}, S} - end. +do_proj_write(ProjType, Proj, S) -> + do_proj_write2(ProjType, Proj, S). do_proj_write2(ProjType, #projection_v1{epoch_csum=CSum}=Proj, S) -> case (machi_projection:update_checksum(Proj))#projection_v1.epoch_csum of CSum2 when CSum2 == CSum -> do_proj_write3(ProjType, Proj, S); _Else -> - {{error, bad_arg}, S} + {{error, bad_arg_badddddddddddddddddddddddddd_csum, CSum, _Else}, S} end. do_proj_write3(ProjType, #projection_v1{epoch_number=Epoch, diff --git a/test/machi_chain_manager1_converge_demo.erl b/test/machi_chain_manager1_converge_demo.erl index fd3b660..63f2e2c 100644 --- a/test/machi_chain_manager1_converge_demo.erl +++ b/test/machi_chain_manager1_converge_demo.erl @@ -371,13 +371,14 @@ convergence_demo_testfun(NumFLUs, MgrOpts0) -> make_partition_list(All_list) -> [ - [{b,c}], - [], - [{c,d}], - [], - [{d,e}], - [], - [{c,e}] + [{b,c}] + %% [{b,c}], + %% [], + %% [{c,d}], + %% [], + %% [{d,e}], + %% [], + %% [{c,e}] ]. %% _X_Ys1 = [[{X,Y}] || X <- All_list, Y <- All_list, X /= Y],