Issue metadata
Sign in to add a comment
|
OOM on windows |
||||||||||||||||||||
Issue description
Cr-Commit-Position: refs/heads/master@{#521248}
KernelBase.dll!76e6aa12() Unknown Non-user code. Cannot find or open the PDB file.
[Frames below may be incorrect and/or missing, no symbols loaded for KernelBase.dll] Annotated Frame
> base.dll!base::`anonymous namespace'::OnNoMemory(unsigned int size) Line 44 C++ Symbols loaded.
[External Code] Annotated Frame
libGLESv2.dll!std::_Allocate(unsigned int _Count, unsigned int _Sz, bool _Try_aligned_allocation) Line 78 C++ Symbols loaded.
libGLESv2.dll!std::allocator<unsigned int>::allocate(const unsigned int _Count) Line 946 C++ Symbols loaded.
libGLESv2.dll!std::vector<unsigned int,std::allocator<unsigned int> >::_Buy(const unsigned int _Newcapacity) Line 1978 C++ Symbols loaded.
libGLESv2.dll!std::vector<unsigned int,std::allocator<unsigned int> >::vector<unsigned int,std::allocator<unsigned int> >(const std::vector<unsigned int,std::allocator<unsigned int> > & _Right) Line 769 C++ Symbols loaded.
libGLESv2.dll!gl::ImageBinding::ImageBinding(const gl::ImageBinding & __that) Line 460 C++ Symbols loaded.
libGLESv2.dll!std::_Default_allocator_traits<std::allocator<gl::ImageBinding> >::construct<gl::ImageBinding,gl::ImageBinding &>(std::allocator<gl::ImageBinding> & __formal, gl::ImageBinding * const _Ptr, gl::ImageBinding & <_Args_0>) Line 857 C++ Symbols loaded.
libGLESv2.dll!std::vector<gl::ImageBinding,std::allocator<gl::ImageBinding> >::emplace_back<gl::ImageBinding &>(gl::ImageBinding & <_Val_0>) Line 958 C++ Symbols loaded.
libGLESv2.dll!gl::MemoryProgramCache::Deserialize(const gl::Context * context, const gl::Program * program, gl::ProgramState * state, const unsigned char * binary, unsigned int length, gl::InfoLog & infoLog) Line 409 C++ Symbols loaded.
libGLESv2.dll!gl::Program::loadBinary(const gl::Context * context, unsigned int binaryFormat, const void * binary, int length) Line 1047 C++ Symbols loaded.
libGLESv2.dll!gl::Context::programBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 4853 C++ Symbols loaded.
libGLESv2.dll!gl::ProgramBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 1943 C++ Symbols loaded.
libGLESv2.dll!glProgramBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 1468 C++ Symbols loaded.
gl_wrapper.dll!gl::GLApiBase::glProgramBinaryFn(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 4029 C++ Symbols loaded.
gpu.dll!gpu::gles2::MemoryProgramCache::LoadLinkedProgram(unsigned int program, gpu::gles2::Shader * shader_a, gpu::gles2::Shader * shader_b, const std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int> > > * bind_attrib_location_map, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > & transform_feedback_varyings, unsigned int transform_feedback_buffer_mode, gpu::gles2::GLES2DecoderClient * client) Line 359 C++ Symbols loaded.
gpu.dll!gpu::gles2::Program::Link(gpu::gles2::ShaderManager * manager, gpu::gles2::Program::VaryingsPackingOption varyings_packing_option, gpu::gles2::GLES2DecoderClient * client) Line 1335 C++ Symbols loaded.
gpu.dll!gpu::gles2::GLES2DecoderImpl::DoLinkProgram(unsigned int program_id) Line 8970 C++ Symbols loaded.
gpu.dll!gpu::gles2::GLES2DecoderImpl::HandleLinkProgram(unsigned int immediate_data_size, const volatile void * cmd_data) Line 2396 C++ Symbols loaded.
gpu.dll!gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<0>(unsigned int num_commands, const volatile void * buffer, int num_entries, int * entries_processed) Line 5443 C++ Symbols loaded.
gpu.dll!gpu::gles2::GLES2DecoderImpl::DoCommands(unsigned int num_commands, const volatile void * buffer, int num_entries, int * entries_processed) Line 5497 C++ Symbols loaded.
gpu.dll!gpu::CommandBufferService::Flush(int put_offset, gpu::AsyncAPIInterface * handler) Line 90 C++ Symbols loaded.
gpu.dll!gpu::GpuCommandBufferStub::OnAsyncFlush(int put_offset, unsigned int flush_id, bool snapshot_requested) Line 990 C++ Symbols loaded.
gpu.dll!base::DispatchToMethodImpl<gpu::GpuCommandBufferStub *,void (__thiscall gpu::GpuCommandBufferStub::*)(int,unsigned int,bool),std::tuple<int,unsigned int,bool>,0,1,2>(gpu::GpuCommandBufferStub * const & obj, void(gpu::GpuCommandBufferStub::*)(int, unsigned int, bool) method, std::tuple<int,unsigned int,bool> && args, std::integer_sequence<unsigned int,0,1,2> __formal) Line 53 C++ Symbols loaded.
gpu.dll!base::DispatchToMethod<gpu::GpuCommandBufferStub *,void (__thiscall gpu::GpuCommandBufferStub::*)(int,unsigned int,bool),std::tuple<int,unsigned int,bool> >(gpu::GpuCommandBufferStub * const & obj, void(gpu::GpuCommandBufferStub::*)(int, unsigned int, bool) method, std::tuple<int,unsigned int,bool> && args) Line 60 C++ Symbols loaded.
gpu.dll!IPC::DispatchToMethod<gpu::GpuCommandBufferStub,void (__thiscall gpu::GpuCommandBufferStub::*)(int,unsigned int,bool),void,std::tuple<int,unsigned int,bool> >(gpu::GpuCommandBufferStub * obj, void(gpu::GpuCommandBufferStub::*)(int, unsigned int, bool) method, void * __formal, std::tuple<int,unsigned int,bool> && tuple) Line 51 C++ Symbols loaded.
gpu.dll!IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void>::Dispatch<gpu::GpuCommandBufferStub,gpu::GpuCommandBufferStub,void,void (__thiscall gpu::GpuCommandBufferStub::*)(int,unsigned int,bool)>(const IPC::Message * msg, gpu::GpuCommandBufferStub * obj, gpu::GpuCommandBufferStub * sender, void * parameter, void(gpu::GpuCommandBufferStub::*)(int, unsigned int, bool) func) Line 146 C++ Symbols loaded.
gpu.dll!gpu::GpuCommandBufferStub::OnMessageReceived(const IPC::Message & message) Line 289 C++ Symbols loaded.
ipc.dll!IPC::MessageRouter::RouteMessage(const IPC::Message & msg) Line 57 C++ Symbols loaded.
gpu.dll!gpu::GpuChannel::HandleMessageHelper(const IPC::Message & msg) Line 520 C++ Symbols loaded.
gpu.dll!gpu::GpuChannel::HandleMessage(const IPC::Message & msg) Line 499 C++ Symbols loaded.
gpu.dll!base::internal::FunctorTraits<void (__thiscall gpu::GpuChannel::*)(IPC::Message const &),void>::Invoke<base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> >(void(gpu::GpuChannel::*)(const IPC::Message &) method, base::WeakPtr<gpu::GpuChannel> && receiver_ptr, IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> && <args_0>) Line 212 C++ Symbols loaded.
gpu.dll!base::internal::InvokeHelper<1,void>::MakeItSo<void (__thiscall gpu::GpuChannel::*)(IPC::Message const &),base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> >(void(gpu::GpuChannel::*)(const IPC::Message &) && functor, base::WeakPtr<gpu::GpuChannel> && weak_ptr, IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> && <args_0>) Line 314 C++ Symbols loaded.
gpu.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall gpu::GpuChannel::*)(IPC::Message const &),base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> >,void __cdecl(void)>::RunImpl<void (__thiscall gpu::GpuChannel::*)(IPC::Message const &),std::tuple<base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> >,0,1>(void(gpu::GpuChannel::*)(const IPC::Message &) && functor, std::tuple<base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> > && bound, std::integer_sequence<unsigned int,0,1> __formal) Line 368 C++ Symbols loaded.
gpu.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall gpu::GpuChannel::*)(IPC::Message const &),base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void> >,void __cdecl(void)>::RunOnce(base::internal::BindStateBase * base) Line 336 C++ Symbols loaded.
gpu.dll!base::OnceCallback<void __cdecl(void)>::Run() Line 65 C++ Symbols loaded.
gpu.dll!gpu::Scheduler::RunNextTask() Line 527 C++ Symbols loaded.
gpu.dll!base::internal::FunctorTraits<void (__thiscall gpu::Scheduler::*)(void),void>::Invoke<base::WeakPtr<gpu::Scheduler> const &>(void(gpu::Scheduler::*)() method, const base::WeakPtr<gpu::Scheduler> & receiver_ptr) Line 212 C++ Symbols loaded.
gpu.dll!base::internal::InvokeHelper<1,void>::MakeItSo<void (__thiscall gpu::Scheduler::*const &)(void),base::WeakPtr<gpu::Scheduler> const &>(void(gpu::Scheduler::*)() & functor, const base::WeakPtr<gpu::Scheduler> & weak_ptr) Line 314 C++ Symbols loaded.
gpu.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall gpu::Scheduler::*)(void),base::WeakPtr<gpu::Scheduler> >,void __cdecl(void)>::RunImpl<void (__thiscall gpu::Scheduler::*const &)(void),std::tuple<base::WeakPtr<gpu::Scheduler> > const &,0>(void(gpu::Scheduler::*)() & functor, const std::tuple<base::WeakPtr<gpu::Scheduler> > & bound, std::integer_sequence<unsigned int,0> __formal) Line 368 C++ Symbols loaded.
gpu.dll!base::internal::Invoker<base::internal::BindState<void (__thiscall gpu::Scheduler::*)(void),base::WeakPtr<gpu::Scheduler> >,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 350 C++ Symbols loaded.
base.dll!base::OnceCallback<void __cdecl(void)>::Run() Line 65 C++ Symbols loaded.
base.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 56 C++ Symbols loaded.
base.dll!base::internal::IncomingTaskQueue::RunTask(base::PendingTask * pending_task) Line 129 C++ Symbols loaded.
base.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 392 C++ Symbols loaded.
base.dll!base::MessageLoop::DeferOrRunPendingTask(base::PendingTask pending_task) Line 406 C++ Symbols loaded.
base.dll!base::MessageLoop::DoWork() Line 447 C++ Symbols loaded.
base.dll!base::MessagePumpForUI::DoRunLoop() Line 173 C++ Symbols loaded.
base.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 58 C++ Symbols loaded.
base.dll!base::MessageLoop::Run(bool application_tasks_allowed) Line 344 C++ Symbols loaded.
base.dll!base::RunLoop::Run() Line 133 C++ Symbols loaded.
base.dll!base::Thread::Run(base::RunLoop * run_loop) Line 256 C++ Symbols loaded.
base.dll!base::Thread::ThreadMain() Line 341 C++ Symbols loaded.
base.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 91 C++ Symbols loaded.
[External Code] Annotated Frame
,
Dec 4 2017
It attempt to allocate huge size of memory: _Count = 278,335,548 _Sz = 4
,
Dec 4 2017
Cr-Commit-Position: refs/heads/master@{#520886} (1st Dec) works.
,
Dec 5 2017
Reproduces for me too, after gclient sync today. For me, _Count = 4294967295.
,
Dec 5 2017
"--use-angle=gl" seems to be a workaround.
,
Dec 8 2017
Sounds like an ANGLE issue. Can you please provide more details on how you reproduced the bug? It seems like the regression range is: https://crrev.com/520886..521248 The ANGLE range is: https://chromium.googlesource.com/angle/angle.git/+log/54a29ffd8..d5f44c986 I don't know what the likely culprits in this range are, maybe https://chromium.googlesource.com/angle/angle.git/+/76746f9bc29d23a00a56eaa5941209976e3301bc or https://chromium.googlesource.com/angle/angle.git/+/3c1da04e0becfdd2cd37fe3db9bb435b6f8f3491
,
Dec 9 2017
The ImageBinding stuff is ES3. But it could be a problem of the cache serialization and deserialization being broken somewhere else, and making the read values corrupt. Kai's request for repro steps is very important - need more info on how to repro this, as it doesn't seem to show in the compiled Chrome that the GPU bots use.
,
Dec 9 2017
Sorry ES 3.1.
,
Dec 11 2017
> Can you please provide more details on how you reproduced the bug? Don't know much about GPU but just launching content shell hits this failure. * --use-angle=gl is fine. * --disable-gpu-rasterization is fine too. * HP z620 + AMD Radeon HD7700 and another HP z620 (don't know its GPU right now, can check later.) What else can I investigate for you to help?
,
Dec 11 2017
I removed the "--disable-gpu-rasterization" flag and this no longer reproduces. Our team mate was seeing "--disable-gpu-rasterization" makes startup of content shell much faster, but I don't observe that either today. I'll check another machine later.
,
Dec 11 2017
* Not reproducible on HPz620 + NVIDIA Quadro K2000 either.
,
Dec 21 2017
Starts happening again.
,
Dec 21 2017
This time the stack is slightly different: base.dll!base::`anonymous namespace'::OnNoMemory(unsigned int size) Line 44 C++ Symbols loaded. [External Code] Annotated Frame libGLESv2.dll!rx::ProgramD3D::load(const gl::Context * context, gl::InfoLog & infoLog, gl::BinaryInputStream * stream) Line 989 C++ Symbols loaded. libGLESv2.dll!gl::MemoryProgramCache::Deserialize(const gl::Context * context, const gl::Program * program, gl::ProgramState * state, const unsigned char * binary, unsigned int length, gl::InfoLog & infoLog) Line 418 C++ Symbols loaded. libGLESv2.dll!gl::Program::loadBinary(const gl::Context * context, unsigned int binaryFormat, const void * binary, int length) Line 1072 C++ Symbols loaded. libGLESv2.dll!gl::Context::programBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 4896 C++ Symbols loaded. libGLESv2.dll!gl::ProgramBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 1943 C++ Symbols loaded. libGLESv2.dll!glProgramBinary(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 1468 C++ Symbols loaded. gl_wrapper.dll!gl::GLApiBase::glProgramBinaryFn(unsigned int program, unsigned int binaryFormat, const void * binary, int length) Line 4029 C++ Symbols loaded. gpu.dll!gpu::gles2::MemoryProgramCache::LoadLinkedProgram(unsigned int program, gpu::gles2::Shader * shader_a, gpu::gles2::Shader * shader_b, const std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int> > > * bind_attrib_location_map, const std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > & transform_feedback_varyings, unsigned int transform_feedback_buffer_mode, gpu::gles2::GLES2DecoderClient * client) Line 359 C++ Symbols loaded. gpu.dll!gpu::gles2::Program::Link(gpu::gles2::ShaderManager * manager, gpu::gles2::Program::VaryingsPackingOption varyings_packing_option, gpu::gles2::GLES2DecoderClient * client) Line 1335 C++ Symbols loaded. gpu.dll!gpu::gles2::GLES2DecoderImpl::DoLinkProgram(unsigned int program_id) Line 9054 C++ Symbols loaded. gpu.dll!gpu::gles2::GLES2DecoderImpl::HandleLinkProgram(unsigned int immediate_data_size, const volatile void * cmd_data) Line 2396 C++ Symbols loaded. gpu.dll!gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<0>(unsigned int num_commands, const volatile void * buffer, int num_entries, int * entries_processed) Line 5525 C++ Symbols loaded. gpu.dll!gpu::gles2::GLES2DecoderImpl::DoCommands(unsigned int num_commands, const volatile void * buffer, int num_entries, int * entries_processed) Line 5579 C++ Symbols loaded. gpu.dll!gpu::CommandBufferService::Flush(int put_offset, gpu::AsyncAPIInterface * handler) Line 90 C++ Symbols loaded. gpu.dll!gpu::CommandBufferStub::OnAsyncFlush(int put_offset, unsigned int flush_id, bool snapshot_requested) Line 647 C++ Symbols loaded.
,
Dec 21 2017
Let me know if there's a way you think we could repro this.
,
Jan 9 2018
,
Feb 20 2018
"content_shell --single-process" also causes OOM. "content_shell --single-process --use-angle=gl" is work around.
,
Feb 20 2018
Started happening again to me too.
,
Nov 9
jmadill@, goefflang@, did you have a chance to try the repro from #17. yoichio@, have you seen this recently? +zmo@ as this is Windows specific. Additionally, it sounds like this is content shell only, in which case let's drop priority.
,
Nov 9
Haven't yet had a chance to try it. I'm fine with dropping to Pri-2.
,
Nov 12
Yes, same as #17.
,
Nov 13
I had tried it and couldn't repro. My guess is that some cached program is corrupted, possibly based on the config of the particular computer. Is there a flag to disable program caching that would work with content_shell? Could someone that can still repro post their about:gpu?
,
Nov 13
You can run with --disable-gpu-program-cache and see if you can get rid of this OOM |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by yoichio@chromium.org
, Dec 4 2017