New issue
Advanced search Search tips

Issue 757093 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 3
Type: Bug



Sign in to add a comment

MessagePumpFuchsia DCHECKs with nested run loops.

Project Member Reported by sergeyu@chromium.org, Aug 18 2017

Issue description

TransportClientSocketPoolTest.RequestTwice (net_unittests) fails with the following DCHECK inside MessagePumpFuchsia:


[00001.720] 03399.03426> [3:340878921:0818/222051.750626:1720364:FATAL:message_pump_fuchsia.cc(210)] Check failed: keep_running_.
#00: StackTrace at base/debug/stack_trace_fuchsia.cc:173
#01: std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) at buildtools/third_party/libc++/trunk/include/ostream:1001
      (inlined by) std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >& (*)(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)) at buildtools/third_party/libc++/trunk/include/ostream:195
      (inlined by) ~LogMessage at base/logging.cc:554
#02: base::MessagePumpFuchsia::Run(base::MessagePump::Delegate*) at base/message_loop/message_pump_fuchsia.cc:213
#03: base::MessageLoop::Run() at base/message_loop/message_loop.cc:346
#04: base::RunLoop::Run() at base/run_loop.cc:124
#05: base::RunLoop::RunUntilIdle() at base/run_loop.cc:137
#06: net::(anonymous namespace)::RequestSocketCallback::OnComplete(int) at net/socket/transport_client_socket_pool_unittest.cc:512
#07: net::ClientSocketHandle::OnIOComplete(int) at net/socket/client_socket_handle.cc:169
#08: base::Callback<void (int), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>::Run(int) const & at base/callback.h:80
      (inlined by) net::internal::ClientSocketPoolBaseHelper::InvokeUserCallback(net::ClientSocketHandle*) at net/socket/client_socket_pool_base.cc:1257
#09: base::internal::Invoker<base::internal::BindState<void (net::internal::ClientSocketPoolBaseHelper::*)(net::ClientSocketHandle*), base::WeakPtr<net::internal::ClientSocketPoolBaseHelper>, net::ClientSocketHandle*>, void ()>::Run(base::internal::BindStateBase*) at /usr/local/google/home/sergeyu/c2/src/out/a/../../base/bind_internal.h:?
#10: base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() && at base/callback.h:92
      (inlined by) base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) at base/debug/task_annotator.cc:59
#11: std::__1::vector<base::MessageLoop::TaskObserver*, std::__1::allocator<base::MessageLoop::TaskObserver*> >::empty() const at buildtools/third_party/libc++/trunk/include/vector:644
      (inlined by) base::ObserverListBase<base::MessageLoop::TaskObserver>::begin() at base/observer_list.h:133
      (inlined by) base::MessageLoop::RunTask(base::PendingTask*) at base/message_loop/message_loop.cc:407
#12: base::MessageLoop::DoWork() at base/message_loop/message_loop.cc:524
#13: base::MessagePumpFuchsia::Run(base::MessagePump::Delegate*) at base/message_loop/message_pump_fuchsia.cc:213
#14: base::MessageLoop::Run() at base/message_loop/message_loop.cc:346
#15: base::RunLoop::Run() at base/run_loop.cc:124

 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 19 2017

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

commit f13437045c172db8c914d7633dc26beedbcea110
Author: Sergey Ulanov <sergeyu@google.com>
Date: Sat Aug 19 01:02:08 2017

Allow nested loop after Quit in Fuchsia and Default impls of MessagePump

Some unittests run a nested RunLoop after calling Quit() for the current
one. Fuchsia and Default implementations of MessagePump were not
handling this case properly (DCHECK in debug builds, hang in release).
Updated both implementations to handle this case consistently with
others. Also added a unittest.

Bug:  757093 , 706592
Change-Id: I9fabbe09a6ed2178316ec3ba4b2edd8e7b89dd3f
Reviewed-on: https://chromium-review.googlesource.com/622287
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495773}
[modify] https://crrev.com/f13437045c172db8c914d7633dc26beedbcea110/base/message_loop/message_loop_unittest.cc
[modify] https://crrev.com/f13437045c172db8c914d7633dc26beedbcea110/base/message_loop/message_pump_default.cc
[modify] https://crrev.com/f13437045c172db8c914d7633dc26beedbcea110/base/message_loop/message_pump_fuchsia.cc
[modify] https://crrev.com/f13437045c172db8c914d7633dc26beedbcea110/base/message_loop/message_pump_fuchsia.h

Status: Fixed (was: Started)

Sign in to add a comment