pibd: fix check for next required kernel segment (#3822)

This commit is contained in:
ardocrat
2026-03-25 15:29:15 +03:00
committed by GitHub
parent 2ec7b4d5cd
commit af0c1dca02
+14 -7
View File
@@ -1069,17 +1069,24 @@ impl Desegmenter {
)
};
// When resuming, we need to ensure we're getting the previous segment if needed
let theoretical_pmmr_size =
SegmentIdentifier::pmmr_size(cur_segment_count, self.default_kernel_segment_height);
if local_kernel_mmr_size < theoretical_pmmr_size {
cur_segment_count -= 1;
}
let total_segment_count = SegmentIdentifier::count_segments_required(
self.archive_header.kernel_mmr_size,
self.default_kernel_segment_height,
);
// When resuming, we need to ensure we're getting the previous segment if needed
if total_segment_count != cur_segment_count {
let theoretical_pmmr_size =
SegmentIdentifier::pmmr_size(cur_segment_count, self.default_kernel_segment_height);
if local_kernel_mmr_size < theoretical_pmmr_size {
debug!(
"theoretical_pmmr_size {} is bigger than the current mmr size {}",
theoretical_pmmr_size, local_kernel_mmr_size
);
cur_segment_count -= 1;
}
}
trace!(
"Next required kernel segment is {} of {}",
cur_segment_count,