diff --git a/common/lock/src/drwmutex.rs b/common/lock/src/drwmutex.rs index 966097a8a..774c339f5 100644 --- a/common/lock/src/drwmutex.rs +++ b/common/lock/src/drwmutex.rs @@ -50,8 +50,8 @@ impl DRWMutex { Self { owner, names, - write_locks: Vec::with_capacity(lockers.len()), - read_locks: Vec::with_capacity(lockers.len()), + write_locks: vec![String::new(); lockers.len()], + read_locks: vec![String::new(); lockers.len()], cancel_refresh_sender: None, // rng: rand::thread_rng(), lockers, diff --git a/ecstore/src/disk/mod.rs b/ecstore/src/disk/mod.rs index c36be0992..d3d5f08fa 100644 --- a/ecstore/src/disk/mod.rs +++ b/ecstore/src/disk/mod.rs @@ -1561,7 +1561,7 @@ impl Reader for RemoteFileReader { path: self.path.to_string(), offset: offset.try_into().unwrap(), // length: length.try_into().unwrap(), - length: 0, + length: buf.len().try_into().unwrap(), }; self.tx.send(request).await?; diff --git a/ecstore/src/heal/background_heal_ops.rs b/ecstore/src/heal/background_heal_ops.rs index 5ce1430ac..3aeaa33a8 100644 --- a/ecstore/src/heal/background_heal_ops.rs +++ b/ecstore/src/heal/background_heal_ops.rs @@ -142,7 +142,7 @@ async fn monitor_local_disks_and_heal() { } async fn heal_fresh_disk(endpoint: &Endpoint) -> Result<()> { - let (pool_idx, set_idx) = (endpoint.pool_idx as usize, endpoint.disk_idx as usize); + let (pool_idx, set_idx) = (endpoint.pool_idx as usize, endpoint.set_idx as usize); let disk = match get_disk_via_endpoint(endpoint).await { Some(disk) => disk, None => { diff --git a/ecstore/src/set_disk.rs b/ecstore/src/set_disk.rs index fab2458f2..b791ecda3 100644 --- a/ecstore/src/set_disk.rs +++ b/ecstore/src/set_disk.rs @@ -2250,8 +2250,8 @@ impl SetDisks { if !lastest_meta.deleted && disks_to_heal_count > lastest_meta.erasure.parity_blocks { error!( - "file part corrupt too much, can not to fix, disks_to_heal_count: {}, parity_blocks: {}", - disks_to_heal_count, lastest_meta.erasure.parity_blocks + "file({} : {}) part corrupt too much, can not to fix, disks_to_heal_count: {}, parity_blocks: {}", + bucket, object, disks_to_heal_count, lastest_meta.erasure.parity_blocks ); let mut t_errs = vec![None; errs.len()]; // Allow for dangling deletes, on versions that have DataDir missing etc.