[ 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