cefdomessageloopwork fails on first call (debug mode only)

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.

cefdomessageloopwork fails on first call (debug mode only)

Postby biomerge » Tue Oct 29, 2019 3:04 am

Hi, I'm integrating CEF with the MFC framework. I downloaded a couple of MFC sample programs (with different chromium versions) and they all have one thing in common: CefDoMessageLoopWork throws an exception in debug mode on its first call. Everything works fine in release mode though. I downloaded the libcef binaries (no source code), so I don't know why exactly the exception is thrown.

I initialized CEF successfully with CefSettings::multi_threaded_message_loop FALSE and CefSettings::no_sandbox TRUE.

Any ideas on what I'm missing here? I'm not mixing up the debug and release versions of libcef.dll.

Some more output I'm getting:

CefDoMessageLoopWork [0x124D0ACF+162] (context.cc:291)
CefDoMessageLoopWork [0x00F23348+8] (libcef_dll_wrapper.cc:128)
CCEFMFCApp::PumpMessage [0x00EFBD5E+62] (cefmfc.cpp:57)
(No symbol) [0x0FA6740D]
(No symbol) [0x0F8D31FC]
(No symbol) [0x0FADF9EF]
wWinMain [0x01029648+24] (d:\agent\_work\3\s\src\vctools\vc7libs\ship\atlmfc\src\mfc\appmodul.cpp:26)
invoke_main [0x01024D2E+30] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:123)
__scrt_common_main_seh [0x01024B97+343] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
__scrt_common_main [0x01024A2D+13] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
wWinMainCRTStartup [0x01024DA8+8] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp:17)
BaseThreadInitThunk [0x76DF8494+36]
RtlAreBitsSet [0x77D541C8+136]
RtlAreBitsSet [0x77D54198+88]

CEFMFC.exe has triggered a breakpoint.

Exception thrown at 0x12537453 (libcef.dll) in CEFMFC.exe: 0xC000001D: Illegal Instruction.
Unhandled exception at 0x12537453 (libcef.dll) in CEFMFC.exe: 0xC000001D: Illegal Instruction.
biomerge
Techie
 
Posts: 13
Joined: Tue Oct 29, 2019 2:40 am

Re: cefdomessageloopwork fails on first call (debug mode onl

Postby magreenblatt » Tue Oct 29, 2019 9:40 am

You should be able to download "Debug Symbols" (PDB) from the same place you got the binaries. Place the PDB next to the exe and run with a debugger to get a symbolized stack trace. Also, check your debug console for the failure message.
magreenblatt
Site Admin
 
Posts: 12383
Joined: Fri May 29, 2009 6:57 pm

Re: cefdomessageloopwork fails on first call (debug mode onl

Postby biomerge » Tue Oct 29, 2019 11:09 am

Hi,

My issue seems to be related to viewtopic.php?f=6&t=17075.
I'm not calling "CefEnableHighDPISupport" anywhere, but I am working on a 4k resolution laptop.

This is the full logging:

Code: Select all
[1029/163548.271:FATAL:thread_restrictions.cc(76)] Check failed: !g_blocking_disallowed.Get().Get(). Function marked as blocking was called from a scope that disallows blocking! If this task is running inside the ThreadPool, it needs to have MayBlock() in its TaskTraits. Otherwise, consider making this blocking work asynchronous or, as a last resort, you may use ScopedAllowBlocking (see its documentation for best practices).
g_blocking_disallowed currently set to true by
Backtrace:
   base::debug::CollectStackTrace [0x04FEFB53+19] (Y:\work\CEF3_git\chromium\src\base\debug\stack_trace_win.cc:284)
   base::debug::StackTrace::StackTrace [0x04303A31+17] (Y:\work\CEF3_git\chromium\src\base\debug\stack_trace.cc:203)
   base::`anonymous namespace'::ThreadLocalBooleanWithStacks::Set [0x043698EA+58] (Y:\work\CEF3_git\chromium\src\base\threading\thread_restrictions.cc:36)
   net::ProxyConfigServiceWin::StartWatchingRegistryForChanges [0x063931E4+90] (Y:\work\CEF3_git\chromium\src\net\proxy_resolution\proxy_config_service_win.cc:92)
   net::ProxyConfigServiceWin::AddObserver [0x06393181+11] (Y:\work\CEF3_git\chromium\src\net\proxy_resolution\proxy_config_service_win.cc:56)
   ProxyConfigServiceImpl::RegisterObserver [0x05F83689+117] (Y:\work\CEF3_git\chromium\src\components\proxy_config\pref_proxy_config_tracker_impl.cc:151)
   ProxyConfigServiceImpl::AddObserver [0x05F83607+11] (Y:\work\CEF3_git\chromium\src\components\proxy_config\pref_proxy_config_tracker_impl.cc:74)
   ProxyConfigMonitor::ProxyConfigMonitor [0x063F62A3+563] (Y:\work\CEF3_git\chromium\src\chrome\browser\net\proxy_config_monitor.cc:55)
   ProfileNetworkContextService::ProfileNetworkContextService [0x055CD11D+81] (Y:\work\CEF3_git\chromium\src\chrome\browser\net\profile_network_context_service.cc:164)
   ProfileNetworkContextServiceFactory::BuildServiceInstanceFor [0x055CD074+40] (Y:\work\CEF3_git\chromium\src\chrome\browser\net\profile_network_context_service_factory.cc:32)
   BrowserContextKeyedServiceFactory::BuildServiceInstanceFor [0x04A90337+15] (Y:\work\CEF3_git\chromium\src\components\keyed_service\content\browser_context_keyed_service_factory.cc:97)
   KeyedServiceFactory::GetServiceForContext [0x046D629D+187] (Y:\work\CEF3_git\chromium\src\components\keyed_service\core\keyed_service_factory.cc:0)
   ProfileNetworkContextServiceFactory::GetForContext [0x055CD049+49] (Y:\work\CEF3_git\chromium\src\chrome\browser\net\profile_network_context_service_factory.cc:14)
   Profile::CreateNetworkContext [0x0496072B+21] (Y:\work\CEF3_git\chromium\src\chrome\browser\profiles\profile.cc:279)
   CefContentBrowserClient::CreateNetworkContext [0x04FCED4A+42] (Y:\work\CEF3_git\chromium\src\cef\libcef\browser\content_browser_client.cc:1358)
   content::StoragePartitionImpl::InitNetworkContext [0x02BA9513+67] (Y:\work\CEF3_git\chromium\src\content\browser\storage_partition_impl.cc:1767)
   content::StoragePartitionImpl::GetNetworkContext [0x02BA94BB+31] (Y:\work\CEF3_git\chromium\src\content\browser\storage_partition_impl.cc:1027)
   content::URLLoaderFactoryGetter::HandleNetworkFactoryRequestOnUIThread [0x02BC1E4A+276] (Y:\work\CEF3_git\chromium\src\content\browser\url_loader_factory_getter.cc:303)
   content::URLLoaderFactoryGetter::HandleFactoryRequests [0x02BC1CBF+259] (Y:\work\CEF3_git\chromium\src\content\browser\url_loader_factory_getter.cc:153)
   content::URLLoaderFactoryGetter::Initialize [0x02BC1AF8+258] (Y:\work\CEF3_git\chromium\src\content\browser\url_loader_factory_getter.cc:144)
   content::StoragePartitionImpl::Create [0x02BA8A01+2075] (Y:\work\CEF3_git\chromium\src\content\browser\storage_partition_impl.cc:955)
   content::StoragePartitionImplMap::Get [0x02BB0E94+196] (Y:\work\CEF3_git\chromium\src\content\browser\storage_partition_impl_map.cc:385)
   content::`anonymous namespace'::GetStoragePartitionFromConfig [0x027DCC3B+107] (Y:\work\CEF3_git\chromium\src\content\browser\browser_context.cc:221)
   content::BrowserContext::GetStoragePartition [0x027DCB91+147] (Y:\work\CEF3_git\chromium\src\content\browser\browser_context.cc:439)
   content::RenderProcessHostImpl::GetProcessHostForSiteInstance [0x02AE1CBD+1197] (Y:\work\CEF3_git\chromium\src\content\browser\renderer_host\render_process_host_impl.cc:4004)
   content::SiteInstanceImpl::GetProcess [0x02B99F0E+122] (Y:\work\CEF3_git\chromium\src\content\browser\site_instance_impl.cc:267)
   content::WebContentsImpl::Init [0x02BCECAC+296] (Y:\work\CEF3_git\chromium\src\content\browser\web_contents\web_contents_impl.cc:2118)
   content::WebContentsImpl::CreateWithOpener [0x02BC68AF+359] (Y:\work\CEF3_git\chromium\src\content\browser\web_contents\web_contents_impl.cc:808)
   content::WebContents::Create [0x02BC6736+46] (Y:\work\CEF3_git\chromium\src\content\browser\web_contents\web_contents_impl.cc:316)
   CefBrowserHostImpl::Create [0x042A1683+737] (Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_impl.cc:365)
   CefBrowserHost::CreateBrowserSync [0x042A125F+1449] (Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_impl.cc:288)
   `anonymous namespace'::CreateBrowserWithHelper [0x042A0B91+144] (Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_impl.cc:141)
   base::internal::Invoker<base::internal::BindState<void (*)(base::Thread *),base::Thread *>,void ()>::RunOnce [0x01C45F6C+12] (Y:\work\CEF3_git\chromium\src\base\bind_internal.h:641)
   base::TaskAnnotator::RunTask [0x0435292A+314] (Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.cc:142)
   base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl [0x0500B08A+378] (Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:366)
   base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork [0x0500AD95+85] (Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:221)
   base::MessagePumpForUI::DoRunLoop [0x0431DCC9+265] (Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc:219)
   base::MessagePumpWin::Run [0x0431D2DF+143] (Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc:77)
   base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run [0x0500BAC1+289] (Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:467)
   base::RunLoop::RunWithTimeout [0x0433B9E9+697] (Y:\work\CEF3_git\chromium\src\base\run_loop.cc:159)
   base::RunLoop::RunUntilIdle [0x0433C01B+107] (Y:\work\CEF3_git\chromium\src\base\run_loop.cc:166)
   CefDoMessageLoopWork [0x042B0ACF+162] (Y:\work\CEF3_git\chromium\src\cef\libcef\browser\context.cc:291)
   CefDoMessageLoopWork [0x00F23348+8] (c:\users\16000820\documents\visual studio 2017\backup files\cef_mfc_demo\libcef_dll_wrapper\libcef_dll\wrapper\libcef_dll_wrapper.cc:128)
   CCEFMFCApp::PumpMessage [0x00EFBD5E+62] (c:\users\16000820\documents\visual studio 2017\backup files\cef_mfc_demo\cefmfc\cefmfc.cpp:57)
   (No symbol) [0x1012740D]
   (No symbol) [0x0FF931FC]
   (No symbol) [0x1019F9EF]
   wWinMain [0x01029648+24] (d:\agent\_work\3\s\src\vctools\vc7libs\ship\atlmfc\src\mfc\appmodul.cpp:26)
   invoke_main [0x01024D2E+30] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:123)
   __scrt_common_main_seh [0x01024B97+343] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
   __scrt_common_main [0x01024A2D+13] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331)
   wWinMainCRTStartup [0x01024DA8+8] (d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp:17)
   BaseThreadInitThunk [0x76DF8494+36]
   RtlAreBitsSet [0x77D541C8+136]
   RtlAreBitsSet [0x77D54198+88]

CEFMFC.exe has triggered a breakpoint.


This has been resolved by an upgrade to the lastest cef stack (78.2.10) and calling "CefEnableHighDPISupport" (on a 4k display).
Last edited by biomerge on Thu Nov 07, 2019 3:09 am, edited 1 time in total.
biomerge
Techie
 
Posts: 13
Joined: Tue Oct 29, 2019 2:40 am

Re: cefdomessageloopwork fails on first call (debug mode onl

Postby biomerge » Mon Nov 04, 2019 5:09 am

Hi,

I downloaded the latest 64-bit chromium version (CEF 78.2.10+g942899d+chromium-78.0.3904.70 / Chromium 78.0.3904.70) and I now encounter a similar problem with sample project cefclient. It works perfectly fine in release mode, but doesn't work in debug mode. See attachments for the difference between both modes. It's not a hard crash, but rather the fact that the webpage doesn't load in debug.

I had encountered the exact same problem with my program in debug mode on a non 4k laptop using an older chromium version. That same program made a hard crash in debug mode on a 4k laptop (see logging in previous post). With that older chromium version cefclient worked correctly on both laptops. Now with the newest chromium version cefclient fails in debug mode on both laptops.
Attachments
cefclient_release.png
cefclient_release.png (33.5 KiB) Viewed 3860 times
cefclient_debug.png
cefclient_debug.png (7.6 KiB) Viewed 3860 times
biomerge
Techie
 
Posts: 13
Joined: Tue Oct 29, 2019 2:40 am


Return to Support Forum

Who is online

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