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

Issue 868132 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

Bound number of migrations for connection migration on packet write error per default network.

Project Member Reported by zhongyi@chromium.org, Jul 26

Issue description

Connection migration on packet write error is controlled by "migrate_sessions_on_network_change_v2". Each single migration's usage of non-default network is bounded by "max_time_on_non_default_network_seconds".

A migration caused by platform notification uses some amount of non-default network usage is fine as user is very likely aware of the network switching.

A migration caused by packet write error uses non-default network is not expected by the user unless a platform notification is delivered later. Therefore, we'd like to make sure to not use unbounded data on a non-default network. In the worst case, however, bounding single migration's usage is not sufficient to achieve the goal. For example, a session 
a)gets on the WiFi, 
b)encounters a packet write error and starts connection migration
c)successfully migrates to the Cellular, starts to migrate back to default network - WiFi,
d)after some time, say delta_t < max_time_on_non_default_network_seconds, session successfully migrates back on the WiFi

If such process repeats and platform doesn't deliver any notification while this is happening, we may end up with doing multiple migrations while the default never changes. 

To fix this issue, we will need to bound the number of migration for packet write error for each default network to prevent using non-default network too much. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 1

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

commit ee7607637f5454c70be1a9fc1c9fc18f03b93def
Author: Zhongyi Shi <zhongyi@chromium.org>
Date: Wed Aug 01 00:54:29 2018

Add a session config for max number of migrations on write error.

This change introduces a config number to bound the number of migrations on write error per network.

Bug: 868132
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ib519f80cd24d282522ccd01a2a4add0902a93298
Reviewed-on: https://chromium-review.googlesource.com/1154031
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579646}
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/components/cronet/url_request_context_config.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/components/cronet/url_request_context_config_unittest.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/components/network_session_configurator/browser/network_session_configurator.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/components/network_session_configurator/browser/network_session_configurator_unittest.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/http/http_network_session.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/http/http_network_session.h
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/http/http_proxy_client_socket_wrapper_unittest.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_chromium_client_session_test.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_http_stream_test.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_proxy_client_socket_unittest.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_stream_factory.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_stream_factory.h
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_stream_factory_fuzzer.cc
[modify] https://crrev.com/ee7607637f5454c70be1a9fc1c9fc18f03b93def/net/quic/chromium/quic_stream_factory_test.cc

Sign in to add a comment