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

Issue 885360 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Jan 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

DCHECK "sink_map_.empty()" in frame_sink_manager_impl.cc when interacting with dino page

Project Member Reported by carlosk@chromium.org, Sep 18

Issue description

I'm developing a feature that adds new interactivity options to the dino page. Sometimes when I tap on an item in that page -- via a DevTools inspect window connected to the Android emulator running Chromium -- with an onclick handler I get this DCHECK triggered (ToT, debug build):

[FATAL:frame_sink_manager_impl.cc(62)] Check failed: sink_map_.empty(). 

Stack Trace:
  RELADDR   FUNCTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    FILE:LINE
  00115b41  base::debug::StackTrace::StackTrace()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       /usr/local/google/clankium/src/base/debug/stack_trace.cc:203:28
  0012aec0  logging::LogMessage::~LogMessage()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /usr/local/google/clankium/src/base/logging.cc:599:29
  0014f2cb  viz::FrameSinkManagerImpl::~FrameSinkManagerImpl()                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /usr/local/google/clankium/src/components/viz/service/frame_sinks/frame_sink_manager_impl.cc:62:3
  0014f4e0  viz::FrameSinkManagerImpl::~FrameSinkManagerImpl()                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /usr/local/google/clankium/src/components/viz/service/frame_sinks/frame_sink_manager_impl.cc:56:47
  v------>  std::__ndk1::default_delete<viz::FrameSinkManagerImpl>::operator()(viz::FrameSinkManagerImpl*) const                                                                                                                                                                                                                                                                                                                                                                                                                        /usr/local/google/clankium/src/third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/memory:2234:5
  v------>  std::__ndk1::unique_ptr<viz::FrameSinkManagerImpl, std::__ndk1::default_delete<viz::FrameSinkManagerImpl> >::reset(viz::FrameSinkManagerImpl*)                                                                                                                                                                                                                                                                                                                                                                              /usr/local/google/clankium/src/third_party/android_ndk/sources/cxx-stl/llvm-libc++/include/memory:2547:0
  00164cc0  viz::VizCompositorThreadRunner::TearDownOnCompositorThread()                                                                                                                                                                                                                                                                                                                                                                                                                                                                /usr/local/google/clankium/src/components/viz/service/main/viz_compositor_thread_runner.cc:166:0
  v------>  void base::internal::FunctorTraits<void (viz::VizProcessContextProvider::*)(), void>::Invoke<void (viz::VizProcessContextProvider::*)(), viz::VizProcessContextProvider*>(void (viz::VizProcessContextProvider::*)(), viz::VizProcessContextProvider*&&)                                                                                                                                                                                                                                                                    /usr/local/google/clankium/src/base/bind_internal.h:516:12
  0014874c  void base::internal::InvokeHelper<false, void>::MakeItSo<void (viz::VizProcessContextProvider::*)(), viz::VizProcessContextProvider*>(void (viz::VizProcessContextProvider::*&&)(), viz::VizProcessContextProvider*&&)                                                                                                                                                                                                                                                                                                      /usr/local/google/clankium/src/base/bind_internal.h:616:0
  00148719  void base::internal::Invoker<base::internal::BindState<void (viz::VizProcessContextProvider::*)(), base::internal::UnretainedWrapper<viz::VizProcessContextProvider> >, void ()>::RunImpl<void (viz::VizProcessContextProvider::*)(), std::__ndk1::tuple<base::internal::UnretainedWrapper<viz::VizProcessContextProvider> >, 0u>(void (viz::VizProcessContextProvider::*&&)(), std::__ndk1::tuple<base::internal::UnretainedWrapper<viz::VizProcessContextProvider> >&&, std::__ndk1::integer_sequence<unsigned int, 0u>)  /usr/local/google/clankium/src/base/bind_internal.h:689:12
  001486eb  base::internal::Invoker<base::internal::BindState<void (viz::VizProcessContextProvider::*)(), base::internal::UnretainedWrapper<viz::VizProcessContextProvider> >, void ()>::RunOnce(base::internal::BindStateBase*)                                                                                                                                                                                                                                                                                                        /usr/local/google/clankium/src/base/bind_internal.h:658:12
  0010706d  base::OnceCallback<void ()>::Run() &&                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       /usr/local/google/clankium/src/base/callback.h:99:12
  00116767  base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)                                                                                                                                                                                                                                                                                                                                                                                                                                                        /usr/local/google/clankium/src/base/debug/task_annotator.cc:101:33
  00134a88  base::MessageLoop::RunTask(base::PendingTask*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /usr/local/google/clankium/src/base/message_loop/message_loop.cc:434:46
  00134d22  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)                                                                                                                                                                                                                                                                                                                                                                                                                                                                 /usr/local/google/clankium/src/base/message_loop/message_loop.cc:445:5
  00134e85  base::MessageLoop::DoWork()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 /usr/local/google/clankium/src/base/message_loop/message_loop.cc:517:16
  00137d54  base::MessagePumpForUI::OnNonDelayedLooperCallback()                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /usr/local/google/clankium/src/base/message_loop/message_pump_android.cc:165:37
  00137a63  base::(anonymous namespace)::NonDelayedLooperCallback(int, int, void*)                                                                                                                                                                                                                                                                                                                                                                                                                                                      /usr/local/google/clankium/src/base/message_loop/message_pump_android.cc:70:9
  00018350  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib/libutils.so
  000192f7  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib/libutils.so
  00018d74  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib/libutils.so
  000c3393  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib/libandroid_runtime.so
  000c3404  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/lib/libandroid_runtime.so
  01d1a59c  <UNKNOWN>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /system/framework/x86/boot-framework.oat

 
Cc: noel@chromium.org
(Semi-randomly) Adding noel@ as I see issue 836254 had one of its CLs reverted because of this same DCHECK being triggered in a test.
Cc: fsam...@chromium.org kylec...@chromium.org
Status: (was: Untriaged)
Thanks for the report.
This is unlanded code right? VizCompositorThread in the GPU process is shutting down in that stack trace. That would likely mean the GPU process is shutting down. Do you know what's causing that?

The browser will normally shut down all the compositing clients and call InvalidateFrameSinkId() with their ID before shutting down that thread.
The changes I was testing are for a feature that is gated behind a flag that is starting being experimented on this week. IDK if any of our changes would cause the GPU process to shut down so let me provide some more details.

When it is enabled the user might be presented with some items in the dino page that will allow them to open downloaded contents or launch the downloads home. So those tapping on them could:
* launch a navigation in that very tab to an offline page.
* launch some other downloaded item, inside or outside Chrome (audio, video, documents, etc).
* launch the downloads home.

All (or at least most) of these actions are executed through Android intents.
Cc: ericrk@chromium.org
+ericrk might have some ideas
If you'd like to have more details about our feature: go/downloads-on-error-page (private link)
carlosk: Does this still happen? It was likely the same issue as https://crrev.com/c/1315538 that was causing it.
I didn't see this happening anymore during my local testing.
#1 The test that failed with this error, is enabled with reports here:

https://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=tabindexFocusDownloads

I'm seeing no evidence of DCHECK sink_map_.empty() anymore.  Not sure about the dino-case, though :)
This bug had an unsupported status. Updating to Untriaged so someone will reevaluate.
Status: Untriaged
Status: Fixed (was: Untriaged)
It sounds fixed.

Sign in to add a comment