Crash in AudioRtpSession (audioInput_ can be nullptr)
Crash:
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
80 ./nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0 ___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
#1 0x00005555556ad59b in __gthread_mutex_lock (__mutex=0x8) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#2 0x00005555556cbd04 in std::mutex::lock (this=0x8) at /usr/include/c++/11/bits/std_mutex.h:100
#3 0x00005555556d089c in std::lock_guard<std::mutex>::lock_guard (this=0x7fff3a7f8c40, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#4 0x0000555555711689 in jami::Observable<std::shared_ptr<libjami::MediaFrame> >::attach (this=0x0, o=0x7fff10090010) at ./observer.h:77
#5 0x0000555555c7489b in jami::AudioRtpSession::attachLocalRecorder (this=0x7fffb119a920, ms=...) at ./media/audio/audio_rtp_session.cpp:385
#6 0x0000555555c748f0 in operator() (__closure=0x7fff341062d0, ms=...) at ./media/audio/audio_rtp_session.cpp:399
#7 0x0000555555c76a09 in std::__invoke_impl<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c764a5 in std::__invoke_r<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c75b3f in std::_Function_handler<void(const jami::MediaStream&), jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x7fff341062d0, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x00005555559e8e47 in jami::AudioInput::readFromDevice (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:141
#12 0x00005555559e88c2 in jami::AudioInput::process (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:74
#13 0x00005555559e7e83 in operator() (__closure=0x7fff3a7f8fd0) at ./media/audio/audio_input.cpp:52
#14 0x00005555559ecd06 in std::__invoke_impl<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#15 0x00005555559ec49a in std::__invoke_r<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#16 0x00005555559ebcba in std::_Function_handler<void(), jami::AudioInput::AudioInput(const string&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#17 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff3a7f8fd0) at /usr/include/c++/11/bits/std_function.h:590
#18 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x7fff34106228, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#19 0x0000555555b8832a in std::__invoke_impl<void, void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(std::__invoke_memfun_deref, void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__f=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc81ea600: 0x7fff34106228) at /usr/include/c++/11/bits/invoke.h:74
#20 0x0000555555b88120 in std::__invoke<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__fn=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#21 0x0000555555b87f7f in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:259
#22 0x0000555555b87ec4 in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::operator()() (this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:266
#23 0x0000555555b87ea4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() (this=0x7fffc81ea590)
at /usr/include/c++/11/bits/std_thread.h:211
#24 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#26 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81