after upgrading to CEF 2623 we are experiencing a crash of the renderer process. The repro is as follows:
- launch our application
- resize the window containing the CEF control multiple times
- shutdown
The crash has the following stack trace:
- Code: Select all
libcef.dll!logging::LogMessage::~LogMessage() Line 737 C++
libcef.dll!base::`anonymous namespace'::OnNoMemory(unsigned int size) Line 20 C++
libcef.dll!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(unsigned int size, int id) Line 307 C++
libcef.dll!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(unsigned int size) Line 188 C++
> libcef.dll!content::WebDiscardableMemoryImpl::CreateLockedMemory(unsigned int size) Line 23 C++
libcef.dll!content::BlinkPlatformImpl::allocateAndLockDiscardableMemory(unsigned int bytes) Line 1257 C++
libcef.dll!blink::PurgeableVector::reservePurgeableCapacity(unsigned int capacity, blink::PurgeableVector::PurgeableAllocationStrategy allocationStrategy) Line 236 C++
libcef.dll!blink::PurgeableVector::append(const char * data, unsigned int length) Line 123 C++
libcef.dll!blink::SharedBuffer::mergeSegmentsIntoBuffer() Line 313 C++
libcef.dll!blink::SharedBuffer::unlock() Line 401 C++
libcef.dll!blink::Resource::unlock() Line 453 C++
libcef.dll!blink::Resource::unregisterHandle(blink::ResourcePtrBase * h) Line 917 C++
libcef.dll!blink::ResourceOwner<blink::StyleSheetResource,blink::StyleSheetResourceClient>::setResource(const blink::ResourcePtr<blink::StyleSheetResource> & newResource) Line 93 C++
libcef.dll!blink::LinkStyle::~LinkStyle() Line 493 C++
libcef.dll!blink::LinkStyle::`scalar deleting destructor'(unsigned int) C++
libcef.dll!blink::HTMLLinkElement::~HTMLLinkElement() Line 168 C++
libcef.dll!blink::HTMLLinkElement::`scalar deleting destructor'(unsigned int) C++
libcef.dll!blink::ContainerNode::removeDetachedChildrenInContainer(blink::ContainerNode & container) Line 497 C++
libcef.dll!blink::Document::dispose() Line 599 C++
libcef.dll!blink::Node::removedLastRef() Line 2185 C++
libcef.dll!blink::LiveNodeListBase::~LiveNodeListBase() Line 63 C++
libcef.dll!blink::HTMLCollection::~HTMLCollection() Line 186 C++
libcef.dll!blink::HTMLTagCollection::`scalar deleting destructor'(unsigned int) C++
libcef.dll!blink::V8HTMLOptionsCollection::derefObject(blink::ScriptWrappable * scriptWrappable) Line 461 C++ libcef.dll!v8::internal::GlobalHandles::InvokeSecondPassPhantomCallbacks(v8::internal::List<v8::internal::GlobalHandles::PendingPhantomCallback,v8::internal::FreeStoreAllocationPolicy> * callbacks, v8::internal::Isolate * isolate) Line 823 C++
libcef.dll!v8::internal::GlobalHandles::PendingPhantomCallbacksSecondPassTask::RunInternal() Line 541 C++
libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, const base::PendingTask & pending_task) Line 51 C++
libcef.dll!scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(scheduler::internal::WorkQueue * work_queue, scheduler::internal::TaskQueueImpl::Task * out_previous_task) Line 268 C++
libcef.dll!scheduler::TaskQueueManager::DoWork(base::TimeTicks run_time, bool from_main_thread) Line 180 C++
libcef.dll!base::internal::InvokeHelper<1,void,base::internal::RunnableAdapter<void (__thiscall content::WebFileWriterBase::*)(__int64,bool)>,base::internal::TypeList<base::WeakPtr<content::WebFileWriterImpl> const &,__int64 const &,bool const &> >::MakeItSo(base::internal::RunnableAdapter<void (__thiscall content::WebFileWriterBase::*)(__int64,bool)> runnable, const base::WeakPtr<content::WebFileWriterImpl> & weak_ptr, const __int64 & <args_0>, const bool & <args_1>) Line 307 C++
libcef.dll!base::internal::Invoker<base::IndexSequence<0,1,2>,base::internal::BindState<base::internal::RunnableAdapter<void (__thiscall scheduler::TaskQueueManager::*)(base::TimeTicks,bool)>,void __cdecl(scheduler::TaskQueueManager *,base::TimeTicks,bool),base::WeakPtr<scheduler::TaskQueueManager>,base::TimeTicks,bool>,base::internal::TypeList<base::internal::UnwrapTraits<base::WeakPtr<scheduler::TaskQueueManager> >,base::internal::UnwrapTraits<base::TimeTicks>,base::internal::UnwrapTraits<bool> >,base::internal::InvokeHelper<1,void,base::internal::RunnableAdapter<void (__thiscall scheduler::TaskQueueManager::*)(base::TimeTicks,bool)>,base::internal::TypeList<base::WeakPtr<scheduler::TaskQueueManager> const &,base::TimeTicks const &,bool const &> >,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 350 C++
libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, const base::PendingTask & pending_task) Line 51 C++
libcef.dll!base::MessageLoop::RunTask(const base::PendingTask & pending_task) Line 482 C++
libcef.dll!base::MessageLoop::DoWork() Line 602 C++
libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 34 C++
libcef.dll!base::MessageLoop::RunHandler() Line 445 C++
libcef.dll!base::RunLoop::Run() Line 57 C++
libcef.dll!base::MessageLoop::Run() Line 288 C++
libcef.dll!content::RendererMain(const content::MainFunctionParams & parameters) Line 234 C++
libcef.dll!content::RunNamedProcessTypeMain(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & process_type, const content::MainFunctionParams & main_function_params, content::ContentMainDelegate * delegate) Line 382 C++
libcef.dll!content::ContentMainRunnerImpl::Run() Line 787 C++
libcef.dll!content::ContentMain(const content::ContentMainParams & params) Line 19 C++
libcef.dll!CefExecuteProcess(const CefMainArgs & args, CefRefPtr<CefApp> application, void * windows_sandbox_info) Line 118 C++
libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 144 C++
GalaxyClient Helper.exe!CefExecuteProcess(const CefMainArgs & args, CefRefPtr<CefApp> application, void * windows_sandbox_info) Line 143 C++
GalaxyClient Helper.exe!startCefRenderer(CefMainArgs & main_args) Line 41 C++
GalaxyClient Helper.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpCmdLine, int nCmdShow) Line 50 C++
GalaxyClient Helper.exe!__scrt_common_main_seh() Line 255 C++
kernel32.dll!@BaseThreadInitThunk@12() Unknown
ntdll.dll!__RtlUserThreadStart() Unknown
ntdll.dll!__RtlUserThreadStart@8() Unknown
After looking at the disassembly of the locations on the stack, we can see that the allocated size is ~5MB, while the memory used by the process is around 150 MB. No way is this a "real" out of memory error. We are running our 32 bit application on a 64bit Windows 8.1 machine. We are not compiling CEF manually.
Any ideas ?
Liosan