[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-2015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16928736#comment-16928736
 ] 

Chanseok Oh commented on HTTPCLIENT-2015:
-----------------------------------------

Oh, okay. I think I got it but somewhat vaguely. Excuse my ignorance, as I'm 
not familiar with "multi-home DNS addresses".

So, in my test case above, does this mean that my machine has, say, two network 
cards (NIC or whatever) each assigned a different IP address connecting two 
different networks and HttpClient tries the first route that times out after 3 
seconds and then tries the second route, making the total "timeout" feel like 6 
seconds? Or, is it the {{example.com}} host that has two IPs?

> Connect timeout value is effective doubled
> ------------------------------------------
>
>                 Key: HTTPCLIENT-2015
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2015
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient (classic)
>    Affects Versions: 4.5.10
>         Environment: Debian-based Linux
> openjdk version "1.8.0_222"
> OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1-b10)
> OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
>            Reporter: Chanseok Oh
>            Priority: Minor
>
> The connection times out, say, after 6 seconds when calling 
> `setConnectionTimeout(3000)`. The timeout value is effectively doubled. I've 
> provided sample code, which demonstrates that the JDK Socket times out after 
> 3 seconds, but the Apache HTTP Client times out after 6 seconds.
> This may seem like a minor bug to others, but our product functionality 
> depends on timeouts in part and allows the user to adjust the timeouts, and 
> this timeout-doubling-effect is causing some trouble to us.
> {code:java}
>   public static void main(String[] args) {
>     long started = System.nanoTime();
>     try (Socket socket = new Socket()) {
>       socket.connect(new InetSocketAddress("example.com", 81), 3000);
>     } catch (IOException ex) {
>       ex.printStackTrace(System.out);
>     } finally {
>       System.out.println("JDK elapsed (s): " + (System.nanoTime() - started) 
> / 1000000000L);
>     }
>     try (CloseableHttpClient client = HttpClients.createDefault()) {
>       HttpGet httpGet = new HttpGet("https://example.com:81";);
>       
> httpGet.setConfig(RequestConfig.custom().setConnectTimeout(3000).build());
>       long started2 = System.nanoTime();
>       try (CloseableHttpResponse res = client.execute(httpGet)) {
>       } finally {
>         System.out.println("Apache elapsed (s): " + (System.nanoTime() - 
> started2) / 1000000000L);
>       }
>     } catch (IOException ex) {
>       ex.printStackTrace(System.out);
>     }
>   }
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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

Reply via email to