diff --git a/safekeeper/src/control_file_upgrade.rs b/safekeeper/src/control_file_upgrade.rs index e1740cdcbf..5e749796dd 100644 --- a/safekeeper/src/control_file_upgrade.rs +++ b/safekeeper/src/control_file_upgrade.rs @@ -239,6 +239,19 @@ pub fn upgrade_control_file(buf: &[u8], version: u32) -> Result remote_consistent_lsn: Lsn(0), peers: Peers(vec![]), }); + } else if version == 5 { + info!("reading safekeeper control file version {}", version); + let mut oldstate = SafeKeeperState::des(&buf[..buf.len()])?; + if oldstate.timeline_start_lsn != Lsn(0) { + return Ok(oldstate); + } + + // set special timeline_start_lsn because we don't know the real one + info!("setting timeline_start_lsn and local_start_lsn to Lsn(1)"); + oldstate.timeline_start_lsn = Lsn(1); + oldstate.local_start_lsn = Lsn(1); + + return Ok(oldstate); } bail!("unsupported safekeeper control file version {}", version) } diff --git a/safekeeper/src/safekeeper.rs b/safekeeper/src/safekeeper.rs index 7986fa5834..331baffbca 100644 --- a/safekeeper/src/safekeeper.rs +++ b/safekeeper/src/safekeeper.rs @@ -28,7 +28,7 @@ use utils::{ }; pub const SK_MAGIC: u32 = 0xcafeceefu32; -pub const SK_FORMAT_VERSION: u32 = 5; +pub const SK_FORMAT_VERSION: u32 = 6; const SK_PROTOCOL_VERSION: u32 = 2; const UNKNOWN_SERVER_VERSION: u32 = 0; diff --git a/safekeeper/src/timeline.rs b/safekeeper/src/timeline.rs index 2e415a53d0..12cac831f4 100644 --- a/safekeeper/src/timeline.rs +++ b/safekeeper/src/timeline.rs @@ -625,6 +625,8 @@ impl GlobalTimelines { zttid: ZTenantTimelineId, create: bool, ) -> Result> { + let _enter = info_span!("", timeline = %zttid.tenant_id).entered(); + let mut state = TIMELINES_STATE.lock().unwrap(); match state.timelines.get(&zttid) {