Fatal error when exiting my Windows app

282 views
Skip to first unread message

JD Arnold

unread,
Sep 25, 2019, 11:10:06 AM9/25/19
to discuss-webrtc
I am getting the following output when exiting my Windows app:

#
# Fatal error in: ../../rtc_base/task_queue_win.cc, line 225
# last system error: 1444
# Check failed: 1816L == ::GetLastError() (1816 vs. 1444)
# 11:20:37: The program has unexpectedly finished.

While on many machines, this doesn't seem to matter, on Windows 7 boxes it brings up a crash dialog, I'm pretty sure. If I attached to my
process using the Visual Studio debugger, it catches an abort in common exit stuff:

>    igaudio.dll!abort() Line 77    C++
     
[External Code]    
     igaudio
.dll!_execute_onexit_table::__l2::<lambda>() Line 206    C++
     igaudio
.dll!__crt_seh_guarded_call<int>::operator()<<lambda_69a2805e680e0e292e8ba93315fe43a8>,int <lambda>(void) &,<lambda_03fcd07e894ec930e3f35da366ca99d6> >(__acrt_lock_and_call::__l2::<lambda_69a2805e680e0e292e8ba93315fe43a8> && setup, _execute_onexit_table::__l2::int <lambda>(void) & action, __acrt_lock_and_call::__l2::<lambda_03fcd07e894ec930e3f35da366ca99d6> && cleanup) Line 204    C++
     
[Inline Frame] igaudio.dll!__acrt_lock_and_call(const __acrt_lock_id) Line 969    C++
     igaudio
.dll!_execute_onexit_table(_onexit_table_t * table) Line 231    C++
     igaudio
.dll!common_exit::__l2::<lambda>() Line 230    C++
     igaudio
.dll!__crt_seh_guarded_call<void>::operator()<<lambda_03b1d95aef87969028cfba75ccab2455>,void <lambda>(void) &,<lambda_22bdf7517842c4b3e53723af5aa32b9e> >(__acrt_lock_and_call::__l2::<lambda_03b1d95aef87969028cfba75ccab2455> && setup, common_exit::__l2::void <lambda>(void) & action, __acrt_lock_and_call::__l2::<lambda_22bdf7517842c4b3e53723af5aa32b9e> && cleanup) Line 225    C++
     
[Inline Frame] igaudio.dll!__acrt_lock_and_call(const __acrt_lock_id) Line 969    C++
     igaudio
.dll!common_exit(const int return_code, const _crt_exit_cleanup_mode cleanup_mode, const _crt_exit_return_mode return_mode) Line 278    C++
     igaudio
.dll!_cexit() Line 313    C++
     
[External Code]    

Investigating this leads me to believe it has something to do with a global, and perhaps deleting some webrtc object on a different thread, maybe. I'm going to continue to investigate, but if anyone has any ideas, I'd love to hear about them!

Jonathan

JD Arnold

unread,
Sep 25, 2019, 5:20:04 PM9/25/19
to discuss-webrtc
I think I fixed it by making sure both the task queue and the audio device module were created and destroyed by the same thread. Previous, the ADM was a static variable and the task queue was not.
Reply all
Reply to author
Forward
0 new messages