Chromium Code Reviews
Help | Chromium Project | Sign in
(72)

Issue 7029049: Merge 84251, 85083, 85188, 85375. (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
2 years, 11 months ago by wtc
Modified:
2 years, 11 months ago
Reviewers:
willchan
CC:
chromium-reviews_chromium.org, cbentzel+watch_chromium.org, darin-cc_chromium.org, PaweĊ‚ Hajdan Jr.
Visibility:
Public.

Description

Merge 84251, 85083, 85188, 85375.

Add a fallback socket connect() for IPv6.

When a hostname has both IPv6 and IPv4 addresses, and the IPv6 address is listed first, we start a timer (300ms) (deliberately chosen to be different from the backup connect job). If the timer fires, that means the IPv6 connect() hasn't completed yet, and we start a second socket connect() where we give it the same AddressList, except we move all IPv6 addresses that are in front of the first IPv4 address to the end. That way, we will use the first IPv4 address. We will race these two connect()s and pass the first one to complete to ConnectJob::set_socket().

Adds 4 new TCP connection latency histograms to assess the new behavior:
IPv6 raceable (includes both when it races and doesn't, which are distinguished
by whether or not the samples exceed the race timeout of 300ms)
IPv6 solo (no IPv4 addresses to race against)
IPv4 no race (IPv4 is the first address, so we're not racing)
IPv4 wins race (IPv4 raced and won, even though it started behind).

BUG=81686
TEST=On Linux, drop ip6 packets via `sudo ip6tables -A OUTPUT -p tcp -j DROP`. Then test against a site with both IPv6 and IPv4 addresses (such as www.ripe.net). It should load without hitting 20s connect() timeouts on the IPv6 addresses.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=85934

Patch Set 1 #

Patch Set 2 : Upload before checkin #

Unified diffs Side-by-side diffs Delta from patch set Stats (+578 lines, -88 lines) Lint Patch
M net/base/address_list.cc View 3 chunks +4 lines, -54 lines 0 comments 0 errors Download
M net/base/net_util.h View 1 chunk +10 lines, -0 lines 0 comments 0 errors Download
M net/base/net_util.cc View 2 chunks +53 lines, -0 lines 0 comments 0 errors Download
M net/socket/transport_client_socket_pool.h View 3 chunks +34 lines, -7 lines 0 comments 0 errors Download
M net/socket/transport_client_socket_pool.cc View 7 chunks +186 lines, -11 lines 0 comments 0 errors Download
M net/socket/transport_client_socket_pool_unittest.cc View 14 chunks +291 lines, -16 lines 0 comments 2 errors Download
Trybot results:
Commit:

Messages

Total messages: 2
wtc
Please review this CL for merging to the M12 742 branch. I had to fix ...
2 years, 11 months ago #1
willchan
2 years, 11 months ago #2
LGTM
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1280:2d3e6564b7b6