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

Issue 836823 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug

Blocking:
issue 835036



Sign in to add a comment

The iOS "ios-simulator-cronet" bot is failing with error "requires a single-threaded context"

Project Member Reported by kapishnikov@chromium.org, Apr 25 2018

Issue description

All bidirectional stream tests are failing with the error. Example stack trace:

[55791:30979:0425/070502.437145:24881252458072:FATAL:thread_task_runner_handle.cc(29)] Check failed: current. Error: This caller requires a single-threaded context (i.e. the current task needs to run from a SingleThreadTaskRunner).
0   cronet_test                         0x0000000108c6f38d base::debug::StackTrace::StackTrace(unsigned long) + 157
1   cronet_test                         0x0000000108c6f3cd base::debug::StackTrace::StackTrace(unsigned long) + 29
2   cronet_test                         0x000000010897219c base::debug::StackTrace::StackTrace() + 28
3   cronet_test                         0x00000001089c33fc logging::LogMessage::~LogMessage() + 460
4   cronet_test                         0x00000001089c1235 logging::LogMessage::~LogMessage() + 21
5   cronet_test                         0x0000000108b67123 base::ThreadTaskRunnerHandle::Get() + 211
6   cronet_test                         0x00000001090ee184 net::QuicStreamFactory::Create(net::QuicSessionKey const&, net::HostPortPair const&, net::QuicTransportVersion, net::RequestPriority, int, GURL const&, net::NetLogWithSource const&, net::QuicStreamRequest*) + 4996
7   cronet_test                         0x00000001090ecbc7 net::QuicStreamRequest::Request(net::HostPortPair const&, net::QuicTransportVersion, net::PrivacyMode, net::RequestPriority, net::SocketTag const&, int, GURL const&, net::NetLogWithSource const&, net::NetErrorDetails*, base::RepeatingCallback<void (int)> const&) + 1095
8   cronet_test                         0x0000000108fa362b net::HttpStreamFactory::Job::DoInitConnectionImpl() + 1675
9   cronet_test                         0x0000000108f9f113 net::HttpStreamFactory::Job::DoInitConnection() + 51
10  cronet_test                         0x0000000108f9e0a7 net::HttpStreamFactory::Job::DoLoop(int) + 1047
11  cronet_test                         0x0000000108f99d32 net::HttpStreamFactory::Job::RunLoop(int) + 322
12  cronet_test                         0x0000000108f99664 net::HttpStreamFactory::Job::StartInternal() + 244
13  cronet_test                         0x0000000108f99561 net::HttpStreamFactory::Job::Start(net::HttpStreamRequest::StreamType) + 33
14  cronet_test                         0x0000000108fbf2a5 net::HttpStreamFactory::JobController::DoCreateJobs() + 6677
15  cronet_test                         0x0000000108fbd0bd net::HttpStreamFactory::JobController::DoLoop(int) + 701
16  cronet_test                         0x0000000108fb3be2 net::HttpStreamFactory::JobController::RunLoop(int) + 66
17  cronet_test                         0x0000000108fb2c6b net::HttpStreamFactory::JobController::OnIOComplete(int) + 27
18  cronet_test                         0x0000000108fc306f void base::internal::FunctorTraits<void (net::HttpStreamFactory::JobController::*)(int), void>::Invoke<net::HttpStreamFactory::JobController*, int>(void (net::HttpStreamFactory::JobController::*)(int), net::HttpStreamFactory::JobController*&&, int&&) + 143
19  cronet_test                         0x0000000108fc2f9f void base::internal::InvokeHelper<false, void>::MakeItSo<void (net::HttpStreamFactory::JobController::* const&)(int), net::HttpStreamFactory::JobController*, int>(void (net::HttpStreamFactory::JobController::* const&&&)(int), net::HttpStreamFactory::JobController*&&, int&&) + 95
20  cronet_test                         0x0000000108fc2f35 void base::internal::Invoker<base::internal::BindState<void (net::HttpStreamFactory::JobController::*)(int), base::internal::UnretainedWrapper<net::HttpStreamFactory::JobController> >, void (int)>::RunImpl<void (net::HttpStreamFactory::JobController::* const&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::HttpStreamFactory::JobController> > const&, 0ul>(void (net::HttpStreamFactory::JobController::* const&&&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::HttpStreamFactory::JobController> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>, int&&) + 101
21  cronet_test                         0x0000000108fc2e6b base::internal::Invoker<base::internal::BindState<void (net::HttpStreamFactory::JobController::*)(int), base::internal::UnretainedWrapper<net::HttpStreamFactory::JobController> >, void (int)>::Run(base::internal::BindStateBase*, int) + 59
22  Cronet                              0x000000010e0fb90e base::RepeatingCallback<void (int)>::Run(int) const & + 78
23  Cronet                              0x000000010eb90bf7 net::ProxyResolutionService::Request::QueryComplete(int) + 103
24  Cronet                              0x000000010eb86e7f net::ProxyResolutionService::Request::StartAndCompleteCheckingForSynchronous() + 111
25  Cronet                              0x000000010eb86c8d net::ProxyResolutionService::SetReady() + 2253
26  Cronet                              0x000000010eb87025 net::ProxyResolutionService::InitializeUsingLastFetchedConfig() + 309
27  Cronet                              0x000000010eb8c399 net::ProxyResolutionService::OnProxyConfigChanged(net::ProxyConfigWithAnnotation const&, net::ProxyConfigService::ConfigAvailability) + 537
28  Cronet                              0x000000010eb5f9bf net::PollingProxyConfigService::Core::GetConfigCompleted(net::ProxyConfigWithAnnotation const&) + 687
29  Cronet                              0x000000010eb5fcff void base::internal::FunctorTraits<void (net::PollingProxyConfigService::Core::*)(net::ProxyConfigWithAnnotation const&), void>::Invoke<scoped_refptr<net::PollingProxyConfigService::Core> const&, net::ProxyConfigWithAnnotation const&>(void (net::PollingProxyConfigService::Core::*)(net::ProxyConfigWithAnnotation const&), scoped_refptr<net::PollingProxyConfigService::Core> const&&&, net::ProxyConfigWithAnnotation const&&&) + 143
30  Cronet                              0x000000010eb5fc5f void base::internal::InvokeHelper<false, void>::MakeItSo<void (net::PollingProxyConfigService::Core::* const&)(net::ProxyConfigWithAnnotation const&), scoped_refptr<net::PollingProxyConfigService::Core> const&, net::ProxyConfigWithAnnotation const&>(void (net::PollingProxyConfigService::Core::* const&&&)(net::ProxyConfigWithAnnotation const&), scoped_refptr<net::PollingProxyConfigService::Core> const&&&, net::ProxyConfigWithAnnotation const&&&) + 95
31  Cronet                              0x000000010eb5fbed void base::internal::Invoker<base::internal::BindState<void (net::PollingProxyConfigService::Core::*)(net::ProxyConfigWithAnnotation const&), scoped_refptr<net::PollingProxyConfigService::Core>, net::ProxyConfigWithAnnotation>, void ()>::RunImpl<void (net::PollingProxyConfigService::Core::* const&)(net::ProxyConfigWithAnnotation const&), std::__1::tuple<scoped_refptr<net::PollingProxyConfigService::Core>, net::ProxyConfigWithAnnotation> const&, 0ul, 1ul>(void (net::PollingProxyConfigService::Core::* const&&&)(net::ProxyConfigWithAnnotation const&), std::__1::tuple<scoped_refptr<net::PollingProxyConfigService::Core>, net::ProxyConfigWithAnnotation> const&&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 125
32  Cronet                              0x000000010eb5fafc base::internal::Invoker<base::internal::BindState<void (net::PollingProxyConfigService::Core::*)(net::ProxyConfigWithAnnotation const&), scoped_refptr<net::PollingProxyConfigService::Core>, net::ProxyConfigWithAnnotation>, void ()>::Run(base::internal::BindStateBase*) + 44

Link: https://ci.chromium.org/buildbot/tryserver.chromium.mac/ios-simulator-cronet/7779
 

Comment 1 by mef@chromium.org, Apr 25 2018

Cc: b...@chromium.org
This is caused by https://chromium-review.googlesource.com/c/chromium/src/+/1023321

I've verified that reverting it locally fixes the problem,
Cc: -b...@chromium.org kapishnikov@chromium.org mef@chromium.org
Owner: b...@chromium.org

Comment 3 by mef@chromium.org, Apr 25 2018

Cc: b...@chromium.org
Owner: mef@chromium.org
Status: Started (was: Assigned)
This CL fixes the issue in my local environment, but I can't explain the issue: https://chromium-review.googlesource.com/c/chromium/src/+/1028630

Comment 4 by mef@chromium.org, Apr 25 2018

Blocking: 835036
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 26 2018

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

commit 2eb7d93ed08831863200e2bbc11ab52442139d86
Author: Misha Efimov <mef@google.com>
Date: Thu Apr 26 00:01:20 2018

Fix broken BidirectionalStreamTest in Cronet on iOS.

Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Bug:  836823 ,  829429 
Change-Id: Id69a596b5d260ceec0794c6c6478ad01ce61a0da
Reviewed-on: https://chromium-review.googlesource.com/1028630
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Misha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553832}
[modify] https://crrev.com/2eb7d93ed08831863200e2bbc11ab52442139d86/net/http/http_stream_factory.h

Status: Fixed (was: Started)

Sign in to add a comment