From 19e59c1ba4b81efefc169d525feca9c367576f07 Mon Sep 17 00:00:00 2001 From: Pablo Carranza Velez Date: Sun, 23 Mar 2025 12:06:41 -0300 Subject: [PATCH] fix: use timeouts in all requests to subgraphs --- availability-oracle/src/epoch_block_oracle_subgraph.rs | 7 +++++-- availability-oracle/src/ipfs.rs | 5 +++-- availability-oracle/src/network_subgraph.rs | 8 ++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/availability-oracle/src/epoch_block_oracle_subgraph.rs b/availability-oracle/src/epoch_block_oracle_subgraph.rs index 1cea45e..6a6fe33 100644 --- a/availability-oracle/src/epoch_block_oracle_subgraph.rs +++ b/availability-oracle/src/epoch_block_oracle_subgraph.rs @@ -6,7 +6,7 @@ use serde_derive::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::pin::Pin; use std::sync::Arc; - +use std::time::Duration; pub trait EpochBlockOracleSubgraph { fn supported_networks(self: Arc) -> Pin>>>; } @@ -22,7 +22,10 @@ impl EpochBlockOracleSubgraphImpl { Arc::new(EpochBlockOracleSubgraphImpl { logger, endpoint, - client: Client::new(), + client: Client::builder() + .timeout(Duration::from_secs(60)) + .build() + .unwrap(), }) } } diff --git a/availability-oracle/src/ipfs.rs b/availability-oracle/src/ipfs.rs index 6d49cfe..1b31331 100644 --- a/availability-oracle/src/ipfs.rs +++ b/availability-oracle/src/ipfs.rs @@ -3,6 +3,7 @@ use bytes::Bytes; use common::prelude::*; use common::prometheus; use moka::future::Cache; +use reqwest::Client; use std::time::Duration; use tiny_cid::Cid; @@ -25,7 +26,7 @@ pub trait Ipfs { pub struct IpfsImpl { endpoint: String, semaphore: tokio::sync::Semaphore, - client: reqwest::Client, + client: Client, // Cache for CIDs; we invalidate this cache between runs to ensure we're checking // IPFS regularly @@ -38,7 +39,7 @@ pub struct IpfsImpl { impl IpfsImpl { pub fn new(endpoint: String, max_concurrent: usize, timeout: Duration) -> Self { IpfsImpl { - client: reqwest::Client::new(), + client: Client::new(), endpoint, semaphore: tokio::sync::Semaphore::new(max_concurrent), cache: Cache::new(10000), diff --git a/availability-oracle/src/network_subgraph.rs b/availability-oracle/src/network_subgraph.rs index dea6818..6332324 100644 --- a/availability-oracle/src/network_subgraph.rs +++ b/availability-oracle/src/network_subgraph.rs @@ -3,6 +3,7 @@ use common::prelude::*; use futures::stream; use futures::Stream; use multibase::Base; +use reqwest::Client; use serde_derive::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::pin::Pin; @@ -39,7 +40,7 @@ pub trait NetworkSubgraph { pub struct NetworkSubgraphImpl { logger: Logger, endpoint: String, - client: reqwest::Client, + client: Client, } impl NetworkSubgraphImpl { @@ -47,7 +48,10 @@ impl NetworkSubgraphImpl { Arc::new(NetworkSubgraphImpl { logger, endpoint, - client: reqwest::Client::new(), + client: Client::builder() + .timeout(Duration::from_secs(60)) + .build() + .unwrap(), }) } }