crash on macOS when finishing a call
App crashes every time when finishing a call when destroying MediaRecorder
Thread 31 Crashed:
0 Jami 0x102f267bc std::__1::__tree_node_base<void*>* std::__1::__tree_min<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 12 (__tree:149)
1 Jami 0x102f26748 std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>* std::__1::__tree_next_iter<std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>*, std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 40 (__tree:185)
2 Jami 0x102f260bc std::__1::__tree_const_iterator<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, std::__1::__tree_node<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, void*>*, long>::operator++() + 28 (__tree:925)
3 Jami 0x102f25f38 jami::MediaRecorder::StreamObserver::~StreamObserver() + 168 (media_recorder.cpp:74)
4 Jami 0x102f25455 jami::MediaRecorder::StreamObserver::~StreamObserver() + 21 (media_recorder.cpp:73)
5 Jami 0x102f25479 jami::MediaRecorder::StreamObserver::~StreamObserver() + 25 (media_recorder.cpp:73)
6 Jami 0x102f28f5c std::__1::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const + 44 (unique_ptr.h:57)
7 Jami 0x102f28f1c std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::reset(jami::MediaRecorder::StreamObserver*) + 92 (unique_ptr.h:318)
8 Jami 0x102f28eb9 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 25 (unique_ptr.h:272)
9 Jami 0x102f17135 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 21 (unique_ptr.h:272)
10 Jami 0x102f1f90d std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 29 (pair.h:42)
11 Jami 0x102f1f8e5 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 21 (pair.h:42)
12 Jami 0x102f1f839 void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> > >::destroy<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void, void>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >*) + 25 (allocator_traits.h:319)
13 Jami 0x102f1f7ac std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*>*) + 124 (__tree:1803)
14 Jami 0x102f1f725 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 37 (__tree:1791)
15 Jami 0x102f1f6f5 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 21 (__tree:1788)
16 Jami 0x102f1f6d5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1117)
17 Jami 0x102f150a5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1115)
18 Jami 0x102f14c8c jami::MediaRecorder::~MediaRecorder() + 236 (media_recorder.cpp:150)
19 Jami 0x102f150e5 jami::MediaRecorder::~MediaRecorder() + 21 (media_recorder.cpp:147)
20 Jami 0x102f2f49d std::__1::__shared_ptr_emplace<jami::MediaRecorder, std::__1::allocator<jami::MediaRecorder> >::__on_zero_shared() + 29 (shared_ptr.h:315)
21 Jami 0x102f2ec31 std::__1::__shared_count::__release_shared() + 49 (shared_ptr.h:177)
22 Jami 0x102f2ebd9 std::__1::__shared_weak_count::__release_shared() + 25 (shared_ptr.h:219)
23 Jami 0x102f2ebac std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 44 (shared_ptr.h:959)
24 Jami 0x102f2cfa5 std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 21 (shared_ptr.h:957)
25 Jami 0x102f2cffb jami::Recordable::~Recordable() + 43 (recordable.cpp:38)
26 Jami 0x102574ee2 jami::Call::~Call() + 322 (call.cpp:144)
27 Jami 0x10306ca84 jami::SIPCall::~SIPCall() + 500 (sipcall.cpp:160)
28 Jami 0x10306d1c5 jami::SIPCall::~SIPCall() + 21 (sipcall.cpp:155)
Edited by Kateryna Kostiuk