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

Issue 738422 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

testHostCachePersistence fails on device with WiFi connected

Project Member Reported by pauljensen@chromium.org, Jun 30 2017

Issue description

Sometimes it's the first request that fails:

C   25.631s Main  [FAIL] org.chromium.net.ExperimentalOptionsTest#testHostCachePersistence:
C   25.631s Main  java.lang.Throwable: CronetTestBase#runTest failed.
C   25.631s Main        at org.chromium.net.CronetTestBase.runTest(CronetTestBase.java:197)
C   25.631s Main        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
C   25.631s Main        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
C   25.631s Main        at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
C   25.631s Main        at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
C   25.631s Main  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.chromium.net.aW.c()' on a null object reference
C   25.631s Main        at org.chromium.net.ExperimentalOptionsTest.testHostCachePersistence(ExperimentalOptionsTest.java:182)
C   25.631s Main        at org.chromium.net.CronetTestBase.runTest(CronetTestBase.java:183)
C   25.631s Main        ... 9 more

logcat shows the first request failing:

V/chromium(10716): [0630/083234.872674:VERBOSE1:cronet_url_request_adapter.cc(302)] Starting chromium request: http://host-cache-test-host:35408/echo priority: MEDIUM
V/chromium(10716): [0630/083234.882043:VERBOSE1:histogram.cc(376)] Histogram: Net.ProxyService.ResolveProxyTime has bad minimum: 0
V/chromium(10716): [0630/083234.882623:VERBOSE1:spdy_session_key.cc(23)] SpdySessionKey(host=host-cache-test-host:35408, proxy=direct://, privacy=0
V/chromium(10716): [0630/083234.883752:VERBOSE2:net_errors_posix.cc(18)] Error 101
V/chromium(10716): [0630/083234.889490:VERBOSE1:cronet_url_request_adapter.cc(391)] Error net::ERR_NAME_NOT_RESOLVED on chromium request: http://host-cache-test-host:35408/echo

Sometimes it's the second request that fails:

C   25.460s Main  [FAIL] org.chromium.net.ExperimentalOptionsTest#testHostCachePersistence:
C   25.460s Main  java.lang.Throwable: CronetTestBase#runTest failed.
C   25.460s Main        at org.chromium.net.CronetTestBase.runTest(CronetTestBase.java:197)
C   25.460s Main        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
C   25.460s Main        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
C   25.461s Main        at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
C   25.461s Main        at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
C   25.461s Main  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.chromium.net.aW.c()' on a null object reference
C   25.461s Main        at org.chromium.net.ExperimentalOptionsTest.testHostCachePersistence(ExperimentalOptionsTest.java:195)
C   25.461s Main        at org.chromium.net.CronetTestBase.runTest(CronetTestBase.java:183)
C   25.461s Main        ... 9 more

logcat shows the first request succeeding and the second failing with:

V/chromium( 9302): [0630/080159.728831:VERBOSE1:cronet_url_request_adapter.cc(302)] Starting chromium request: http://host-cache-test-host:39546/echo priority: MEDIUM
V/chromium( 9302): [0630/080159.730724:VERBOSE1:spdy_session_key.cc(23)] SpdySessionKey(host=host-cache-test-host:39546, proxy=direct://, privacy=0
V/chromium( 9302): [0630/080159.731944:VERBOSE2:net_errors_posix.cc(18)] Error 101
V/chromium( 9302): [0630/080159.738811:VERBOSE1:cronet_url_request_adapter.cc(391)] Error net::ERR_NAME_NOT_RESOLVED on chromium request: http://host-cache-test-host:39546/echo

The "Error 101" I assume is ENETUNREACH

I see my device has a WiFi connection with IPv4 and IPv6 addresses:
$ adb shell ip addr show dev wlan0
28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 100
    link/ether 40:b0:fa:bf:b1:b0 brd ff:ff:ff:ff:ff:ff
    inet 100.71.55.155/20 brd 100.71.63.255 scope global wlan0
    inet6 2620:15c:6:fd00:dd77:ad1f:413b:406a/64 scope global temporary dynamic 
       valid_lft 544678sec preferred_lft 25678sec
    inet6 2620:15c:6:fd00:a4e3:7fe7:ad6:519c/64 scope global temporary deprecated dynamic 
       valid_lft 458881sec preferred_lft 0sec
    inet6 2620:15c:6:fd00:3060:d3bd:5f10:5ab3/64 scope global temporary deprecated dynamic 
       valid_lft 373084sec preferred_lft 0sec
    inet6 2620:15c:6:fd00:e88f:a31e:5b92:6f2d/64 scope global temporary deprecated dynamic 
       valid_lft 287286sec preferred_lft 0sec
    inet6 2620:15c:6:fd00:42b0:faff:febf:b1b0/64 scope global dynamic 
       valid_lft 2428228sec preferred_lft 441028sec
    inet6 fe80::42b0:faff:febf:b1b0/64 scope link 
       valid_lft forever preferred_lft forever

But has no IPv6 default route:
$ adb shell ip -6 route
$

Perhaps WriteToHostCacheOnNetworkThread() might need to not use net::ADDRESS_FAMILY_UNSPECIFIED all the time.
 
Not sure my IPv6 idea was the solution, switching it to ADDRESS_FAMILY_IPV4 didn't fix it.

Comment 2 by mge...@chromium.org, Jun 30 2017

Status: Assigned (was: Unconfirmed)

Comment 3 by mge...@chromium.org, Jun 30 2017

That's weird--on my test device it passes with wifi on (the configuration I was using when writing the CL) but fails with wifi off. I'm guessing you're right about the general idea though: something in the address family or host resolver flags is wrong.
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 30 2017

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

commit c086608e9875877220f9153923f0183b28a734c2
Author: mgersh <mgersh@chromium.org>
Date: Fri Jun 30 18:26:59 2017

Fix hostCachePersistenceTest for devices with no IPv6 connectivity

BUG= 738422 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2970563002
Cr-Commit-Position: refs/heads/master@{#483768}

[modify] https://crrev.com/c086608e9875877220f9153923f0183b28a734c2/components/cronet/android/test/experimental_options_test.cc

Comment 5 by mge...@chromium.org, Jun 30 2017

Status: Fixed (was: Assigned)

Sign in to add a comment