mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 16:48:58 +00:00
@@ -123,11 +123,9 @@ async fn monitor_local_disks_and_heal() {
|
||||
for disk in heal_disks.into_ref().iter() {
|
||||
let disk_clone = disk.clone();
|
||||
futures.push(async move {
|
||||
info!("1");
|
||||
GLOBAL_BackgroundHealState
|
||||
.set_disk_healing_status(disk_clone.clone(), true)
|
||||
.await;
|
||||
info!("2");
|
||||
if heal_fresh_disk(&disk_clone).await.is_err() {
|
||||
info!("heal_fresh_disk is err");
|
||||
GLOBAL_BackgroundHealState
|
||||
@@ -135,14 +133,10 @@ async fn monitor_local_disks_and_heal() {
|
||||
.await;
|
||||
return;
|
||||
}
|
||||
info!("3");
|
||||
GLOBAL_BackgroundHealState.pop_heal_local_disks(&[disk_clone]).await;
|
||||
info!("4");
|
||||
});
|
||||
}
|
||||
info!("monitor_local_disks_and_heal wait");
|
||||
let _ = join_all(futures).await;
|
||||
info!("monitor_local_disks_and_heal end");
|
||||
interval.reset();
|
||||
}
|
||||
}
|
||||
@@ -233,14 +227,11 @@ async fn heal_fresh_disk(endpoint: &Endpoint) -> Result<()> {
|
||||
|
||||
let tracker = Arc::new(RwLock::new(tracker));
|
||||
let qb = tracker.read().await.queue_buckets.clone();
|
||||
info!("0.4");
|
||||
store.pools[pool_idx].disk_set[set_idx]
|
||||
.clone()
|
||||
.heal_erasure_set(&qb, tracker.clone())
|
||||
.await?;
|
||||
info!("4");
|
||||
let mut tracker_w = tracker.write().await;
|
||||
info!("5");
|
||||
if tracker_w.items_failed > 0 && tracker_w.retry_attempts < 4 {
|
||||
tracker_w.retry_attempts += 1;
|
||||
tracker_w.reset_healing().await;
|
||||
|
||||
@@ -3479,19 +3479,15 @@ impl SetDisks {
|
||||
if let Some(err) = ret_err.as_ref() {
|
||||
return Err(err.clone());
|
||||
}
|
||||
info!("step 6");
|
||||
if !tracker.read().await.queue_buckets.is_empty() {
|
||||
return Err(Error::from_string(format!(
|
||||
"not all buckets were healed: {:?}",
|
||||
tracker.read().await.queue_buckets
|
||||
)));
|
||||
}
|
||||
info!("step 7");
|
||||
drop(result_tx);
|
||||
let _ = task.await;
|
||||
info!("step 8");
|
||||
defer.await;
|
||||
info!("step 9");
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user