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

Issue 781012 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug



Sign in to add a comment

Fix Cronet tests by canceling pending requests if a test times out.

Project Member Reported by kapishnikov@chromium.org, Nov 2 2017

Issue description

The iOS ToT test bot is frequently crashing with the following stack:

Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x000000010dfd41d2 __semwait_signal + 10
1   libsystem_pthread.dylib       	0x000000010e00e8ec _pthread_join + 626
2   org.chromium.net.Cronet       	0x0000000108e0da73 base::PlatformThread::Join(base::PlatformThreadHandle) + 83
3   org.chromium.net.Cronet       	0x0000000108e31e51 base::Thread::Stop() + 305
4   org.chromium.net.Cronet       	0x0000000108b65f43 cronet::CronetEnvironment::CronetNetworkThread::~CronetNetworkThread() + 35
5   org.chromium.net.Cronet       	0x0000000108b65f95 cronet::CronetEnvironment::CronetNetworkThread::~CronetNetworkThread() + 21
6   org.chromium.net.Cronet       	0x0000000108b65fb9 cronet::CronetEnvironment::CronetNetworkThread::~CronetNetworkThread() + 25
7   org.chromium.net.Cronet       	0x0000000108b64493 cronet::CronetEnvironment::~CronetEnvironment() + 259
8   org.chromium.net.Cronet       	0x0000000108b64f55 cronet::CronetEnvironment::~CronetEnvironment() + 21

Thread 12 Crashed:: Chrome Network IO Thread
0   org.chromium.net.Cronet       	0x0000000108c1de04 base::debug::BreakDebugger() + 20
1   org.chromium.net.Cronet       	0x0000000108c86f20 logging::LogMessage::~LogMessage() + 4960
2   org.chromium.net.Cronet       	0x0000000108c838f5 logging::LogMessage::~LogMessage() + 21
3   org.chromium.net.Cronet       	0x0000000109a6f66b net::URLRequestContext::AssertNoURLRequests() const + 1243
4   org.chromium.net.Cronet       	0x0000000109a817f4 net::(anonymous namespace)::ContainerURLRequestContext::~ContainerURLRequestContext() + 68
5   org.chromium.net.Cronet       	0x0000000109a81705 net::(anonymous namespace)::ContainerURLRequestContext::~ContainerURLRequestContext() + 21
6   org.chromium.net.Cronet       	0x0000000109a81729 net::(anonymous namespace)::ContainerURLRequestContext::~ContainerURLRequestContext() + 25
7   org.chromium.net.Cronet       	0x0000000108b642b7 cronet::CronetEnvironment::CleanUpOnNetworkThread() + 327
8   org.chromium.net.Cronet       	0x0000000108b65fec cronet::CronetEnvironment::CronetNetworkThread::CleanUp() + 28
9   org.chromium.net.Cronet       	0x0000000108e34433 base::Thread::ThreadMain() + 2483

This happens because a test can timeout without explicitly canceling the request; thus, leaving a pending request in the system. When Cronet re-initializes for the next test, it calls CronetEnvironment::CronetNetworkThread::CleanUp(), which fails on net::URLRequestContext::AssertNoURLRequests() because of the pending request from the previous test.

https://build.chromium.org/p/chromium.fyi/builders/ios-simulator-cronet/builds/26047

 
Owner: kapishnikov@chromium.org
Status: Started (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 3 2017

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

commit 3c3f1fcb28de66a5c87c8f12c32ecf096d2d5305
Author: kapishnikov <kapishnikov@chromium.org>
Date: Fri Nov 03 18:12:30 2017

Fix Cronet tests by canceling pending requests if a test times out.

Also increase timeout to 30 seconds.

BUG= 781012 

Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I4659f8d92a655fbaae8227257e8031bcdcb7608c
Reviewed-on: https://chromium-review.googlesource.com/753923
Reviewed-by: Misha Efimov <mef@chromium.org>
Commit-Queue: Andrei Kapishnikov <kapishnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513838}
[modify] https://crrev.com/3c3f1fcb28de66a5c87c8f12c32ecf096d2d5305/components/cronet/ios/test/cronet_pkp_test.mm
[modify] https://crrev.com/3c3f1fcb28de66a5c87c8f12c32ecf096d2d5305/components/cronet/ios/test/cronet_test_base.h
[modify] https://crrev.com/3c3f1fcb28de66a5c87c8f12c32ecf096d2d5305/components/cronet/ios/test/cronet_test_base.mm

Status: Fixed (was: Started)
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 28 2017

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

commit 87a55b716d0280270b28ca2a78e8abe265e2036d
Author: kapishnikov <kapishnikov@chromium.org>
Date: Tue Nov 28 23:09:31 2017

Reduce response wait time in Cronet tests for iOS

Since  BUG 787148  that caused Cronet test flakiness on iOS has
been fixed, we can reduce the timeout. 15 seconds should be enough
time for all current tests.

BUG= 781012 

Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ieaa65d6a6e65112be4dfea821f1142a51acdc7ce
Reviewed-on: https://chromium-review.googlesource.com/794038
Reviewed-by: Misha Efimov <mef@chromium.org>
Commit-Queue: Andrei Kapishnikov <kapishnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519887}
[modify] https://crrev.com/87a55b716d0280270b28ca2a78e8abe265e2036d/components/cronet/ios/test/cronet_test_base.h

Sign in to add a comment