Skip to content

Commit

Permalink
fix(client): carry out retries in case of got less of quotes
Browse files Browse the repository at this point in the history
  • Loading branch information
maqi committed Dec 15, 2024
1 parent 87f2f70 commit 0e8ded4
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion autonomi/src/client/quote.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::client::rate_limiter::RateLimiter;
use ant_evm::payment_vault::get_market_price;
use ant_evm::{Amount, EvmNetwork, PaymentQuote, QuotePayment, QuotingMetrics};
use ant_networking::{Network, NetworkError};
use ant_protocol::{storage::ChunkAddress, NetworkAddress};
use ant_protocol::{storage::ChunkAddress, NetworkAddress, CLOSE_GROUP_SIZE};
use libp2p::PeerId;
use std::collections::HashMap;
use xor_name::XorName;
Expand Down Expand Up @@ -159,6 +159,14 @@ async fn fetch_store_quote_with_retries(
loop {
match fetch_store_quote(network, content_addr).await {
Ok(quote) => {
if quote.len() < CLOSE_GROUP_SIZE {
retries += 1;
error!("Error while fetching store quote: not enough quotes ({}/{CLOSE_GROUP_SIZE}), retry #{retries}, quotes {quote:?}",
quote.len());
if retries > 2 {
break Err(CostError::CouldNotGetStoreQuote(content_addr));
}
}
break Ok((content_addr, quote));
}
Err(err) if retries < 2 => {
Expand All @@ -172,6 +180,9 @@ async fn fetch_store_quote_with_retries(
break Err(CostError::CouldNotGetStoreQuote(content_addr));
}
}
// Shall have a sleep between retries to avoid choking the network.
// This shall be rare to happen though.
std::thread::sleep(std::time::Duration::from_secs(5));
}
}

Expand Down

0 comments on commit 0e8ded4

Please sign in to comment.