New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 818259 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Improve connection migration V2 performance

Project Member Reported by zhongyi@chromium.org, Mar 2 2018

Issue description

The major implementation of connection migration has been complete(see crbug/774622) and the feature is being deployed/launched by embedders. This bug will be used to track subsequent work to improve connection migration performance. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4823bd84ad25eff400115ed2d97db879d80836f

commit c4823bd84ad25eff400115ed2d97db879d80836f
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Fri Apr 27 00:49:19 2018

Add a unit test for connection migration

This tests covers the case where migration to a non-default network
happens after successful probing and the session will spin up a timer to
migrate back to the default network until the non-default network become the new default.

Bug: 818259
Change-Id: I76f0f5698c68c8661172b6060fe14cd3562dffdd
Reviewed-on: https://chromium-review.googlesource.com/996767
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554234}
[modify] https://crrev.com/c4823bd84ad25eff400115ed2d97db879d80836f/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/c4823bd84ad25eff400115ed2d97db879d80836f/net/quic/chromium/quic_stream_factory_test.cc
[modify] https://crrev.com/c4823bd84ad25eff400115ed2d97db879d80836f/net/quic/chromium/quic_test_packet_maker.cc
[modify] https://crrev.com/c4823bd84ad25eff400115ed2d97db879d80836f/net/quic/chromium/quic_test_packet_maker.h

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3810c5e8e033f4015c17c092ef2ad339171344c

commit a3810c5e8e033f4015c17c092ef2ad339171344c
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Fri Jun 15 23:07:19 2018

Fix default_network_ in QuicChromiumClientSession when the old default network is disconnected.

Do not try migrate back to default network if it's disconnected.
Remove Connection Migration V1 tests and add equivalent test coverage
in V2 to test session is migrated when a new network is connected after
write error. The new V2 tests are also regression tests which verifies
session doesn't attempt to migrate back if default network is
disconnected.

Bug: 818259,  843299 
Change-Id: I54c793b8110eb134d4eeaa3ec7d6d129fdd6aeef
Reviewed-on: https://chromium-review.googlesource.com/1102109
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567821}
[modify] https://crrev.com/a3810c5e8e033f4015c17c092ef2ad339171344c/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/a3810c5e8e033f4015c17c092ef2ad339171344c/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1e2bc749ae0c900ab4c89beafe38887fce55e62c

commit 1e2bc749ae0c900ab4c89beafe38887fce55e62c
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Sat Jun 16 02:06:07 2018

Fix test setup in MigrateOnWriteErrorWithNetworkMadeDefaultQueuedLater to test the network disconnected notification.

Bug: 818259,  843299 
Change-Id: I961c780dabc7628a598b1cab03231307fb705891
Reviewed-on: https://chromium-review.googlesource.com/1102988
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567861}
[modify] https://crrev.com/1e2bc749ae0c900ab4c89beafe38887fce55e62c/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b24001c0048e8d78c078a28b260720b7d97e9502

commit b24001c0048e8d78c078a28b260720b7d97e9502
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Mon Jun 18 20:01:52 2018

Fix QUIC connection migration to cancel migrate back to default if an earlier migration has brought the session to the default network.

This change also converts obsolete V1 tests for V2, adding regression test coverage.

Bug: 818259,  843299 
Change-Id: I8abfdb9af15af132efab62686fb014502e641198
Reviewed-on: https://chromium-review.googlesource.com/1103222
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568117}
[modify] https://crrev.com/b24001c0048e8d78c078a28b260720b7d97e9502/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/b24001c0048e8d78c078a28b260720b7d97e9502/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f316b26d7cb78e887f9d3ee0a5716ffc7dd91ea

commit 9f316b26d7cb78e887f9d3ee0a5716ffc7dd91ea
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Mon Jun 18 22:01:16 2018

Add equivalent test coverage in QUIC Connection Migration V2 and remove v1 tests.

These test verifies that a session will migrate immediately to the alternate network when the default network disconnects.

Bug: 818259,  843299 
Change-Id: Id8be7a79db09cf6ec5e706e8bf6442351bdd11cc
Reviewed-on: https://chromium-review.googlesource.com/1103608
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568186}
[modify] https://crrev.com/9f316b26d7cb78e887f9d3ee0a5716ffc7dd91ea/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b1b1fa4a9a19d4ab2380641c7373ef5d095ae3b0

commit b1b1fa4a9a19d4ab2380641c7373ef5d095ae3b0
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Tue Jun 19 23:13:47 2018

Add equivalent test coverage in QUIC Connection Migration V2 and remove V1 tests.

This test verifies that migration will be timed out after kWaitTimeForNewNetworkSecs and closes the connection if there's no network available.

Bug: 818259,  843299 
Change-Id: I58e4945d84e153f621187a1b1b46ac9dbb4e3372
Reviewed-on: https://chromium-review.googlesource.com/1107106
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568634}
[modify] https://crrev.com/b1b1fa4a9a19d4ab2380641c7373ef5d095ae3b0/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22fd5f556e6383f9c99d3b0ffd77f561c4971a86

commit 22fd5f556e6383f9c99d3b0ffd77f561c4971a86
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Jun 20 17:39:09 2018

Add equivalent test in QUIC Connection Migration V2 and remove v1 tests.

This tests verifies that session migrates to alternate network
successfully on path degrading detected with async/sync write before the
mgiration.

Bug: 818259,  843299 
Change-Id: Ie1dd92c4d21252151533601e4ae0f4857ab8d805
Reviewed-on: https://chromium-review.googlesource.com/1107166
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568907}
[modify] https://crrev.com/22fd5f556e6383f9c99d3b0ffd77f561c4971a86/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ec9b36e05010052b922a72e4cdb7c39f12e216d

commit 6ec9b36e05010052b922a72e4cdb7c39f12e216d
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Jun 20 20:32:54 2018

Add equivalent test in QUIC Connection Migration V2 and remove v1 tests.

This test verifies that session attempts connection migration when path degrading is detected. If there's no alternate network, session stays on the original network (not marked as going away), and has connection to cache the path degrading signal. Session can finish serving requests on the original network.

Bug: 818259,  843299 
Change-Id: Iab29e9a253d08b933191dc0f6dfb6b461e3e3e3e
Reviewed-on: https://chromium-review.googlesource.com/1108489
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568993}
[modify] https://crrev.com/6ec9b36e05010052b922a72e4cdb7c39f12e216d/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/28f6e3584fd14d7ee01ee00f75f069c31e01a893

commit 28f6e3584fd14d7ee01ee00f75f069c31e01a893
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Jun 20 21:15:43 2018

Add equivalent test in QUIC Connection Migration V2 and remove v1 tests.

This test verifies that QuicStreamFactory broadcasts connection migration signal to all the sessions and multiple sessions migrate to new network afterwards.

Bug: 818259,  843299 
Change-Id: I9ade5015b9eb992bf83d23132c5aa0bfeb3563a6
Reviewed-on: https://chromium-review.googlesource.com/1108516
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569020}
[modify] https://crrev.com/28f6e3584fd14d7ee01ee00f75f069c31e01a893/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0644e393f7ee46f3139e599a5e03c996eaa6869

commit a0644e393f7ee46f3139e599a5e03c996eaa6869
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Thu Jun 21 05:19:52 2018

Add equivalent test in QUIC Connection Migration V2 and remove v1 tests.

These tests verify that session sends connnectivity probes on new
default network before migrate to it.

Bug: 818259,  843299 
Change-Id: I73e9961dec23de933818e16f917f41d224fde98a
Reviewed-on: https://chromium-review.googlesource.com/1109407
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569161}
[modify] https://crrev.com/a0644e393f7ee46f3139e599a5e03c996eaa6869/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4ac9e1fe20c1c1ececb49823178847ba6e51b59b

commit 4ac9e1fe20c1c1ececb49823178847ba6e51b59b
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Thu Jun 21 05:21:47 2018

Add equivalent test coverage in QUIC connection migration V2 and remove v1 tests.

Two tests simulates that session encounters a ASYNC/SYNCHRONOUS write error on the old network, new network connected before old network disconnects. Session should migrate successfully on write error.

Two tests simulates that session encounters a ASYNC/SYNCHRONOUS write error on the old network, new network connected after old network disconnects. Session should migrate successfully on write error.

Bug: 818259,  843299 
Change-Id: I43206f683743675302af31b1ee86c64c258b1c9d
Reviewed-on: https://chromium-review.googlesource.com/1108931
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569163}
[modify] https://crrev.com/4ac9e1fe20c1c1ececb49823178847ba6e51b59b/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f1d9218cf6aac408bbe7f097428f94c799f16da

commit 7f1d9218cf6aac408bbe7f097428f94c799f16da
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Fri Jun 22 23:24:36 2018

Add equivalent test coverage in QUIC connection migration V2 and remove v1 tests.

These tests verify that connection migration on write error can eventually succeed and rewrite the packet on the new network after multiple consecutive write errors.

Bug: 818259,  843299 
Change-Id: If9e3672dd8fb07b65aa5fa9a892ec2a7dec7babc
Reviewed-on: https://chromium-review.googlesource.com/1112630
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569832}
[modify] https://crrev.com/7f1d9218cf6aac408bbe7f097428f94c799f16da/net/quic/chromium/quic_stream_factory_test.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/87ef15c76877007a993787bf493e922c87612b79

commit 87ef15c76877007a993787bf493e922c87612b79
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Jun 27 22:00:43 2018

Some more cleanup in QUIC Connection Migration V2, no behavior change.

This change changes ShouldMigrateSession(renamed as IsSessionMigratable) to take a boolean to close session if not migratable. It also removes MigrateToAlternate, which was only called in MigrateSessionOnWriteError by directly calling IsSessionMigratable.

Bug: 818259
Change-Id: I699675b43fcdcde91b079021a48a77eff6b6bf32
Reviewed-on: https://chromium-review.googlesource.com/1115763
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570914}
[modify] https://crrev.com/87ef15c76877007a993787bf493e922c87612b79/net/http/http_proxy_client_socket_wrapper_unittest.cc
[modify] https://crrev.com/87ef15c76877007a993787bf493e922c87612b79/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/87ef15c76877007a993787bf493e922c87612b79/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/87ef15c76877007a993787bf493e922c87612b79/net/quic/chromium/quic_stream_factory.h

Sign in to add a comment