apimall / chromiumembedded

Automatically exported from code.google.com/p/chromiumembedded
0 stars 1 forks source link

Windows: 2062 branch V8::InitializePlatform crash in single-process mode #1380

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

i'm using CEF-3.XXXX to embed a blink browser into a Qt application.
I'm working on Windows 7 Pro SP1 with Visual Studio 2010.
Everything works fine from branch 1547, 1650, 1750 and 1916.

From branch 2062 (and from trunk/2078 => CEF-3.2062.1835 and CEF-3.2078.1814), 
i got a rendering process crash just after starting-up my application :

Debugging in single process mode, i can see that :
1 - calls to CefExecuteProcess and CefInitialize seem correct
2 - Call to CreateBrowser works fine
3 - Next, crash occurs into thread BaseThreadInitThunk (libcef.dll) due to the 
following exception (see last line in traces) :
[...]
[0917/162502:VERBOSE1:video_capture_message_filter.cc(77)] 
VideoCaptureMessageFilter::OnFilterAdded()
[0917/162502:VERBOSE1:socket_dispatcher.cc(76)] 
P2PSocketDispatcher::OnFilterAdded()
[0917/162502:VERBOSE1:webrtc_internals.cc(50)] Could not get the download 
directory.
[0917/162502:VERBOSE1:renderer_webkitplatformsupport_impl.cc(237)] Disabling 
sandbox support for testing.
void __thiscall Blink::Handler::OnLoadingStateChange(class CefRefPtr<class 
CefBrowser>,bool,bool,bool)

#
# Fatal error in 
e:\cef\workspace\cef3-windows-2062\download\chromium\src\v8\src\v8.cc, line 119
# CHECK(!platform_) failed
#

Seeing the above stack trace, may you have an idea to steer my investigations 
in a good way  ?

Original issue reported on code.google.com by 69ejorg...@gmail.com on 17 Sep 2014 at 2:36

GoogleCodeExporter commented 9 years ago
below the stack trace :
>   00000000()  
    libcef.dll!v8::internal::OS::Abort()  Line 812  C++
    libcef.dll!v8::internal::V8::InitializePlatform(v8::Platform * platform)  Line 119 + 0x1f bytes C++
    libcef.dll!blink::initialize(blink::Platform * platform)  Line 107 + 0xb bytes  C++
    libcef.dll!content::RenderThreadImpl::EnsureWebKitInitialized()  Line 745 + 0x14 bytes  C++
    libcef.dll!content::RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params & params)  Line 1276 + 0xf bytes C++
    libcef.dll!DispatchToMethod<content::RenderThreadImpl,void (__thiscall content::RenderThreadImpl::*)(ViewMsg_New_Params const &),ViewMsg_New_Params>(content::RenderThreadImpl * obj, void (const ViewMsg_New_Params &)* method, const Tuple1<ViewMsg_New_Params> & arg)  Line 548 + 0x18 bytes C++
    libcef.dll!ViewMsg_New::Dispatch<content::RenderThreadImpl,content::RenderThreadImpl,void,void (__thiscall content::RenderThreadImpl::*)(ViewMsg_New_Params const &)>(const IPC::Message * msg, content::RenderThreadImpl * obj, content::RenderThreadImpl * sender, void * parameter, void (const ViewMsg_New_Params &)* func)  Line 554 + 0x63 bytes  C++
    libcef.dll!content::RenderThreadImpl::OnControlMessageReceived(const IPC::Message & msg)  Line 1257 + 0x66 bytes    C++
    libcef.dll!content::ChildThread::OnMessageReceived(const IPC::Message & msg)  Line 474 + 0x13 bytes C++
    libcef.dll!IPC::ChannelProxy::Context::OnDispatchMessage(const IPC::Message & message)  Line 273 + 0x18 bytes   C++
    libcef.dll!base::internal::RunnableAdapter<void (__thiscall IPC::ChannelProxy::Context::*)(IPC::Message const &)>::Run(IPC::ChannelProxy::Context * object, const IPC::Message & a1)  Line 190 + 0x21 bytes C++
    libcef.dll!base::internal::InvokeHelper<0,void,base::internal::RunnableAdapter<void (__thiscall IPC::ChannelProxy::Context::*)(IPC::Message const &)>,void __cdecl(IPC::ChannelProxy::Context * const &,IPC::Message const &)>::MakeItSo(base::internal::RunnableAdapter<void (__thiscall IPC::ChannelProxy::Context::*)(IPC::Message const &)> runnable, IPC::ChannelProxy::Context * const & a1, const IPC::Message & a2)  Line 899   C++
    libcef.dll!base::internal::Invoker<2,base::internal::BindState<base::internal::RunnableAdapter<void (__thiscall IPC::ChannelProxy::Context::*)(IPC::Message const &)>,void __cdecl(IPC::ChannelProxy::Context *,IPC::Message const &),void __cdecl(IPC::ChannelProxy::Context *,IPC::Message)>,void __cdecl(IPC::ChannelProxy::Context *,IPC::Message const &)>::Run(base::internal::BindStateBase * base)  Line 1253 + 0x2a bytes  C++
    libcef.dll!base::Callback<void __cdecl(void)>::Run()  Line 401 + 0xe bytes  C++
    libcef.dll!base::MessageLoop::RunTask(const base::PendingTask & pending_task)  Line 452 C++
    libcef.dll!base::MessageLoop::DeferOrRunPendingTask(const base::PendingTask & pending_task)  Line 465   C++
    libcef.dll!base::MessageLoop::DoWork()  Line 576 + 0xc bytes    C++
    libcef.dll!base::MessagePumpForUI::DoRunLoop()  Line 218 + 0x1d bytes   C++
    libcef.dll!base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate * delegate, base::MessagePumpDispatcher * dispatcher)  Line 65 + 0xf bytes   C++
    libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate)  Line 47 + 0x1c bytes  C++
    libcef.dll!base::MessageLoop::RunHandler()  Line 400 + 0x2a bytes   C++
    libcef.dll!base::RunLoop::Run()  Line 50    C++
    libcef.dll!base::MessageLoop::Run()  Line 294   C++
    libcef.dll!base::Thread::Run(base::MessageLoop * message_loop)  Line 173    C++
    libcef.dll!base::Thread::ThreadMain()  Line 225 + 0x16 bytes    C++
    libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params)  Line 78 + 0xe bytes  C++
    kernel32.dll!@BaseThreadInitThunk@12()  + 0x12 bytes    
    ntdll.dll!___RtlUserThreadStart@8()  + 0x27 bytes   
    ntdll.dll!__RtlUserThreadStart@8()  + 0x1b bytes    

Original comment by 69ejorg...@gmail.com on 18 Sep 2014 at 8:56

GoogleCodeExporter commented 9 years ago
What is the stack trace when not running in single-process mode? Does the crash 
reproduce with cefclient or cefsimple? See 
http://www.chromium.org/developers/how-tos/debugging for Windows multi-process 
debugging tips.

Original comment by magreenb...@gmail.com on 18 Sep 2014 at 8:46

GoogleCodeExporter commented 9 years ago
Running in multi-process mode does not generate a crash...

Original comment by 69ejorg...@gmail.com on 24 Sep 2014 at 10:12

GoogleCodeExporter commented 9 years ago
This is a crash in Blink and not specifically a CEF issue.

Single-process mode is not actively tested by Chromium/Blink developers and is 
not recommended for production applications. If you're using it for debugging 
purposes you're better off debug using multi-process mode as described in 
comment#2. See also 
https://groups.google.com/a/chromium.org/d/msg/chromium-dev/l-D-cI0L7DA/0FAbfEyP
gSMJ for some discussion of why single-process mode may be broken on Windows 
specifically.

Original comment by magreenb...@gmail.com on 24 Sep 2014 at 1:54