@@ -920,16 +920,18 @@ void Replica::send_pre_prepare(bool do_not_wait_for_batch_size)
920
920
self->requests_per_batch .insert (
921
921
{self->next_pp_seqno , ctx->requests_in_batch });
922
922
923
- if (self->ledger_writer )
924
- {
925
- self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
926
- }
927
923
if (pbft::GlobalState::get_node ().f () > 0 )
928
924
{
929
925
self->send (pp, All_replicas);
930
926
pp->cleanup_after_send ();
931
927
}
932
- else
928
+
929
+ if (self->ledger_writer )
930
+ {
931
+ self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
932
+ }
933
+
934
+ if (pbft::GlobalState::get_node ().f () == 0 )
933
935
{
934
936
self->send_prepare (self->next_pp_seqno , info);
935
937
}
@@ -1104,11 +1106,6 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
1104
1106
{
1105
1107
self->gov_req_track .update (pp->seqno ());
1106
1108
}
1107
-
1108
- if (self->ledger_writer )
1109
- {
1110
- self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
1111
- }
1112
1109
}
1113
1110
1114
1111
Prepare* p = new Prepare (
@@ -1121,6 +1118,12 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
1121
1118
int send_node_id =
1122
1119
(msg->send_only_to_self ? self->node_id : All_replicas);
1123
1120
self->send (p, send_node_id);
1121
+
1122
+ if (self->ledger_writer && !self->is_primary ())
1123
+ {
1124
+ self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
1125
+ }
1126
+
1124
1127
Prepared_cert& pc = self->plog .fetch (msg->seqno );
1125
1128
pc.add_mine (p);
1126
1129
LOG_DEBUG << " added to pc in prepare: " << pp->seqno () << std::endl;
0 commit comments