chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.38k stars 467 forks source link

libcef.dll v127.3.50 crash when process exists in the `~KeyedServiceTemplatedFactory` #3781

Closed jozefizso closed 2 months ago

jozefizso commented 2 months ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. We use CefSharp v127.3.50 which includes libcef.dll v127.3.50
  2. We are using the Alloy runtime
  3. We are hosting the browser in the Microsoft PowerPoint process
  4. When we exit the PowerPoint, libcef.dll crashes, which may cause data loss if PowerPoint is saving files

This issues exists only in the M127 release. M126 works correctly.

Expected behavior libcef.dll should not be crashing the hosting process when it exists.

Stacktrace


PROCESS_NAME:  POWERPNT.EXE

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE_STR:  80000003

STACK_TEXT:  
000000e0`c907fb60 00007ffc`eeaffb70     : 00007ffd`9d4f2384 00007ffc`ec467c9d 000000e0`c907fc40 00007ffc`f64a7e68 : libcef!KeyedServiceTemplatedFactory<KeyedService>::~KeyedServiceTemplatedFactory+0x71
000000e0`c907fbb0 00007ffc`eebc549a     : 000000e0`c907fc40 000000e0`c907fc60 ffffffff`fffffffe aaaaaaaa`aaaaaaaa : libcef!extensions::BrowserContextKeyedAPIFactory<extensions::ContentSettingsService>::~BrowserContextKeyedAPIFactory+0x10
000000e0`c907fbf0 00007ffc`efc68366     : ffffffff`fffffffe 000074d4`00270880 ffffffff`ffffffff 00007ffc`ec46f9ec : libcef!base::Singleton<ExtensionPrefValueMapFactory,base::DefaultSingletonTraits<ExtensionPrefValueMapFactory>,ExtensionPrefValueMapFactory>::OnExit+0x2a
000000e0`c907fc20 00007ffc`ea490353     : 000074d4`00261de0 000074d4`002a8360 00000000`00000000 000074d4`00264c00 : libcef!base::AtExitManager::ProcessCallbacksNow+0xf6
000000e0`c907fca0 00007ffc`eb06eb5f     : 00000000`00000057 00000000`00000000 00000000`00000000 00000000`00000000 : libcef!CefUIThread::ThreadMain+0x1c3
000000e0`c907fd50 00007ffd`9e077374     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : libcef!base::`anonymous namespace'::ThreadFunc+0x11f
000000e0`c907fde0 00007ffd`9fb9cc91     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0x14
000000e0`c907fe10 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21

STACK_COMMAND:  ~8s ; .cxr ; kb

FAULTING_SOURCE_LINE:  Y:\work\CEF3_git\chromium\src\components\keyed_service\core\keyed_service_templated_factory.cc

FAULTING_SOURCE_FILE:  Y:\work\CEF3_git\chromium\src\components\keyed_service\core\keyed_service_templated_factory.cc

FAULTING_SOURCE_LINE_NUMBER:  34

FAULTING_SOURCE_CODE:  
No source found for 'Y:\work\CEF3_git\chromium\src\base\immediate_crash.h'

SYMBOL_NAME:  libcef!KeyedServiceTemplatedFactory<KeyedService>::~KeyedServiceTemplatedFactory+71

Versions (please complete the following information):

Additional context We can reproduce the crash only with the M127 releases and the Alloy runtime.

With the Chrome runtime the crash does not occur.

As we don't have enough resources to verify if our app works correctly with the Chrome runtime, we are still running with the Alloy as it worked correctly for the last three years.

magreenblatt commented 2 months ago

Alloy runtime is no longer supported. M127 is no longer supported.

jozefizso commented 2 months ago

🤦🏻‍♂️

How can we expect this problem does not happen with the Chrome runtime?

This kind of crash can cause serious issues when the application is shutting down - data can be corrupted.