@@ -920,16 +920,18 @@ void Replica::send_pre_prepare(bool do_not_wait_for_batch_size)
920920 self->requests_per_batch .insert (
921921 {self->next_pp_seqno , ctx->requests_in_batch });
922922
923- if (self->ledger_writer )
924- {
925- self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
926- }
927923 if (pbft::GlobalState::get_node ().f () > 0 )
928924 {
929925 self->send (pp, All_replicas);
930926 pp->cleanup_after_send ();
931927 }
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 )
933935 {
934936 self->send_prepare (self->next_pp_seqno , info);
935937 }
@@ -1104,11 +1106,6 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
11041106 {
11051107 self->gov_req_track .update (pp->seqno ());
11061108 }
1107-
1108- if (self->ledger_writer )
1109- {
1110- self->last_te_version = self->ledger_writer ->write_pre_prepare (pp);
1111- }
11121109 }
11131110
11141111 Prepare* p = new Prepare (
@@ -1121,6 +1118,12 @@ void Replica::send_prepare(Seqno seqno, std::optional<ByzInfo> byz_info)
11211118 int send_node_id =
11221119 (msg->send_only_to_self ? self->node_id : All_replicas);
11231120 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+
11241127 Prepared_cert& pc = self->plog .fetch (msg->seqno );
11251128 pc.add_mine (p);
11261129 LOG_DEBUG << " added to pc in prepare: " << pp->seqno () << std::endl;
0 commit comments