Exiting GPU process due to errors during initialization

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.

Exiting GPU process due to errors during initialization

Postby barnold » Thu Aug 13, 2015 1:29 pm

I am new to CEF and I'm embedding the browser into a large legacy windows MFC application. I am able to see the browser within my application but have not been able to navigate to a web page (the browser appears blank). I'm building all the code using MSVS 2010. I'm getting the following error messages in the debug log and a Backtrace. Here are the error messages. What do they mean? Should I include the Backtrace?

[0813/121739:ERROR:gpu_child_thread.cc(143)] Exiting GPU process due to errors during initialization
[0813/121817:ERROR:renderer_main.cc(207)] Running without renderer sandbox
[0813/121817:FATAL:iat_patch_function.cc(245)] Check failed: false.
barnold
Newbie
 
Posts: 3
Joined: Thu Aug 13, 2015 12:39 pm

Re: Exiting GPU process due to errors during initialization

Postby magreenblatt » Thu Aug 13, 2015 2:48 pm

What CEF version are you using? How are you initializing CEF? Are you using a separate sub-process executable? If not, are you calling CefExecuteProcess and correctly evaluating the result?
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Exiting GPU process due to errors during initialization

Postby barnold » Thu Aug 13, 2015 4:24 pm

We recently downloaded a version that has a directory "cef_binary_3.2171.1979_windows32". Does that indicate the version? I don't believe I am using a separate sub-process executable since I am not executing with any arguments. Here is the code where the problem occurs. I see one child process starting up in but then it seems to abort.

BOOL CCerApp::InitInstance()
{
// // initialize CEF.
m_cefApp = new ClientApp(); //new with Fa memory hook

// get arguments
CefMainArgs main_args(GetModuleHandle(NULL));

//Execute the secondary process, if any.
int exit_code = CefExecuteProcess(main_args, m_cefApp.get(), NULL);
if (exit_code >= 0)
return exit_code;

// setup settings
CString szCEFCache;
CString szPath;
INT nLen = GetTempPath( 0, NULL ) + 1;
GetTempPath( nLen, szPath.GetBuffer( nLen ));

// save path
szCEFCache.Format( _T("%scache\0\0"), szPath );

CefSettings settings;
//settings.no_sandbox = TRUE;
//settings.multi_threaded_message_loop = FALSE;

CefString(&settings.log_file) = _T("C:\\tfs\\cefDebug.log");

CefString(&settings.cache_path) = szCEFCache;

void* sandbox_info = NULL;
#if CEF_ENABLE_SANDBOX
// Manage the life span of the sandbox information object. This is necessary
// for sandbox support on Windows. See cef_sandbox_win.h for complete details.
CefScopedSandboxInfo scoped_sandbox;
sandbox_info = scoped_sandbox.sandbox_info();
#endif

//CEF Initiaized
m_bCEFInitialized = CefInitialize(main_args, settings, m_cefApp.get(), sandbox_info);

...
barnold
Newbie
 
Posts: 3
Joined: Thu Aug 13, 2015 12:39 pm

Re: Exiting GPU process due to errors during initialization

Postby magreenblatt » Thu Aug 13, 2015 4:40 pm

If you don't set multi_threaded_message_loop to true then you need to call CefRunMessageLoop() or CefDoMessageLoopWork(). CefRunMessageLoop() won't work in an MFC application because MFC runs its own application message loop.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Exiting GPU process due to errors during initialization

Postby magreenblatt » Thu Aug 13, 2015 4:42 pm

You might want to review an example MFC integration like https://code.google.com/p/cef-mfc/. Note that this example uses CefDoMessageLoopWork (you can use multi_threaded_message_loop instead).
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Exiting GPU process due to errors during initialization

Postby barnold » Fri Aug 21, 2015 10:41 am

That's for answering but we were able to get around this error by running a sub-process. Btw - we do use CefDoMessageLoopWork() like the MFC sample.

BOOL CCerApp::PumpMessage()
{
// do CEF message loop
if( m_bCEFInitialized )//barnold commented
CefDoMessageLoopWork();

return CWinAppEx::PumpMessage();
}
barnold
Newbie
 
Posts: 3
Joined: Thu Aug 13, 2015 12:39 pm


Return to Support Forum

Who is online

Users browsing this forum: No registered users and 84 guests