Skip to content

Commit e5448f8

Browse files
committed
fix bug for case when S3 has more than 1 page of data
1 parent 2f15a0e commit e5448f8

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

bottomless/src/replicator.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,6 +1467,7 @@ impl Replicator {
14671467
};
14681468
let mut next_marker = None;
14691469
let mut applied_wal_frame = false;
1470+
let mut last_injected_frame_no = 0;
14701471
'restore_wal: loop {
14711472
let mut list_request = self.list_objects().prefix(&prefix);
14721473
if let Some(marker) = next_marker {
@@ -1481,7 +1482,6 @@ impl Replicator {
14811482
break;
14821483
}
14831484

1484-
let mut last_received_frame_no = 0;
14851485
for obj in objs {
14861486
let key = obj
14871487
.key()
@@ -1504,9 +1504,9 @@ impl Replicator {
15041504
continue;
15051505
}
15061506
};
1507-
if first_frame_no != last_received_frame_no + 1 {
1507+
if first_frame_no != last_injected_frame_no + 1 {
15081508
tracing::warn!("Missing series of consecutive frames. Last applied frame: {}, next found: {}. Stopping the restoration process",
1509-
last_received_frame_no, first_frame_no);
1509+
last_injected_frame_no, first_frame_no);
15101510
break;
15111511
}
15121512
if let Some(frame) = last_consistent_frame {
@@ -1539,7 +1539,7 @@ impl Replicator {
15391539
);
15401540

15411541
while let Some(frame) = reader.next_frame_header().await? {
1542-
last_received_frame_no = reader.next_frame_no();
1542+
last_injected_frame_no = reader.next_frame_no();
15431543
reader.next_page(&mut page_buf).await?;
15441544
if self.verify_crc {
15451545
checksum = frame.verify(checksum, &page_buf)?;
@@ -1548,7 +1548,7 @@ impl Replicator {
15481548
let checksum = (crc1 as u64) << 32 | crc2 as u64;
15491549
let frame_to_inject = libsql_replication::frame::Frame::from_parts(
15501550
&libsql_replication::frame::FrameHeader {
1551-
frame_no: (last_received_frame_no as u64).into(),
1551+
frame_no: (last_injected_frame_no as u64).into(),
15521552
checksum: checksum.into(),
15531553
page_no: frame.pgno().into(),
15541554
size_after: frame.size_after().into(),

0 commit comments

Comments
 (0)