DCHECK() failure at sign-in screen |
||
Issue descriptionRepro: (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 ()
,
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
,
Jan 4
|
||
►
Sign in to add a comment |
||
Comment 1 by kylec...@chromium.org
, Dec 19Owner: sgilhuly@chromium.org
Status: Assigned (was: Available)