CEF3 client sample app crashes after 20 seconds - nVidia

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

CEF3 client sample app crashes after 20 seconds - nVidia

Postby jallison83 » Fri Jul 12, 2013 5:31 am

Hi,

We've been experimenting with CEF to replace the UI in one of our tools - but have hit an issue using CEF3.

A number of our dev machines have nVidia graphics cards - and they crash after about 20 seconds of initializing the browser control. The crash appears to come from the nVidia driver, and occurs in the sample browser app too - so I'm reasonably certain it's nothing specific to our initialization. We've seen the problem with both nVidia GT 520 and 8400 GS cards, and still occurs after having upgraded to the latest drivers. These machines can all run Google Chrome and the CEF1 clientapp sample fine.

The cefclient application crash is visible from the windows event log.

This is the error event:
Faulting application name: cefclient.exe, version: 0.0.0.0, time stamp: 0x518aa79e
Faulting module name: nvwgf2um.dll, version: 9.18.13.2018, time stamp: 0x518fe653
Exception code: 0xc0000005
Fault offset: 0x00103d2a
Faulting process ID: 0x2794
Faulting application start time: 0x01ce7ee17349fd9e
Faulting application path: \\DEV-JAMESA\Shared\Release\cefclient.exe
Faulting module path: C:\Windows\system32\nvwgf2um.dll
Report ID: cc5edd64-ead4-11e2-88fe-005056c00008
Faulting package full name: %14
Faulting package-relative application ID: %15

Call stack from mini dump:
ntdll.dll!_NtRaiseException@12() Unknown
ntdll.dll!_KiUserExceptionDispatcher@8() Unknown
nvwgf2um.dll!23243d2a() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for nvwgf2um.dll]

Exception:
Unhandled exception at 0x23243D2A (nvwgf2um.dll) in WER136C.tmp.mdmp: 0xC0000005: Access violation writing location 0x00000064.

I've tried disabling hardwarecomposition and webGL, but neither of these browser options had any effect.

As I mentioned, the machines have no problem running CEF1 controls - so I assume CEF3 does something quite different to cause this.

If anyone's seen this and has a workaround, it'd be great to hear. This issue is the only thing stopping us from switching to HTML5 for our UIs now - and it's become quite frustrating!

Many thanks,

James Allison
Software Developer - Red Gate Software
jallison83
Newbie
 
Posts: 3
Joined: Fri Jul 12, 2013 3:57 am

Re: CEF3 client sample app crashes after 20 seconds - nVidia

Postby magreenblatt » Fri Jul 12, 2013 10:17 am

1. What CEF3 version are you using? Have you tested with the newest 3.1453 build?
2. What command-line flags are you using?
3. Can you provide a reduced test case that reproduces the crash in cefclient?
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: CEF3 client sample app crashes after 20 seconds - nVidia

Postby jallison83 » Fri Jul 12, 2013 11:09 am

Hi there - thanks for the reply.

1) On these machines, it is reproducible with the cefclient sample app from cef_binary_3.1453.1255_windows_client.zip .
2) No command-line flags on cefclient - just starting it up from windows explorer with a double-click.
3) The cefclient application will crash about half a minute after starting. It's perfectly functional before this, and the crash does not appear to be triggered by any particular interaction - it happens independently of user input and usage of the browser.

Using the cefclient from cef_binary_1.1364.1123_windows.zip - no crash occurs.

We're actually using CefGlue in our application, but seeing exactly the same crash in this as in the cefclient app on these machines.

The specs of one of the machines is an 8Gb quad core i5, windows 7 64bit, with an 8400GS nVidia card running the 320.18 drivers. I realize this is going to be pretty difficult to reproduce, but the common factor across the three machines I've seen this happening on seems to be nVidia graphics cards (the other two machines were running GT 520s). If it helps track this down, I'm happy to arrange remote access to a machine.

Many thanks,

James Allison,
Software Developer - Red Gate Software
jallison83
Newbie
 
Posts: 3
Joined: Fri Jul 12, 2013 3:57 am

Re: CEF3 client sample app crashes after 20 seconds - nVidia

Postby magreenblatt » Fri Jul 12, 2013 11:17 am

Do you have libcef debug symbols for the crash? Symbols for VS2010 can be downloaded from the project Downloads page. It would be helpful to see the symbolized libcef stack trace.

Also, you might want to try with a trunk build of libcef to see if it makes a difference.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: CEF3 client sample app crashes after 20 seconds - nVidia

Postby jallison83 » Mon Jul 15, 2013 8:04 am

I've managed to get callstacks from two machines with the crash.

Machine 1: nVidia GTX 520
nvwgf2um.dll!0797651a() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for nvwgf2um.dll]
nvwgf2um.dll!07974883() Unknown
kernel32.dll!_HeapFree@12 () Unknown
nvwgf2um.dll!079f0038() Unknown
nvwgf2um.dll!079f04e3() Unknown
nvwgf2um.dll!079c3a2d() Unknown
nvwgf2um.dll!079f0010() Unknown
nvwgf2um.dll!079f04e3() Unknown
nvwgf2um.dll!079c3bb5() Unknown
nvwgf2um.dll!079efaab() Unknown
nvwgf2um.dll!079c3d0e() Unknown
nvwgf2um.dll!079efaab() Unknown
nvwgf2um.dll!079745e1() Unknown
nvwgf2um.dll!0797a056() Unknown
nvwgf2um.dll!079c2262() Unknown
nvwgf2um.dll!079c24e5() Unknown
nvwgf2um.dll!079c268e() Unknown
nvwgf2um.dll!079c0897() Unknown
nvwgf2um.dll!07971efd() Unknown
nvwgf2um.dll!07886823() Unknown
kernel32.dll!_CloseHandleImplementation@4 () Unknown
6c62a72c() Unknown
nvwgf2um.dll!078f480e() Unknown
nvwgf2um.dll!07946cb1() Unknown
dlumd32.dll!07303510() Unknown
dlumd32.dll!07314ba3() Unknown
d3d11.dll!NDXGI::CDevice::DestroyDriverInstance(void) Unknown
d3d11.dll!CContext::LUCBeginLayerDestruction(void) Unknown
d3d11.dll!CBridgeImpl<struct ILayeredUseCounted,struct ID3D11LayeredUseCounted,class CLayeredObject<class CContext> >::LUCBeginLayerDestruction(void) Unknown
d3d11.dll!NOutermost::CDeviceChild::LUCBeginLayerDestruction(void) Unknown
d3d11.dll!CUseCountedObject<class NOutermost::CDeviceChild>::FinalRelease(void) Unknown
d3d11.dll!CUseCountedObject<class NOutermost::CDeviceChild>::~CUseCountedObject<class NOutermost::CDeviceChild>(void) Unknown
d3d11.dll!CUseCountedObject<class NOutermost::CDeviceChild>::`vector deleting destructor'(unsigned int) Unknown
d3d11.dll!CUseCountedObject<class NOutermost::CDeviceChild>::UCDestroy(void) Unknown
d3d11.dll!CUseCountedObject<class NOutermost::CDeviceChild>::UCReleaseUse(void) Unknown
d3d11.dll!CDevice::LLOBeginLayerDestruction(void) Unknown
d3d11.dll!CBridgeImpl<struct ILayeredLockOwner,struct ID3D11LayeredDevice,class CLayeredObject<class CDevice> >::LLOBeginLayerDestruction(void) Unknown
d3d11.dll!NDXGI::CDevice::LLOBeginLayerDestruction(void) Unknown
d3d11.dll!CBridgeImpl<struct ILayeredLockOwner,struct ID3D11LayeredDevice,class CLayeredObject<class NDXGI::CDevice> >::LLOBeginLayerDestruction(void) Unknown
d3d11.dll!NOutermost::CDevice::LLOBeginLayerDestruction(void) Unknown
d3d11.dll!TComObject<class NOutermost::CDevice>::FinalRelease(void) Unknown
d3d11.dll!TComObject<class NOutermost::CDevice>::~TComObject<class NOutermost::CDevice>(void) Unknown
d3d11.dll!TComObject<class NOutermost::CDevice>::`scalar deleting destructor'(unsigned int) Unknown
d3d11.dll!TComObject<class NOutermost::CDevice>::Release(void) Unknown
d3d11.dll!CLayeredObject<class CDevice>::CContainedObject::Release(void) Unknown
libcef.dll!scoped_refptr<ID3D11Device>::~scoped_refptr<ID3D11Device>() Line 250 C++
libcef.dll!base::win::ScopedComPtr<ID3D11Device,&_GUID_db6f6ddb_ac77_4e88_8253_819df9bbf140>::~ScopedComPtr<ID3D11Device,&_GUID_db6f6ddb_ac77_4e88_8253_819df9bbf140>() Line 48 C++
libcef.dll!`anonymous namespace'::CollectD3D11SupportOnWorkerThread() Line 346 C++
libcef.dll!base::internal::RunnableAdapter<void (__cdecl*)(void)>::Run() Line 115 C++
libcef.dll!base::internal::InvokeHelper<0,void,base::internal::RunnableAdapter<void (__cdecl*)(void)>,void __cdecl(void)>::MakeItSo(base::internal::RunnableAdapter<void (__cdecl*)(void)> runnable) Line 856 C++
libcef.dll!base::internal::Invoker<0,base::internal::BindState<base::internal::RunnableAdapter<void (__cdecl*)(void)>,void __cdecl(void),void __cdecl(void)>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 1126 C++
libcef.dll!base::Callback<void __cdecl(void)>::Run() Line 396 C++
libcef.dll!base::`anonymous namespace'::WorkItemCallback(void * param) Line 33 C++
ntdll.dll!_RtlpTpWorkCallback@8 () Unknown
ntdll.dll!_TppWorkerThread@4 () Unknown
kernel32.dll!@BaseThreadInitThunk@12 () Unknown
ntdll.dll!___RtlUserThreadStart@8 () Unknown
ntdll.dll!__RtlUserThreadStart@8 () Unknown

Machine 2: nVidia 8400GS + DisplayLink adaptor.

KernelBase.dll!_RaiseException@16 () Unknown
dlumd32.dll!6c56c1c9() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for dlumd32.dll]
dlumd32.dll!6c514d3e() Unknown
dlumd32.dll!6c5147f7() Unknown
dlumd32.dll!6c51411e() Unknown
dlumd32.dll!6c513fc1() Unknown
dlumd32.dll!6c5138ff() Unknown
dlumd32.dll!6c51765b() Unknown
dlumd32.dll!6c504b60() Unknown
dlumd32.dll!6c552dc9() Unknown
dlumd32.dll!6c501171() Unknown
dlumd32.dll!6c501388() Unknown
> d3d11.dll!NDXGI::CUMDAdapter::CUMDAdapter(struct IDXGIAdapterInternal2 *,struct HINSTANCE__ *,enum NDXGI::EOAVersion,unsigned __int64) Unknown
d3d11.dll!CCreateDeviceCache::CUMDAdapterCache::Load(struct IDXGIAdapterInternal2 *,enum _KMTUMDVERSION) Unknown
d3d11.dll!CCreateDeviceCache::CAdapterCache::ResolveUMDAndVersion(class std::vector<unsigned __int64,class std::allocator<unsigned __int64> > &,enum D3D_FEATURE_LEVEL,enum D3D_DRIVER_TYPE,unsigned int,class NDXGI::CUMDAdapter * *,unsigned __int64 *) Unknown
d3d11.dll!_D3D11CoreCreateDevice@40 () Unknown
d3d11.dll!_D3D11CreateDeviceAndSwapChain@48 () Unknown
d3d11.dll!_D3D11CreateDevice@40 () Unknown
libcef.dll!`anonymous namespace'::CollectD3D11SupportOnWorkerThread() Line 309 C++
libcef.dll!base::internal::RunnableAdapter<void (__cdecl*)(void)>::Run() Line 115 C++
libcef.dll!base::internal::InvokeHelper<0,void,base::internal::RunnableAdapter<void (__cdecl*)(void)>,void __cdecl(void)>::MakeItSo(base::internal::RunnableAdapter<void (__cdecl*)(void)> runnable) Line 856 C++
libcef.dll!base::internal::Invoker<0,base::internal::BindState<base::internal::RunnableAdapter<void (__cdecl*)(void)>,void __cdecl(void),void __cdecl(void)>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 1126 C++
libcef.dll!base::Callback<void __cdecl(void)>::Run() Line 396 C++
libcef.dll!base::`anonymous namespace'::WorkItemCallback(void * param) Line 33 C++
ntdll.dll!_RtlpTpWorkCallback@8 () Unknown
ntdll.dll!_TppWorkerThread@4 () Unknown
kernel32.dll!@BaseThreadInitThunk@12 () Unknown
ntdll.dll!___RtlUserThreadStart@8 () Unknown
ntdll.dll!__RtlUserThreadStart@8 () Unknown

The DisplayLink driver dlumd32.dll seems to be the common culprit. Both machines had 'DisplayLink Core Software. Product Version: 5.6.31854.0' installed. We've since updated the display link driver on the second machine, and removed it from the first (which wasn't actually using one of the USB Graphics adapters), and CefClient is now stable on both machines.

It may still be worth looking into why the CEF1 based CefClient doesn't hit this problem though. I don't know how many people will have this particular driver installed - but it wasn't obvious it needed updating - as all the windows event logs on both machines pointed at the nVidia driver.

Many thanks,

James Allison
Software Developer - Red Gate Software
jallison83
Newbie
 
Posts: 3
Joined: Fri Jul 12, 2013 3:57 am


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 100 guests