This is an automated email from the ASF dual-hosted git repository.

vvivekiyer pushed a commit to branch hotfix-array-agg
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/hotfix-array-agg by this push:
     new 316a5a7b19 Fix httpsSegmentFetcher to use the configurable timeouts 
(#15485) (#15499)
316a5a7b19 is described below

commit 316a5a7b19d249afe9fb7eb7f95ce7a6b0a4967a
Author: Vivek Iyer Vaidyanathan <vviveki...@gmail.com>
AuthorDate: Tue Apr 8 13:16:11 2025 -0700

    Fix httpsSegmentFetcher to use the configurable timeouts (#15485) (#15499)
---
 .../pinot/common/utils/fetcher/HttpSegmentFetcher.java | 15 +++++++++++++--
 .../common/utils/fetcher/HttpsSegmentFetcher.java      |  1 +
 .../common/utils/fetcher/HttpSegmentFetcherTest.java   | 18 ++++++++++++++++--
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcher.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcher.java
index 6a77611aa6..010b43eb77 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcher.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcher.java
@@ -44,9 +44,9 @@ import org.apache.pinot.spi.utils.retry.RetryPolicies;
 
 public class HttpSegmentFetcher extends BaseSegmentFetcher {
   protected FileUploadDownloadClient _httpClient;
-  private static final String CONNECTION_REQUEST_TIMEOUT_CONFIG_KEY =
+  public static final String CONNECTION_REQUEST_TIMEOUT_CONFIG_KEY =
       "http.request.connectionRequestTimeoutMs";
-  private static final String SOCKET_TIMEOUT_CONFIG_KEY = 
"http.request.socketTimeoutMs";
+  public static final String SOCKET_TIMEOUT_CONFIG_KEY = 
"http.request.socketTimeoutMs";
   private int _connectionRequestTimeoutMs;
   private int _socketTimeoutMs;
 
@@ -55,6 +55,17 @@ public class HttpSegmentFetcher extends BaseSegmentFetcher {
     _httpClient = httpClient;
   }
 
+  @VisibleForTesting
+  public int getConnectionRequestTimeoutMs() {
+    return _connectionRequestTimeoutMs;
+  }
+
+  @VisibleForTesting
+  public int getSocketTimeoutMs() {
+    return _socketTimeoutMs;
+  }
+
+
   @Override
   protected void doInit(PinotConfiguration config) {
     if (_httpClient == null) {
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpsSegmentFetcher.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpsSegmentFetcher.java
index 71528595d8..e6b08532a7 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpsSegmentFetcher.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/fetcher/HttpsSegmentFetcher.java
@@ -71,5 +71,6 @@ public class HttpsSegmentFetcher extends HttpSegmentFetcher {
 
     SSLContext sslContext = new 
ClientSSLContextGenerator(sslConfig).generate();
     _httpClient = new 
FileUploadDownloadClient(HttpClientConfig.newBuilder(config).build(), 
sslContext);
+    super.doInit(config);
   }
 }
diff --git 
a/pinot-common/src/test/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcherTest.java
 
b/pinot-common/src/test/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcherTest.java
index 1a567901b9..c83036a633 100644
--- 
a/pinot-common/src/test/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcherTest.java
+++ 
b/pinot-common/src/test/java/org/apache/pinot/common/utils/fetcher/HttpSegmentFetcherTest.java
@@ -21,14 +21,17 @@ package org.apache.pinot.common.utils.fetcher;
 import java.io.File;
 import java.net.URI;
 import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
 import java.util.function.Supplier;
 import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.utils.FileUploadDownloadClient;
 import org.apache.pinot.spi.env.PinotConfiguration;
 import org.apache.pinot.spi.utils.retry.AttemptsExceededException;
+import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
+import static org.apache.pinot.common.utils.fetcher.HttpSegmentFetcher.*;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -46,12 +49,23 @@ public class HttpSegmentFetcherTest {
     _fetcherConfig.setProperty(BaseSegmentFetcher.RETRY_COUNT_CONFIG_KEY, 3);
     _fetcherConfig.setProperty(BaseSegmentFetcher.RETRY_WAIT_MS_CONFIG_KEY, 
10);
     
_fetcherConfig.setProperty(BaseSegmentFetcher.RETRY_DELAY_SCALE_FACTOR_CONFIG_KEY,
 1.1);
+    _fetcherConfig.setProperty(CONNECTION_REQUEST_TIMEOUT_CONFIG_KEY, 1000);
+    _fetcherConfig.setProperty(SOCKET_TIMEOUT_CONFIG_KEY, 1000);
   }
 
   private HttpSegmentFetcher getSegmentFetcher(FileUploadDownloadClient 
client) {
-    HttpSegmentFetcher segmentFetcher = new HttpSegmentFetcher();
-    segmentFetcher.setHttpClient(client);
+    HttpSegmentFetcher segmentFetcher;
+    if (ThreadLocalRandom.current().nextBoolean()) {
+      segmentFetcher = new HttpsSegmentFetcher();
+    } else {
+      segmentFetcher = new HttpSegmentFetcher();
+    }
+
     segmentFetcher.init(_fetcherConfig);
+    segmentFetcher.setHttpClient(client);
+
+    Assert.assertEquals(segmentFetcher.getSocketTimeoutMs(), 1000);
+    Assert.assertEquals(segmentFetcher.getConnectionRequestTimeoutMs(), 1000);
     return segmentFetcher;
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to