From aea932b891e5f7cf192ce8d7e017a75c4afe608e Mon Sep 17 00:00:00 2001 From: dennis zhuang Date: Sun, 2 Apr 2023 11:06:36 +0800 Subject: [PATCH] fix: checkpoint fails when deleting old logs fails (#1300) --- src/storage/src/manifest/region.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/storage/src/manifest/region.rs b/src/storage/src/manifest/region.rs index ce1457ec76..0d312109af 100644 --- a/src/storage/src/manifest/region.rs +++ b/src/storage/src/manifest/region.rs @@ -19,7 +19,7 @@ use std::sync::Arc; use std::time::Duration; use async_trait::async_trait; -use common_telemetry::info; +use common_telemetry::{error, info}; use object_store::ObjectStore; use store_api::manifest::action::ProtocolAction; use store_api::manifest::{ @@ -116,10 +116,17 @@ impl Checkpointer for RegionManifestCheckpointer { }; manifest.save_checkpoint(&checkpoint).await?; - manifest + if let Err(e) = manifest .manifest_store() .delete(start_version, last_version + 1) - .await?; + .await + { + // It doesn't matter when deletion fails, they will be purged by gc task. + error!(e; "Failed to delete manifest logs [{},{}] in path: {}.", + start_version, + last_version, + manifest.manifest_store().path()); + } info!("Region manifest checkpoint, start_version: {}, last_version: {}, compacted actions: {}", start_version, last_version, compacted_actions);