New issue
Advanced search Search tips

Issue 916354 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 4
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome
Pri: 1
Type: Bug



Sign in to add a comment

DCHECK() failure at sign-in screen

Project Member Reported by khorimoto@chromium.org, Dec 19

Issue description

Repro:
(1) Start up device and/or sign out to get to the sign-in screen.
(2) Wait for a while (usually takes around a minute or two).

Expected: Sign-in screen remains visible.
Actual: DCHECK() crash.

Looks like the crash is:
DCHECK_LE(pipeline_reporting_frame_times_.size(), 25u);

DCHECK()s are now enabled by default for all developers (go/dchecks-on-by-default), so this is a P1.

#0  0x000056d9047aa9aa in logging::LogMessage::~LogMessage()::$_2::operator()() const () at ../../base/logging.cc:874
#1  logging::LogMessage::~LogMessage () at ../../base/logging.cc:874         
#2  0x000056d90606015a in viz::DirectLayerTreeFrameSink::OnBeginFrame () at ../../components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc:310
#3  0x000056d90605d93d in viz::CompositorFrameSinkSupport::OnBeginFrame () at ../../components/viz/service/frame_sinks/compositor_frame_sink_support.cc:598
#4  0x000056d905a327f3 in viz::(anonymous namespace)::FilterAndIssueBeginFrame () at ../../components/viz/common/frame_sinks/begin_frame_source.cc:41
#5  viz::DelayBasedBeginFrameSource::IssueBeginFrameToObserver () at ../../components/viz/common/frame_sinks/begin_frame_source.cc:299
#6  0x000056d905a32b2b in viz::DelayBasedBeginFrameSource::OnTimerTick () at ../../components/viz/common/frame_sinks/begin_frame_source.cc:283
#7  0x000056d905a354be in viz::DelayBasedTimeSource::OnTimerTick () at ../../components/viz/common/frame_sinks/delay_based_time_source.cc:78
#8  0x000056d900ad4e84 in base::internal::FunctorTraits<void (net::HostResolverImpl::ProcTask::*)(), void>::Invoke<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>>(void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>&&) () at ../../base/bind_internal.h:516
#9  base::internal::InvokeHelper<true, void>::MakeItSo<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>>(void (net::HostResolverImpl::ProcTask::*&&)(), base::WeakPtr<net::HostResolverImpl::ProcTask>&&) () at ../../base/bind_internal.h:636
#10 base::internal::Invoker<base::internal::BindState<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask> >, void ()>::RunImpl<void (net::HostResolverImpl::ProcTask::*)(), std::__1::tuple<base::WeakPtr<net::HostResolverImpl::ProcTask> >, 0ul>(void (net::HostResolverImpl::ProcTask::*&&)(), std::__1::tuple<base::WeakPtr<net::HostResolverImpl::ProcTask> >&&, std::__1::integer_sequence<unsigned long, 0ul>) () at ../../base/bind_internal.h:689
#11 base::internal::Invoker<base::internal::BindState<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask> >, void ()>::RunOnce(base::internal::BindStateBase*) () at ../../base/bind_internal.h:658
#12 0x000056d900aedd8c in base::RepeatingCallback<void ()>::Run() const & () at ../../base/callback.h:129                                                  
#13 base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::ForwardRepeating<>() () at ../../base/cancelable_callback.h:120       
#14 0x000056d900ad4e84 in base::internal::FunctorTraits<void (net::HostResolverImpl::ProcTask::*)(), void>::Invoke<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>>(void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>&&) () at ../../base/bind_internal.h:516
#15 base::internal::InvokeHelper<true, void>::MakeItSo<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask>>(void (net::HostResolverImpl::ProcTask::*&&)(), base::WeakPtr<net::HostResolverImpl::ProcTask>&&) () at ../../base/bind_internal.h:636
#16 base::internal::Invoker<base::internal::BindState<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask> >, void ()>::RunImpl<void (net::HostResolverImpl::ProcTask::*)(), std::__1::tuple<base::WeakPtr<net::HostResolverImpl::ProcTask> >, 0ul>(void (net::HostResolverImpl::ProcTask::*&&)(), std::__1::tuple<base::WeakPtr<net::HostResolverImpl::ProcTask> >&&, std::__1::integer_sequence<unsigned long, 0ul>) () at ../../base/bind_internal.h:689                                                                                                                                                                                                            
#17 base::internal::Invoker<base::internal::BindState<void (net::HostResolverImpl::ProcTask::*)(), base::WeakPtr<net::HostResolverImpl::ProcTask> >, void ()>::RunOnce(base::internal::BindStateBase*) () at ../../base/bind_internal.h:658                                              
#18 0x000056d904877077 in base::OnceCallback<void ()>::Run() && () at ../../base/callback.h:99                                                                                                                                                                                                                                                             
#19 base::debug::TaskAnnotator::RunTask () at ../../base/debug/task_annotator.cc:99                                                    
#20 0x000056d9047b430f in base::MessageLoopImpl::RunTask () at ../../base/message_loop/message_loop_impl.cc:374                                                                                                                            
#21 0x000056d9047b4b8a in base::MessageLoopImpl::DeferOrRunPendingTask () at ../../base/message_loop/message_loop_impl.cc:385
#22 base::MessageLoopImpl::DoDelayedWork () at ../../base/message_loop/message_loop_impl.cc:514                                               
#23 0x000056d90487304d in base::MessagePumpLibevent::Run () at ../../base/message_loop/message_pump_libevent.cc:220                                                                                                                                                                                                                                
#24 0x000056d9047b3de5 in base::MessageLoopImpl::Run () at ../../base/message_loop/message_loop_impl.cc:326                                                                                                                                                                              
#25 0x000056d9047dd606 in base::RunLoop::Run () at ../../base/run_loop.cc:102                                                                                                                                                                                                                                                                              
#26 0x000056d9042f66b8 in ChromeBrowserMainParts::MainMessageLoopRun () at ../../chrome/browser/chrome_browser_main.cc:1852            
#27 0x000056d9019e7354 in content::BrowserMainLoop::RunMainMessageLoopParts () at ../../content/browser/browser_main_loop.cc:999                                                                                                           
#28 0x000056d9019e9bc3 in content::BrowserMainRunnerImpl::Run () at ../../content/browser/browser_main_runner_impl.cc:165
#29 0x000056d9019e3bcf in content::BrowserMain () at ../../content/browser/browser_main.cc:47
#30 0x000056d9042e75dd in content::RunBrowserProcessMain () at ../../content/app/content_main_runner_impl.cc:545
#31 content::ContentMainRunnerImpl::RunServiceManager () at ../../content/app/content_main_runner_impl.cc:954                
#32 0x000056d9042e71a6 in content::ContentMainRunnerImpl::Run () at ../../content/app/content_main_runner_impl.cc:868
#33 0x000056d9042eea85 in service_manager::Main () at ../../services/service_manager/embedder/main.cc:460          
#34 0x000056d9042e5591 in content::ContentMain () at ../../content/app/content_main.cc:19                  
#35 0x000056d90075307f in ChromeMain () at ../../chrome/app/chrome_main.cc:102
#36 0x00007aad1843ba94 in __libc_start_main (main=0x56d900752fe0 <main()>, argc=35, argv=0x7ffc957200d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc957200c8) at ../csu/libc-start.c:308
#37 0x000056d900752eba in _start ()                                                                                             

 
Cc: sadrul@chromium.org
Owner: sgilhuly@chromium.org
Status: Assigned (was: Available)
sgilhuly: Can you take a look?
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 4

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

commit 65f0e5da5bc245defe9a4927bc831a41dc6a7c1d
Author: Sean Gilhuly <sgilhuly@chromium.org>
Date: Fri Jan 04 05:01:20 2019

Call DidNotProduceFrame if begin frames are not needed

Begin frames were being processed when there was no BeginFrameObserver,
occasionally causing |last_begin_frame_args_| in
ExternalBeginFrameSource to be overwritten. These lost frames create a
backlog in |pipeline_reporting_frame_times_|, which eventually causes a
DCHECK.

Remember whether or not begin frames are needed. If they aren't, call
DidNotProduceFrame() instead of OnBeginFrame(). This mirrors a check in
AsyncLayerTreeFrameSink::OnBeginFrame().

Bug:  916354 
Change-Id: Id5361ec6c48044a21c4946585f0da5ef862dd6d5
Reviewed-on: https://chromium-review.googlesource.com/c/1393441
Reviewed-by: kylechar <kylechar@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619883}
[modify] https://crrev.com/65f0e5da5bc245defe9a4927bc831a41dc6a7c1d/cc/mojo_embedder/async_layer_tree_frame_sink.cc
[modify] https://crrev.com/65f0e5da5bc245defe9a4927bc831a41dc6a7c1d/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc
[modify] https://crrev.com/65f0e5da5bc245defe9a4927bc831a41dc6a7c1d/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.h

Status: Fixed (was: Assigned)

Sign in to add a comment