From 99e745a760b7af73a8066bd3d9a10073381388d5 Mon Sep 17 00:00:00 2001 From: Dmitry Rodionov Date: Thu, 3 Nov 2022 15:39:15 +0200 Subject: [PATCH] review adjustments --- pageserver/src/tenant/timeline.rs | 10 +++++++++- pageserver/src/walredo.rs | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index a382ad5e11..0b2f7876db 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -1364,6 +1364,11 @@ impl Timeline { // to finish, we know when the flush that we initiated has // finished, instead of some other flush that was started earlier. let mut my_flush_request = 0; + + if !&*self.flush_loop_started.lock().unwrap() { + anyhow::bail!("cannot flush frozen layers when flush_loop is not running") + } + self.layer_flush_start_tx.send_modify(|counter| { my_flush_request = *counter + 1; *counter = my_flush_request; @@ -1377,7 +1382,10 @@ impl Timeline { // We already logged the original error in // flush_loop. We cannot propagate it to the caller // here, because it might not be Cloneable - bail!("could not flush frozen layer"); + anyhow::bail!( + "Could not flush frozen layer. Request id: {}", + my_flush_request + ); } else { return Ok(()); } diff --git a/pageserver/src/walredo.rs b/pageserver/src/walredo.rs index 54d322373b..e21ec4d742 100644 --- a/pageserver/src/walredo.rs +++ b/pageserver/src/walredo.rs @@ -120,7 +120,7 @@ fn can_apply_in_neon(rec: &NeonWalRecord) -> bool { /// An error happened in WAL redo #[derive(Debug, thiserror::Error)] pub enum WalRedoError { - #[error("encountered io error: {0}")] + #[error(transparent)] IoError(#[from] std::io::Error), #[error("cannot perform WAL redo now")]