krishvishal commented on code in PR #4073:
URL: https://github.com/apache/iggy/pull/4073#discussion_r3957101109
##########
core/shard/src/lib.rs:
##########
@@ -5596,51 +5646,44 @@ where
})
};
if let Some((peer, nonce, to_op)) = stalled {
- // A session pins its peer and fences every arming site while it
- // stands, so a peer that cannot answer wedges the plane harder
than
- // having no session at all -- and the gap-stopped-primary rotation
- // can pick a peer that is simply down. Past the budget the session
- // is dropped and re-armed one step around the ring; an ordinary
lost
- // frame is re-requested long before that.
- if self.burn_metadata_repair_attempt() {
- let next_peer = next_transfer_peer(
- consensus.replica(),
- peer,
- consensus.replica_count(),
- consensus.primary_index(consensus.view()),
- );
- tracing::warn!(
+ // Primary-elect only, and floored at `merged_log_scan_floor` so a
Review Comment:
Fixed. The retry now genuinely reopens at the window the initial arm asked
for (`session.from_op`), and the comment says so.
##########
core/consensus/src/impls.rs:
##########
@@ -4722,6 +4804,97 @@ mod timestamp_clamp_tests {
assert_eq!(consensus.status(), Status::Normal);
}
+ /// The wedge `redecide_recovery_barrier` exists for: a view
Review Comment:
Fixed. Moved to `mod recovery_barrier_tests` with its own module doc; added
a `head == 0` case while there.
##########
core/consensus/src/plane_helpers.rs:
##########
@@ -446,18 +456,35 @@ where
P: Pipeline<Entry = PipelineEntry>,
{
let commit = consensus.commit_max();
+ let commit_min = consensus.commit_min();
+ let replica = consensus.replica();
Review Comment:
Fixed. Both gates call one `report_uncommittable_head`, so the binding is
gone.
##########
core/consensus/src/impls.rs:
##########
@@ -5404,3 +5580,130 @@ mod quorum_tests {
}
};
}
+
+#[cfg(test)]
+mod view_source_tests {
+ //! Who a primary-elect may ask for an op its merged log names. A
`DoViewChange`
+ //! suffix spans `commit..=op`, so the two selectors cover disjoint halves
of
+ //! the merged log and the split is what keeps a coverage gap under the
merged
+ //! commit point askable at all.
+
+ use super::*;
+ use crate::LocalPipeline;
+ use crate::view_change_quorum::{DvcSuffix, StoredDvc, dvc_record};
+ use message_bus::BusMessage;
+ use server_common::MESSAGE_ALIGN;
+ use server_common::iobuf::Frozen;
+
+ struct NoopBus;
Review Comment:
Fixed. One `#[cfg(test)] mod test_bus`; all three modules import it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]