From 4407ecd2fdd236c451c175df245e06b4b6eab137 Mon Sep 17 00:00:00 2001 From: Gaius Date: Tue, 11 Feb 2025 12:34:16 +0800 Subject: [PATCH] fix: if disk has no enough space, client return failed (#973) Signed-off-by: Gaius --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 16 ++++++++-------- dragonfly-client/src/resource/task.rs | 15 ++++++--------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 604a64b0..1ec533cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -938,7 +938,7 @@ dependencies = [ [[package]] name = "dragonfly-client" -version = "0.2.7" +version = "0.2.8" dependencies = [ "anyhow", "blake3", @@ -1010,7 +1010,7 @@ dependencies = [ [[package]] name = "dragonfly-client-backend" -version = "0.2.7" +version = "0.2.8" dependencies = [ "dragonfly-api", "dragonfly-client-core", @@ -1041,7 +1041,7 @@ dependencies = [ [[package]] name = "dragonfly-client-config" -version = "0.2.7" +version = "0.2.8" dependencies = [ "bytesize", "bytesize-serde", @@ -1067,7 +1067,7 @@ dependencies = [ [[package]] name = "dragonfly-client-core" -version = "0.2.7" +version = "0.2.8" dependencies = [ "headers 0.4.0", "hyper 1.5.2", @@ -1086,7 +1086,7 @@ dependencies = [ [[package]] name = "dragonfly-client-init" -version = "0.2.7" +version = "0.2.8" dependencies = [ "anyhow", "clap", @@ -1104,7 +1104,7 @@ dependencies = [ [[package]] name = "dragonfly-client-storage" -version = "0.2.7" +version = "0.2.8" dependencies = [ "base16ct", "bincode", @@ -1130,7 +1130,7 @@ dependencies = [ [[package]] name = "dragonfly-client-util" -version = "0.2.7" +version = "0.2.8" dependencies = [ "base16ct", "base64 0.22.1", @@ -1532,7 +1532,7 @@ dependencies = [ [[package]] name = "hdfs" -version = "0.2.7" +version = "0.2.8" dependencies = [ "dragonfly-client-backend", "dragonfly-client-core", diff --git a/Cargo.toml b/Cargo.toml index a6cfc09b..2ed4bb13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ members = [ ] [workspace.package] -version = "0.2.7" +version = "0.2.8" authors = ["The Dragonfly Developers"] homepage = "https://d7y.io/" repository = "https://github.com/dragonflyoss/client.git" @@ -22,13 +22,13 @@ readme = "README.md" edition = "2021" [workspace.dependencies] -dragonfly-client = { path = "dragonfly-client", version = "0.2.7" } -dragonfly-client-core = { path = "dragonfly-client-core", version = "0.2.7" } -dragonfly-client-config = { path = "dragonfly-client-config", version = "0.2.7" } -dragonfly-client-storage = { path = "dragonfly-client-storage", version = "0.2.7" } -dragonfly-client-backend = { path = "dragonfly-client-backend", version = "0.2.7" } -dragonfly-client-util = { path = "dragonfly-client-util", version = "0.2.7" } -dragonfly-client-init = { path = "dragonfly-client-init", version = "0.2.7" } +dragonfly-client = { path = "dragonfly-client", version = "0.2.8" } +dragonfly-client-core = { path = "dragonfly-client-core", version = "0.2.8" } +dragonfly-client-config = { path = "dragonfly-client-config", version = "0.2.8" } +dragonfly-client-storage = { path = "dragonfly-client-storage", version = "0.2.8" } +dragonfly-client-backend = { path = "dragonfly-client-backend", version = "0.2.8" } +dragonfly-client-util = { path = "dragonfly-client-util", version = "0.2.8" } +dragonfly-client-init = { path = "dragonfly-client-init", version = "0.2.8" } thiserror = "1.0" dragonfly-api = "=2.1.23" reqwest = { version = "0.12.4", features = [ diff --git a/dragonfly-client/src/resource/task.rs b/dragonfly-client/src/resource/task.rs index 3dcc6ef6..ff22f42e 100644 --- a/dragonfly-client/src/resource/task.rs +++ b/dragonfly-client/src/resource/task.rs @@ -206,16 +206,13 @@ impl Task { content_length, ); - // If the task is not found, check if the storage has enough space to + // If the task is not finished, check if the storage has enough space to // store the task. - if let Ok(None) = self.get(id) { - let has_enough_space = self.storage.has_enough_space(content_length)?; - if !has_enough_space { - return Err(Error::NoSpace(format!( - "not enough space to store the persistent cache task: content_length={}", - content_length - ))); - } + if !task.is_finished() && !self.storage.has_enough_space(content_length)? { + return Err(Error::NoSpace(format!( + "not enough space to store the persistent cache task: content_length={}", + content_length + ))); } self.storage.download_task_started(