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

V8 error: Empty MaybeLocal (v8::ToLocalChecked).. #3741

Closed orange2211 closed 4 months ago

orange2211 commented 4 months ago

Describe the bug I'm using Javacef with cef version 109.1.12+g23deb66+chromium-109.0.5414.87/chromium 109.0.5414.87 and occasionally the error "[0715/161043.866:FATAL:v8_initializer.cc(725)] V8 error: Empty MaybeLocal (v8:: ToLocalChecked).." My operating system is win7. Debug by downloading the PDB file of the release version, and analyze that an exception occurs in this place

image

The following is the exception stack information -------- -------- -------- libcef!logging::anonymous namespace'::SetLogFatalCrashKey+0x254 [Y:\work\CEF3_git\chromium\src\base\logging.cc @ 486] 10 0009dfd8 15e13f76 1795e854 00000003 17b2a9f4 libcef!logging::LogMessage::~LogMessage+0x4b6 [Y:\work\CEF3_git\chromium\src\base\logging.cc @ 938] 11 0009e094 136074b9 17e44152 17e44141 0009e0d4 libcef!blink::ReportV8FatalError+0xc6 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_initializer.cc @ 725] 12 0009e0b0 13608522 17e44152 17e44141 0009e188 libcef!v8::Utils::ReportApiFailure+0x39 [Y:\work\CEF3_git\chromium\src\v8\src\api\api.cc @ 320] 13 (Inline) -------- -------- -------- -------- libcef!v8::Utils::ApiCheck+0xf [Y:\work\CEF3_git\chromium\src\v8\src\api\api.h @ 152] 14 0009e0c0 11fb63b7 4ffe0000 4fe6f070 243229e0 libcef!v8::api_internal::ToLocalEmpty+0x12 [Y:\work\CEF3_git\chromium\src\v8\src\api\api.cc @ 881] 15 (Inline) -------- -------- -------- -------- libcef!v8::MaybeLocal<v8::Context>::ToLocalChecked+0x27 [Y:\work\CEF3_git\chromium\src\v8\include\v8-local-handle.h @ 370] 16 0009e188 11adeddc 0009e200 4ffe0000 4fe6f070 libcef!blink::V8ContextSnapshotImpl::CreateContext+0x147 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\modules\v8\v8_context_snapshot_impl.cc @ 355] 17 0009e1b0 11a7c44f 0009e200 4ffe0000 4fe6f070 libcef!blink::V8ContextSnapshot::CreateContextFromSnapshot+0x2c [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_context_snapshot.cc @ 28] 18 0009e2c8 11a7bd07 0000004c 002da6e0 00010000 libcef!blink::LocalWindowProxy::CreateContext+0xdf [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\local_window_proxy.cc @ 226] 19 0009e398 12a0f4f8 243c9d18 0009e3e4 10f9859e libcef!blink::LocalWindowProxy::Initialize+0xc7 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\local_window_proxy.cc @ 150] 1a (Inline) -------- -------- -------- -------- libcef!blink::WindowProxyManager::GetWindowProxy+0x11 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\window_proxy_manager.h @ 47] 1b 0009e3a4 10f9859e 4fe6f070 002da6e0 4ffe0000 libcef!blink::Frame::GetWindowProxy+0x18 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\frame\frame.cc @ 272] 1c (Inline) -------- -------- -------- -------- libcef!blink::ToV8ContextEvenIfDetached+0x15 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_binding_for_core.cc @ 777] 1d (Inline) -------- -------- -------- -------- libcef!blink::ToScriptStateImpl+0x15 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_binding_for_core.cc @ 729] 1e 0009e3e4 10f98683 243c9d18 4fe6f070 0009e414 libcef!blink::ToScriptState+0x4e [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_binding_for_core.cc @ 818] 1f 0009e3f8 10aa3bbf 243c9d18 4fed8f00 0009e434 libcef!blink::ToScriptStateForMainWorld+0x13 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\bindings\core\v8\v8_binding_for_core.cc @ 822] 20 0009e408 128bb773 0009e414 183bf36b 4ffe0000 libcef!blink::WebLocalFrameImpl::MainWorldScriptContext+0xf [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\frame\web_local_frame_impl.cc @ 1136] 21 0009e434 1054160b 4fed8f00 4fe2d680 0009e4a4 libcef!extensions::ScriptContextSet::GetMainWorldContextForFrame+0x43 [Y:\work\CEF3_git\chromium\src\extensions\renderer\script_context_set.cc @ 123] 22 (Inline) -------- -------- -------- -------- libcef!extensions::anonymous namespace'::GetExtensionFromFrame+0x6 [Y:\work\CEF3_git\chromium\src\extensions\renderer\extension_frame_helper.cc @ 124] 23 0009e444 10b384de 00000003 00000000 00000000 libcef!extensions::ExtensionFrameHelper::DidCommitProvisionalLoad+0x2b [Y:\work\CEF3_git\chromium\src\extensions\renderer\extension_frame_helper.cc @ 376] 24 0009e4a4 10b37ce9 00000003 ffffffff ffffffff libcef!content::RenderFrameImpl::NotifyObserversOfNavigationCommit+0x12e [Y:\work\CEF3_git\chromium\src\content\renderer\render_frame_impl.cc @ 4749] 25 0009e608 1102fdbc 00000002 00000001 0009e744 libcef!content::RenderFrameImpl::DidCommitNavigation+0xb99 [Y:\work\CEF3_git\chromium\src\content\renderer\render_frame_impl.cc @ 3800] 26 0009e704 11020417 243cf310 00000002 00000001 libcef!blink::LocalFrameClientImpl::DispatchDidCommitLoad+0x5c [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\frame\local_frame_client_impl.cc @ 445] 27 0009e8c8 10fbc033 ffffffff 00000000 00000000 libcef!blink::DocumentLoader::CommitNavigation+0x577 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\loader\document_loader.cc @ 2666] 28 0009e93c 10fbe4b3 243ce688 00000000 00000003 libcef!blink::FrameLoader::CommitDocumentLoader+0x143 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\loader\frame_loader.cc @ 1369] 29 0009e9fc 10aa5651 00000000 00000000 00000003 libcef!blink::FrameLoader::CommitNavigation+0x413 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\loader\frame_loader.cc @ 1208] 2a 0009eb18 10b34278 4fedb200 4fed0e00 4fed8f00 libcef!blink::WebLocalFrameImpl::CommitNavigation+0xe1 [Y:\work\CEF3_git\chromium\src\third_party\blink\renderer\core\frame\web_local_frame_impl.cc @ 2619] 2b 0009eb7c 10b42eeb 4ff3abc0 4fedc100 00000000 libcef!content::RenderFrameImpl::CommitNavigationWithParams+0x318 [Y:\work\CEF3_git\chromium\src\content\renderer\render_frame_impl.cc @ 2839] 2c 0009ebe4 10b42e05 10b33f60 00000000 4fed0da8 libcef!base::internal::FunctorTraits<void (content::RenderFrameImpl::)(mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >, absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >, mojo::StructPtr, mojo::StructPtr, mojo::PendingRemote, mojo::PendingRemote, mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete >, std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >) attribute((thiscall)),void>::Invoke<void (content::RenderFrameImpl::)(mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >, absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >, mojo::StructPtr, mojo::StructPtr, mojo::PendingRemote, mojo::PendingRemote, mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete >, std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >) attribute+0xcb [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 646] 2d (Inline) -------- -------- -------- -------- libcef!base::internal::InvokeHelper<1,void,0,1,2,3,4,5,6,7,8,9,10,11>::MakeItSo+0xbc [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 847] 2e (Inline) -------- -------- -------- -------- libcef!base::internal::Invoker<base::internal::BindState<void (content::RenderFrameImpl::*)(mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >, absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >, mojo::StructPtr, mojo::StructPtr, mojo::PendingRemote, mojo::PendingRemote, mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete >, std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >) attribute((thiscall)),base::WeakPtr,mojo::StructPtr,mojo::StructPtr,std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >,absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >,mojo::StructPtr,mojo::StructPtr,mojo::PendingRemote,mojo::PendingRemote,mojo::StructPtr,mojo::StructPtr,std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete > >,void (std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >)>::R+0xbc [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 919] 2f 0009ec60 10b32dd5 4fed0d90 0009ecd0 00000004 libcef!base::internal::Invoker<base::internal::BindState<void (content::RenderFrameImpl::*)(mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >, absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >, mojo::StructPtr, mojo::StructPtr, mojo::PendingRemote, mojo::PendingRemote, mojo::StructPtr, mojo::StructPtr, std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete >, std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >) attribute((thiscall)),base::WeakPtr,mojo::StructPtr,mojo::StructPtr,std::Cr::unique_ptr<blink::PendingURLLoaderFactoryBundle,std::Cr::default_delete >,absl::optional<std::Cr::vector<mojo::StructPtr,std::Cr::allocator<mojo::StructPtr > > >,mojo::StructPtr,mojo::StructPtr,mojo::PendingRemote,mojo::PendingRemote,mojo::StructPtr,mojo::StructPtr,std::Cr::unique_ptr<content::DocumentState,std::Cr::default_delete > >,void (std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >)>::R+0xd5 [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 874] 30 (Inline) -------- -------- -------- -------- libcef!base::OnceCallback<void (std::Cr::unique_ptr<blink::WebNavigationParams,std::Cr::default_delete >)>::Run+0x18 [Y:\work\CEF3_git\chromium\src\base\functional\callback.h @ 174] 31 0009ed5c 1114d98b 00000000 00000000 4ff17600 libcef!content::RenderFrameImpl::CommitNavigation+0x5c5 [Y:\work\CEF3_git\chromium\src\content\renderer\render_frame_impl.cc @ 2729] 32 0009ede8 0f98af63 00000000 00000000 00000000 libcef!content::NavigationClient::CommitNavigation+0xeb [Y:\work\CEF3_git\chromium\src\content\renderer\navigation_client.cc @ 55] 33 0009ef48 1114e0ec 4fe5ef40 0009f0c4 00000000 libcef!content::mojom::NavigationClientStubDispatch::AcceptWithResponder+0x5c3 [Y:\work\CEF3_git\chromium\src\out\Release_GN_x86\gen\content\common\navigation_client.mojom.cc @ 1423] 34 0009ef68 128c0d40 0009f0c4 4ff31960 4fe8b300 libcef!content::mojom::NavigationClientStub<mojo::RawPtrImplRefTraits >::AcceptWithResponder+0x2c [Y:\work\CEF3_git\chromium\src\out\Release_GN_x86\gen\content\common\navigation_client.mojom.h @ 204] 35 0009efc8 1298bdde 0009f0c4 00000000 00000000 libcef!mojo::InterfaceEndpointClient::HandleValidatedMessage+0x330 [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc @ 956] 36 0009eff8 128c1c32 0009f0c4 4fed0af0 10355e30 libcef!mojo::MessageDispatcher::Accept+0x6e [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\message_dispatcher.cc @ 43] 37 0009f0b8 1293953c 0009f0c4 4fec6780 00000000 libcef!mojo::InterfaceEndpointClient::HandleIncomingMessage+0x32 [Y:\work\CEF3_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc @ 694] 38 (Inline) -------- -------- -------- -------- libcef!IPC::`anonymous namespace'::ChannelAssociatedGroupController::AcceptOnEndpointThread+0xd7 [Y:\work\CEF3_git\chromium\src\ipc\ipc_mojo_bootstrap.cc @ 1083] 39 0009f148 129393d6 129398d0 00000000 129398d0 libcef!base::internal::FunctorTraits<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::)(mojo::Message) attribute((thiscall)),void>::Invoke<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::)(mojo::Message) attribute((thiscall)),scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>,mojo::Message>+0x14c [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 646] 3a (Inline) -------- -------- -------- -------- libcef!base::internal::InvokeHelper<0,void,0,1>::MakeItSo+0x1e [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 825] 3b (Inline) -------- -------- -------- -------- libcef!base::internal::Invoker<base::internal::BindState<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message) attribute__((thiscall)),scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>,mojo::Message>,void ()>::RunImpl+0x1e [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 919] 3c 0009f168 128e0462 4fec6720 00000000 00000000 libcef!base::internal::Invoker<base::internal::BindState<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message) attribute((thiscall)),scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>,mojo::Message>,void ()>::RunOnce+0x36 [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 870] 3d (Inline) -------- -------- -------- -------- libcef!base::OnceCallback<void ()>::Run+0x17 [Y:\work\CEF3_git\chromium\src\base\functional\callback.h @ 174] 3e 0009f1b8 12990db7 5002a000 5002a000 4ff08134 libcef!base::TaskAnnotator::RunTaskImpl+0xe2 [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.cc @ 155] 3f (Inline) -------- -------- -------- -------- libcef!base::TaskAnnotator::RunTask+0x17 [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.h @ 84] 40 (Inline) -------- -------- -------- -------- libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl+0x47f [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 449] 41 0009f3a8 1298f15c 0009f3d0 00000000 0009f3df libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork+0x517 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 300] 42 0009f404 10b66730 4ff080a8 105aa59a ffffffff libcef!base::MessagePumpDefault::Run+0x5c [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_default.cc @ 40] 43 0009f474 105aa27f 00000001 ffffffff 7fffffff libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run+0xf0 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 612] 44 0009f4d4 10b43ac2 0009f4f8 18be4dcc f0a1d08b libcef!base::RunLoop::Run+0xdf [Y:\work\CEF3_git\chromium\src\base\run_loop.cc @ 141] 45 0009f5d4 1056377d 4fe6c370 0009f7cc 00000000 libcef!content::RendererMain+0x572 [Y:\work\CEF3_git\chromium\src\content\renderer\renderer_main.cc @ 321] 46 0009f62c 1056445b 0009f664 4fe6c370 0009f7cc libcef!content::RunOtherNamedProcessTypeMain+0x29d [Y:\work\CEF3_git\chromium\src\content\app\content_main_runner_impl.cc @ 734] 47 0009f6b8 10562ebc 0009f6c0 4fe5c080 00000000 libcef!content::ContentMainRunnerImpl::Run+0x2eb [Y:\work\CEF3_git\chromium\src\content\app\content_main_runner_impl.cc @ 1086] 48 (Inline) -------- -------- -------- -------- libcef!content::ContentMainRun+0x5 [Y:\work\CEF3_git\chromium\src\content\app\content_main.cc @ 338] 49 0009f6e4 10562fa8 4fe94140 00c90000 0009f7cc libcef!content::RunContentProcess+0x6c [Y:\work\CEF3_git\chromium\src\content\app\content_main.cc @ 380] 4a 0009f720 0f4075fc 4fe94140 00c90000 0009f7cc libcef!content::ContentMain+0x58 [Y:\work\CEF3_git\chromium\src\content\app\content_main.cc @ 395] 4b 0009f7f0 0f3e110f 0009f828 4fe400e8 00000000 libcef!CefMainRunner::RunAsHelperProcess+0x28c [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\main_runner.cc @ 346] 4c 0009f810 0f3509b3 0009f828 4fe400e8 00000000 libcef!CefExecuteProcess+0x5f [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\context.cc @ 278] 4d 0009f83c 00c9e518 0009f8a8 002f7a70 00000000 libcef!cef_execute_process+0x93 [Y:\work\CEF3_git\chromium\src\cef\libcef_dll\libcef_dll.cc @ 74] WARNING: Stack unwind information not available. Following frames may be wrong. 4e 0009f86c 00c9ba08 0009f8a8 002fd430 00000000 jcef_helper+0xe518 4f 0009f8a0 00cce15c 00c90000 00000000 002a7aa7 jcef_helper+0xba08

orange2211 commented 4 months ago

Sorry, the stack information above is confusing, please see this stack screenshot

image
magreenblatt commented 4 months ago

Your version of v8_context_snapshot.bin (or other *.bin file) is likely incorrect, or is failing to load for some reason (like Antivirus interference). Make sure that all files match the versions from the associated CEF binary distribution.

orange2211 commented 4 months ago

Your version of v8_context_snapshot.bin (or other *.bin file) is likely incorrect, or is failing to load for some reason (like Antivirus interference). Make sure that all files match the versions from the associated CEF binary distribution.

All the files in my running directory are downloaded directly from the https://github.com/jcefmaven/jcefbuild/releases, and the same running directory is currently in the same running directory, there is no problem in the win10 test, but this problem occurs in win7. Excuse me, will this have anything to do with OS compatibility? And I've found that this issue comes up more frequently when using iframe

magreenblatt commented 4 months ago

will this have anything to do with OS compatibility?

Maybe. Are you loading the files from a local disk? Have you disabled antivirus on the directory?

a740659387 commented 4 months ago

will this have anything to do with OS compatibility?

Maybe. Are you loading the files from a local disk? Have you disabled antivirus on the directory?

After disabling the antivirus software, we still experienced crashes. May I ask if there is any switch that can prevent reading the v8_comtext_stnapshot.bin file?

magreenblatt commented 4 months ago

May I ask if there is any switch that can prevent reading the v8_comtext_stnapshot.bin file?

You can try building CEF/Chromium with the use_v8_context_snapshot=false GN argument. This is not something that we test or support currently.