Version: 56.0.2900.0 (private 32-bit DEBUG build)
OS: Windows 10
What steps will reproduce the problem?
(1) Rendered an HTML5 video from mpeg-4 source on Dell XPS laptop
(2) Closed the laptop lid
(3) Resumed the laptop - noticed that the renderer process crashed
This happened only once out of multiple repeated suspend/resume cycles (I was testing something else).
What is the expected output?
No crash.
What do you see instead?
1) A small error popup without any text
2) Renderer process crashed and crash dump has been generated.
Here is the crash location:
void VideoRendererAlgorithm::OnLastFrameDropped() {
// Since compositing is disconnected from the algorithm, the algorithm may be
// Reset() in between ticks of the compositor, so discard notifications which
// are invalid.
//
// If frames were expired by RemoveExpiredFrames() this count may be zero when
// the OnLastFrameDropped() call comes in.
if (!have_rendered_frames_ || frame_queue_.empty() ||
!frame_queue_[last_frame_index_].render_count) {
return;
}
++frame_queue_[last_frame_index_].drop_count;
crash here >>> DCHECK_LE(frame_queue_[last_frame_index_].drop_count,
frame_queue_[last_frame_index_].render_count);
UpdateEffectiveFramesQueued();
}
Call stack:
base.dll!base::debug::BreakDebugger() Line 21 C++
base.dll!logging::LogMessage::~LogMessage() Line 751 C++
> media.dll!media::VideoRendererAlgorithm::OnLastFrameDropped() Line 318 C++
media.dll!media::VideoRendererImpl::OnFrameDropped() Line 227 C++
media_blink.dll!media::VideoFrameCompositor::CallRender(base::TimeTicks deadline_min, base::TimeTicks deadline_max, bool background_rendering) Line 239 C++
media_blink.dll!media::VideoFrameCompositor::UpdateCurrentFrame(base::TimeTicks deadline_min, base::TimeTicks deadline_max) Line 113 C++
cc.dll!cc::VideoFrameProviderClientImpl::OnBeginFrame(const cc::BeginFrameArgs & args) Line 154 C++
cc.dll!cc::LayerTreeHostImpl::WillBeginImplFrame(const cc::BeginFrameArgs & args) Line 1845 C++
cc.dll!cc::ProxyImpl::WillBeginImplFrame(const cc::BeginFrameArgs & args) Line 426 C++
cc.dll!cc::Scheduler::BeginImplFrame(const cc::BeginFrameArgs & args) Line 444 C++
cc.dll!cc::Scheduler::BeginImplFrameWithDeadline(const cc::BeginFrameArgs & args) Line 400 C++
cc.dll!cc::Scheduler::OnBeginFrameDerivedImpl(const cc::BeginFrameArgs & args) Line 289 C++
cc.dll!cc::BeginFrameObserverBase::OnBeginFrame(const cc::BeginFrameArgs & args) Line 39 C++
cc.dll!cc::ExternalBeginFrameSource::OnBeginFrame(const cc::BeginFrameArgs & args) Line 250 C++
content.dll!content::CompositorExternalBeginFrameSource::OnBeginFrame(const cc::BeginFrameArgs & args) Line 86 C++
content.dll!base::DispatchToMethodImpl<content::CompositorExternalBeginFrameSource *,void (__thiscall content::CompositorExternalBeginFrameSource::*)(cc::BeginFrameArgs const &),std::tuple<cc::BeginFrameArgs> const &,0>(content::CompositorExternalBeginFrameSource * const & obj, void(content::CompositorExternalBeginFrameSource::*)(const cc::BeginFrameArgs &) method, const std::tuple<cc::BeginFrameArgs> & args, base::IndexSequence<0> __formal) Line 145 C++
content.dll!base::DispatchToMethod<content::CompositorExternalBeginFrameSource *,void (__thiscall content::CompositorExternalBeginFrameSource::*)(cc::BeginFrameArgs const &),std::tuple<cc::BeginFrameArgs> const &>(content::CompositorExternalBeginFrameSource * const & obj, void(content::CompositorExternalBeginFrameSource::*)(const cc::BeginFrameArgs &) method, const std::tuple<cc::BeginFrameArgs> & args) Line 151 C++
content.dll!IPC::DispatchToMethod<content::CompositorExternalBeginFrameSource,void (__thiscall content::CompositorExternalBeginFrameSource::*)(cc::BeginFrameArgs const &),void,std::tuple<cc::BeginFrameArgs> >(content::CompositorExternalBeginFrameSource * obj, void(content::CompositorExternalBeginFrameSource::*)(const cc::BeginFrameArgs &) method, void * __formal, const std::tuple<cc::BeginFrameArgs> & tuple) Line 26 C++
content.dll!IPC::MessageT<ViewMsg_BeginFrame_Meta,std::tuple<cc::BeginFrameArgs>,void>::Dispatch<content::CompositorExternalBeginFrameSource,content::CompositorExternalBeginFrameSource,void,void (__thiscall content::CompositorExternalBeginFrameSource::*)(cc::BeginFrameArgs const &)>(const IPC::Message * msg, content::CompositorExternalBeginFrameSource * obj, content::CompositorExternalBeginFrameSource * sender, void * parameter, void(content::CompositorExternalBeginFrameSource::*)(const cc::BeginFrameArgs &) func) Line 121 C++
content.dll!content::CompositorExternalBeginFrameSource::OnMessageReceived(const IPC::Message & message) Line 74 C++
content.dll!content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::OnMessageReceived(const IPC::Message & message) Line 64 C++
content.dll!base::internal::FunctorTraits<void (__thiscall content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(IPC::Message const &),void>::Invoke<scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> const &,IPC::Message const &>(void(content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(const IPC::Message &) method, const scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> & receiver_ptr, const IPC::Message & <args_0>) Line 215 C++
content.dll!base::internal::InvokeHelper<0,void>::MakeItSo<void (__thiscall content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*const &)(IPC::Message const &),scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> const &,IPC::Message const &>(void(content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(const IPC::Message &) & functor, const scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> & <args_0>, const IPC::Message & <args_1>) Line 285 C++
content.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(IPC::Message const &),scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> >,void __cdecl(IPC::Message const &)>::RunImpl<void (__thiscall content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*const &)(IPC::Message const &),std::tuple<scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> > const &,0>(void(content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(const IPC::Message &) & functor, const std::tuple<scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> > & bound, base::IndexSequence<0> __formal, const IPC::Message & <unbound_args_0>) Line 361 C++
content.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy::*)(IPC::Message const &),scoped_refptr<content::CompositorExternalBeginFrameSource::CompositorExternalBeginFrameSourceProxy> >,void __cdecl(IPC::Message const &)>::Run(base::internal::BindStateBase * base, const IPC::Message & <unbound_args_0>) Line 339 C++
content.dll!base::internal::RunMixin<base::Callback<void __cdecl(IPC::Message const &),1,1> >::Run(const IPC::Message & <args_0>) Line 64 C++
content.dll!content::CompositorForwardingMessageFilter::ProcessMessageOnCompositorThread(const IPC::Message & message) Line 75 C++
content.dll!base::internal::FunctorTraits<void (__thiscall content::CompositorForwardingMessageFilter::*)(IPC::Message const &),void>::Invoke<scoped_refptr<content::CompositorForwardingMessageFilter> const &,IPC::Message const &>(void(content::CompositorForwardingMessageFilter::*)(const IPC::Message &) method, const scoped_refptr<content::CompositorForwardingMessageFilter> & receiver_ptr, const IPC::Message & <args_0>) Line 215 C++
content.dll!base::internal::InvokeHelper<0,void>::MakeItSo<void (__thiscall content::CompositorForwardingMessageFilter::*const &)(IPC::Message const &),scoped_refptr<content::CompositorForwardingMessageFilter> const &,IPC::Message const &>(void(content::CompositorForwardingMessageFilter::*)(const IPC::Message &) & functor, const scoped_refptr<content::CompositorForwardingMessageFilter> & <args_0>, const IPC::Message & <args_1>) Line 285 C++
content.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::CompositorForwardingMessageFilter::*)(IPC::Message const &),scoped_refptr<content::CompositorForwardingMessageFilter>,IPC::Message>,void __cdecl(void)>::RunImpl<void (__thiscall content::CompositorForwardingMessageFilter::*const &)(IPC::Message const &),std::tuple<scoped_refptr<content::CompositorForwardingMessageFilter>,IPC::Message> const &,0,1>(void(content::CompositorForwardingMessageFilter::*)(const IPC::Message &) & functor, const std::tuple<scoped_refptr<content::CompositorForwardingMessageFilter>,IPC::Message> & bound, base::IndexSequence<0,1> __formal) Line 361 C++
content.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall content::CompositorForwardingMessageFilter::*)(IPC::Message const &),scoped_refptr<content::CompositorForwardingMessageFilter>,IPC::Message>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 339 C++
base.dll!base::internal::RunMixin<base::Callback<void __cdecl(void),0,0> >::Run() Line 47 C++
base.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 54 C++
base.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 414 C++
base.dll!base::MessageLoop::DeferOrRunPendingTask(base::PendingTask pending_task) Line 425 C++
base.dll!base::MessageLoop::DoWork() Line 515 C++
base.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 35 C++
base.dll!base::MessageLoop::RunHandler() Line 379 C++
base.dll!base::RunLoop::Run() Line 36 C++
base.dll!base::Thread::Run(base::RunLoop * run_loop) Line 246 C++
base.dll!base::Thread::ThreadMain() Line 336 C++
base.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 86 C++
KERNEL32.DLL!@BaseThreadInitThunk@12() Unknown
Comment 1 by dalecur...@chromium.org
, Oct 26 2016Status: Duplicate (was: Untriaged)