From 5cb040f86362e58404a4ee56662b8e6d2d5b1cb1 Mon Sep 17 00:00:00 2001 From: junxiang Mu <1948535941@qq.com> Date: Thu, 8 May 2025 19:34:58 +0800 Subject: [PATCH] fix zero size object bug Signed-off-by: junxiang Mu <1948535941@qq.com> --- crates/utils/src/net.rs | 1 + ecstore/src/erasure.rs | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/utils/src/net.rs b/crates/utils/src/net.rs index e69de29b..8b137891 100644 --- a/crates/utils/src/net.rs +++ b/crates/utils/src/net.rs @@ -0,0 +1 @@ + diff --git a/ecstore/src/erasure.rs b/ecstore/src/erasure.rs index ac0eee89..702d393e 100644 --- a/ecstore/src/erasure.rs +++ b/ecstore/src/erasure.rs @@ -67,7 +67,7 @@ impl Erasure { { let (tx, mut rx) = mpsc::channel(5); let task = tokio::spawn(async move { - let mut buf = Vec::new(); + let mut buf = vec![0u8; self.block_size]; let mut total: usize = 0; loop { if total_size > 0 { @@ -99,6 +99,9 @@ impl Erasure { } let blocks = Arc::new(Box::pin(self.clone().encode_data(&buf)?)); let _ = tx.send(blocks).await; + if total_size == 0 { + break; + } } let etag = reader.etag().await; Ok((total, etag)) @@ -129,10 +132,6 @@ impl Erasure { warn!("Erasure encode errs {:?}", &errs); return Err(err); } - - if total_size == 0 { - break; - } } task.await? }