Fix Cronet tests by canceling pending requests if a test times out. |
||
Issue descriptionThe 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
,
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
,
Nov 3 2017
,
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 |
||
Comment 1 by kapishnikov@chromium.org
, Nov 3 2017Status: Started (was: Available)