WhisperTranscript: segfault in conference
Scenario
- Use WhisperTranscript in a conference
- Stop the conference
Expected
No crash
Current result
Crash
[1685632717.281|19381|manager.cpp :1538] Remove participant 1905095304778526
[1685632717.281|19381|conference.cpp :880 ] Remove call 1905095304778526 in conference 509473430792282
[1685632717.282|19381|sipcall.cpp :3099] [call:1905095304778526] Leaving conference
[1685632717.282|19381|ringbufferpool.cpp :174 ] Bind call 1905095304778526 to call audiolayer_id
[1685632717.282|19381|ringbufferpool.cpp :155 ] Bind rbuf '1905095304778526' to callid 'audiolayer_id'
[1685632717.282|19381|ringbufferpool.cpp :155 ] Bind rbuf 'audiolayer_id' to callid '1905095304778526'
[1685632717.283|19381|video_rtp_session.cpp :568 ] [0x55555877f350] exitConference (conf: 509473430792282)
[1685632717.283|19381|video_mixer.cpp :203 ] Detaching video of call 1905095304778526
[1685632717.283|19381|video_mixer.cpp :237 ] Remove source [0x55555cec2df0]
[1685632717.284|19381|video_mixer.cpp :239 ] Total sources: 2
[1685632717.284|19381|video_receive_thread.cpp:285 ] [0x7fff9d06ae80] Starting sink
[1685632717.284|19381|sinkclient.cpp :472 ] [Sink:0x7fff28b4c1b0] Started - size=1280x720, mixer=No
Cannot remove renderer. "1905095304778526" not found
Create new QVideoFrame QSize(1280, 720)
Transcript: NEW SUBJECT: [1905095304778526,Preview]
preferredStreamDirection 1
Transcript: NEW SUBJECT: [1905095304778526,Preview]
preferredStreamDirection 1
TranscriptAudio: ::Attached ! 0x555556ca7420 for 0x7fff9cbb3b88
TranscriptAudio: start()
[New Thread 0x7ffe1b716640 (LWP 544629)]
terminate called without an active exception
[1685632717.303|19401|sinkclient.cpp :493 ] [Sink:0x7fff28eec170] Change crop to [640x360 at (0, 0)]
[1685632717.303|19401|sinkclient.cpp :493 ] [Sink:0x7fff9ce92dd0] Change crop to [640x360 at (640, 0)]
[1685632717.303|19401|sinkclient.cpp :480 ] [Sink:0x7fff28ee0620] Stopped - size=0x0, mixer=No
[1685632717.304|19401|sinkclient.cpp :493 ] [Sink:0x7fff28ee0620] Change crop to [0x0 at (0, 0)]
Thread 1 "jami" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737199522944) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737199522944)
at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140737199522944) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140737199522944, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff2442476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff24287f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff28a2bbe in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff28ae24c in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff28ae2b7 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007fffa4251a3c in std::thread::operator=(std::thread&&)
(this=<optimized out>, __t=<optimized out>)
at /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:153
#9 jami::TranscriptAudioSubscriber::start() (this=0x555556ca7420)
at TranscriptAudioSubscriber.cpp:121
#10 0x00007fffa4251df4 in jami::TranscriptAudioSubscriber::attached(jami::Observable<AVFrame*>*)
(this=0x555556ca7420, observable=0x7fff9cbb3b88) at TranscriptAudioSubscriber.cpp:158
#11 0x00007fffa424f6c6 in jami::Observable<AVFrame*>::attach(jami::Observer<AVFrame*>*)
(this=0x7fff9cbb3b88, o=0x555556ca7420) at ./../../daemon/src/observer.h:79
#12 0x00007fffa424e693 in jami::TranscriptMediaHandler::notifyAVFrameSubject(StreamData const&, std::shared_ptr<jami::Observable<AVFrame*> >)
(this=<optimized out>, data=..., subject=std::shared_ptr<jami::Observable<AVFrame*>> (use count -27136, weak count 32766) = {...}) at TranscriptMediaHandler.cpp:72
#13 0x00007ffff36a0fb8 in jami::CallServicesManager::notifyAVSubject(std::unique_ptr<jami::CallMediaHandler, std::default_delete<jami::CallMediaHandler> >&, StreamData const&, std::weak_ptr<jami::Observable<AVFrame*> >&)
(this=0x555556e4d340, callMediaHandlerPtr=std::unique_ptr<jami::CallMediaHandler> = {...}, data=..., subject=std::weak_ptr<jami::Observable<AVFrame*>> (use count 5, weak count 4) = {...})
at plugin/callservicesmanager.cpp:252
#14 0x00007ffff36a11dd in jami::CallServicesManager::toggleCallMediaHandler(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
(this=0x555556e4d340, mediaHandlerId=93825019952416, callId="1905095304778526", toggle=true)
at plugin/callservicesmanager.cpp:272
#15 0x00007ffff369fd03 in jami::CallServicesManager::createAVSubject(StreamData const&, std::weak_ptr<jami::Observable<AVFrame*> >)
(this=0x555556e4d340, data=..., subject=std::weak_ptr<jami::Observable<AVFrame*>> (use count 5, weak count 4) = {...}) at plugin/callservicesmanager.cpp:77
#16 0x00007ffff36db7e6 in jami::SIPCall::createCallAVStream(StreamData const&, jami::Observable<std::shared_ptr<libjami::MediaFrame> >&, std::shared_ptr<jami::PublishMapSubject<std::shared_ptr<libjami::MediaFrame>, AVFrame*> > const&)
(this=0x55555bf70200, StreamData=..., streamSource=..., mediaStreamSubject=std::shared_ptr<jami::PublishMapSubject<std::shared_ptr<libjami::MediaFrame>, AVFrame*>> (use count 5, weak count 4) = {...}) at ./sip/sipcall.cpp:389
#17 0x00007ffff36db395 in jami::SIPCall::createCallAVStreams() (this=0x55555bf70200)
at ./sip/sipcall.cpp:364
#18 0x00007ffff36eb25d in jami::SIPCall::exitConference() (this=0x55555bf70200)
at ./sip/sipcall.cpp:3112
#19 0x00007ffff309da60 in jami::Conference::removeParticipant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
(this=0x55555cec1fb0, participant_id="1905095304778526") at conference.cpp:898
#20 0x00007ffff30fca71 in jami::Manager::removeParticipant(jami::Call&)
(this=0x7ffff4a70a20 <jami::Manager::instance()::instance>, call=...) at manager.cpp:1546
#21 0x00007ffff30f9cc6 in jami::Manager::hangupCall(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::--Type <RET> for more, q to quit, c to continue without paging--
allocator<char> > const&)
(this=0x7ffff4a70a20 <jami::Manager::instance()::instance>, accountId="3b28f0a09d85512e", callId="1905095304778526") at manager.cpp:1106
#22 0x00007ffff30fb79b in jami::Manager::ManagerPimpl::hangupConference(jami::Conference&)
(this=0x555556e4ce70, conference=...) at manager.cpp:1371
#23 0x00007ffff30f9ed1 in jami::Manager::hangupConference(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
(this=0x7ffff4a70a20 <jami::Manager::instance()::instance>, accountId="3b28f0a09d85512e", confId="509473430792282") at manager.cpp:1128
#24 0x00007ffff31c711e in libjami::hangUpConference(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (accountId="3b28f0a09d85512e", confId="509473430792282")
at client/callmanager.cpp:131
#25 0x0000555555819760 in CallManagerInterface::hangUpConference(QString const&, QString const&)
(this=<optimized out>, confId=<optimized out>, accountId=...)
at /home/sblin/Projects/jami-project/client-qt/src/libclient/dbus/../qtwrapper/callmanager_wrap.h:362
#26 lrc::api::CallModel::hangUp(QString const&) const (this=this@entry=0x5555575eae80, callId=...)
at /home/sblin/Projects/jami-project/client-qt/src/libclient/callmodel.cpp:696
#27 0x000055555569ea2c in CallAdapter::hangUpThisCall() (this=0x555557b965c0)
at /home/sblin/Projects/jami-project/client-qt/src/app/calladapter.cpp:631
#28 0x00005555556273cb in CallAdapter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_o=_o@entry=0x555557b965c0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=25, _a=_a@entry=0x7fffffffa5f0)
at /home/sblin/Projects/jami-project/client-qt/build/jami_autogen/ISMKEKEPX5/moc_calladapter.cpp:594
#29 0x000055555563573f in CallAdapter::qt_metacall(QMetaObject::Call, int, void**)
(this=0x555557b965c0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x7fffffffa5f0)
at /home/sblin/Projects/jami-project/client-qt/build/jami_autogen/ISMKEKEPX5/moc_calladapter.cpp:705
#30 0x00007ffff6d0c02d in () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#31 0x00007ffff6df1435 in () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#32 0x00007ffff6df57e8 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#33 0x00007ffff6de4c98 in () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#34 0x00007ffff6de7113 in () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#35 0x00007ffff6de215a in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#36 0x00007ffff6de0fd2 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#37 0x00007ffff6de121e in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) ()
at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#38 0x00007ffff6de1568 in QQmlBoundSignalExpression::evaluate(void**) ()
at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#39 0x00007ffff6de199b in () at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#40 0x00007ffff6d16015 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) ()
at /usr/lib/libqt-jami/lib/libQt6Qml.so.6
#41 0x00007ffff52fcb4d in () at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#42 0x00007fff984d2696 in QQuickAction::triggered(QObject*) ()
at /usr/lib/libqt-jami/qml/QtQuick/Controls/../../../lib/libQt6QuickTemplates2.so.6
#43 0x00007fff9853e8f8 in ()
--Type <RET> for more, q to quit, c to continue without paging--
at /usr/lib/libqt-jami/qml/QtQuick/Controls/../../../lib/libQt6QuickTemplates2.so.6
#44 0x00007fff9853ebd0 in QQuickAbstractButtonPrivate::trigger(bool) ()
at /usr/lib/libqt-jami/qml/QtQuick/Controls/../../../lib/libQt6QuickTemplates2.so.6
#45 0x00007fff9854fd59 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&, unsigned long)
() at /usr/lib/libqt-jami/qml/QtQuick/Controls/../../../lib/libQt6QuickTemplates2.so.6
#46 0x00007fff984d537d in QQuickControl::mouseReleaseEvent(QMouseEvent*) ()
at /usr/lib/libqt-jami/qml/QtQuick/Controls/../../../lib/libQt6QuickTemplates2.so.6
#47 0x00007ffff740a1e1 in QQuickItem::event(QEvent*) () at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#48 0x00007ffff64bf316 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Widgets.so.6
#49 0x00007ffff52a911a in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#50 0x00007ffff741e5fb in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) () at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#51 0x00007ffff741ecd6 in QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#52 0x00007ffff74206f3 in QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#53 0x00007ffff742154b in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#54 0x00007ffff7428a56 in QQuickDeliveryAgent::event(QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#55 0x00007ffff73fee69 in QQuickWindow::event(QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Quick.so.6
#56 0x00007ffff64bf316 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Widgets.so.6
#57 0x00007ffff52a911a in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#58 0x00007ffff5996a9b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libqt-jami/lib/libQt6Gui.so.6
#59 0x00007ffff5bad04c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libqt-jami/lib/libQt6Gui.so.6
#60 0x00007fffeec54f4e in () at /usr/lib/libqt-jami/plugins/platforms/../../lib/libQt6XcbQpa.so.6
#61 0x00007ffff79dfd3b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#62 0x00007ffff7a346c8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#63 0x00007ffff79dd3e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007ffff53362de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#65 0x00007ffff52a89fb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#66 0x00007ffff539ddc6 in QCoreApplication::exec() () at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#67 0x0000555555650547 in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
at /home/sblin/Projects/jami-project/client-qt/src/app/main.cpp:174