From 2b6c49b2ea07fb95ef3eb571d4081b396bac08f2 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sat, 3 Sep 2022 14:06:00 +0300 Subject: [PATCH] Fix negative usize parsing --- pageserver/src/layered_repository/timeline.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pageserver/src/layered_repository/timeline.rs b/pageserver/src/layered_repository/timeline.rs index 821995fad1..b050ef4030 100644 --- a/pageserver/src/layered_repository/timeline.rs +++ b/pageserver/src/layered_repository/timeline.rs @@ -432,14 +432,12 @@ impl LogicalSize { .map(CurrentLogicalSize::Exact) } None => { - let non_negative_size_increment = size_increment.max(0); - u64::try_from(non_negative_size_increment) - .with_context(|| { - format!( - "Failed to convert size increment {non_negative_size_increment} to u64" - ) - }) - .map(CurrentLogicalSize::Approximate) + let non_negative_size_increment = if size_increment < 0 { + 0 + } else { + u64::try_from(size_increment).expect("not negative, cannot fail") + }; + Ok(CurrentLogicalSize::Approximate(non_negative_size_increment)) } } }