CefClient.exe crash in libcef.dll ~LogMessage()

Do not post support requests, bug reports or feature requests. Discuss CEF here. Non-CEF related discussion goes in General Discussion!

CefClient.exe crash in libcef.dll ~LogMessage()

Postby smisro » Wed Oct 31, 2018 2:52 pm

Hi,
I'm using 'cef_binary_3.3538.1849.g458cc98' and built the solution with /MD option. I Used the following to do that:

C:\work\cef-project\build>CMake -G "Visual Studio 14 Win64" -DCEF_RUNTIME_LIBRARY_FLAG=/MD -DUSE_SANDBOX=Off ..

All projects in the cef.sln compile and build fine.
When I launch cefclient.exe in debug mode from visual studio, it launches with the default url pointing to "http://www.google.com" and within a few seconds after loading, the application throws an exception with the following callstack. If I change the default URL to something else ( say http://www.yahoo.com it doesn't crash ).

libcef.dll!logging::LogMessage::~LogMessage() Line 863 C++
> libcef.dll!media::CoreAudioUtil::GetSharedModeMixFormat(IAudioClient * client, WAVEFORMATEXTENSIBLE * format) Line 671 C++
libcef.dll!media::CoreAudioUtil::GetPreferredAudioParameters(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & device_id, bool is_output_device, media::AudioParameters * params) Line 777 C++
libcef.dll!media::AudioManagerWin::GetPreferredOutputStreamParameters(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & output_device_id, const media::AudioParameters & input_params) Line 312 C++
libcef.dll!media::AudioManagerBase::GetDefaultOutputStreamParameters() Line 483 C++
libcef.dll!media::AudioSystemHelper::ComputeOutputParameters(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & device_id) Line 134 C++
libcef.dll!media::AudioSystemHelper::GetOutputStreamParameters(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & device_id, base::OnceCallback<void (const base::Optional<media::AudioParameters> &)> on_params_cb) Line 52 C++
libcef.dll!audio::SystemInfo::GetOutputStreamParameters(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & device_id, base::OnceCallback<void (const base::Optional<media::AudioParameters> &)> callback) Line 42 C++
libcef.dll!audio::mojom::SystemInfoStubDispatch::AcceptWithResponder(audio::mojom::SystemInfo * impl, mojo::Message * message, std::unique_ptr<mojo::MessageReceiverWithStatus,std::default_delete<mojo::MessageReceiverWithStatus> > responder) Line 1653 C++
libcef.dll!audio::mojom::SystemInfoStub<mojo::RawPtrImplRefTraits<audio::mojom::SystemInfo> >::AcceptWithResponder(mojo::Message * message, std::unique_ptr<mojo::MessageReceiverWithStatus,std::default_delete<mojo::MessageReceiverWithStatus> > responder) Line 221 C++
libcef.dll!mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message * message) Line 398 C++
libcef.dll!mojo::FilterChain::Accept(mojo::Message * message) Line 40 C++
libcef.dll!mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message * message) Line 306 C++
libcef.dll!mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper * message_wrapper, mojo::internal::MultiplexRouter::ClientCallBehavior client_call_behavior, base::SequencedTaskRunner * current_task_runner) Line 868 C++
libcef.dll!mojo::internal::MultiplexRouter::Accept(mojo::Message * message) Line 594 C++
libcef.dll!mojo::FilterChain::Accept(mojo::Message * message) Line 40 C++
libcef.dll!mojo::Connector::ReadSingleMessage(unsigned int * read_result) Line 474 C++
libcef.dll!mojo::Connector::ReadAllAvailableMessages() Line 504 C++
libcef.dll!mojo::Connector::OnHandleReadyInternal(unsigned int result) Line 389 C++
libcef.dll!mojo::SimpleWatcher::OnHandleReady(int watch_id, unsigned int result, const mojo::HandleSignalsState & state) Line 274 C++
libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 101 C++
libcef.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 436 C++
libcef.dll!base::MessageLoop::DoWork() Line 517 C++
libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 37 C++
libcef.dll!base::MessageLoop::Run(bool application_tasks_allowed) Line 388 C++
libcef.dll!base::RunLoop::Run() Line 105 C++
libcef.dll!base::Thread::Run(base::RunLoop * run_loop) Line 262 C++
libcef.dll!base::Thread::ThreadMain() Line 360 C++
libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 103 C++
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown

Any suggestions on how to fix this?

Thanks
SM
smisro
Newbie
 
Posts: 3
Joined: Wed Oct 31, 2018 2:39 pm

Re: CefClient.exe crash in libcef.dll ~LogMessage()

Postby magreenblatt » Wed Oct 31, 2018 4:30 pm

What OS are you running on? Does it crash if you make a clean build without CEF_RUNTIME_LIBRARY_FLAG?
magreenblatt
Site Admin
 
Posts: 12402
Joined: Fri May 29, 2009 6:57 pm

Re: CefClient.exe crash in libcef.dll ~LogMessage()

Postby smisro » Wed Oct 31, 2018 8:57 pm

I'm on Win 10 - 1709. I just tested without the "CEF_RUNTIME_LIBRARY_FLAG" (so the build config is now /MTd by default) and see the same issue.

Btw, I found someone else reporting a similar callstack here : viewtopic.php?f=6&t=13977
The suggested solution doesn't help here. Ignoring the exception and continuing doesn't continue execution. It crashes at this point.
smisro
Newbie
 
Posts: 3
Joined: Wed Oct 31, 2018 2:39 pm

Re: CefClient.exe crash in libcef.dll ~LogMessage()

Postby magreenblatt » Wed Oct 31, 2018 9:25 pm

That link seems relevant. By “ignore” it means use a Release build of libcef because the failure is a Debug check.
magreenblatt
Site Admin
 
Posts: 12402
Joined: Fri May 29, 2009 6:57 pm


Return to CEF Discussion

Who is online

Users browsing this forum: No registered users and 17 guests

cron