Fix division by zero in WAL removal.

This commit is contained in:
Arseny Sher
2022-05-05 07:43:55 +04:00
parent bc569dde51
commit c46fe90010
2 changed files with 5 additions and 3 deletions

View File

@@ -938,9 +938,7 @@ where
),
self.state.s3_wal_lsn,
);
let res = horizon_lsn.segment_number(self.state.server.wal_seg_size as usize);
info!("horizon is {}, res {}", horizon_lsn, res);
res
horizon_lsn.segment_number(self.state.server.wal_seg_size as usize)
}
}

View File

@@ -469,6 +469,10 @@ impl Timeline {
let remover: Box<dyn Fn(u64) -> Result<(), anyhow::Error>>;
{
let shared_state = self.mutex.lock().unwrap();
// WAL seg size not initialized yet, no WAL exists.
if shared_state.sk.state.server.wal_seg_size == 0 {
return Ok(());
}
horizon_segno = shared_state.sk.get_horizon_segno();
remover = shared_state.sk.wal_store.remove_up_to();
if horizon_segno <= 1 || horizon_segno <= shared_state.last_removed_segno {