sporadic crash in getConversationForUID
Most probable scenario
- Flood search bar with correct/incorrect researches
7)]
Thread 1 "jami" received signal SIGSEGV, Segmentation fault.
QArrayDataPointer<char16_t>::ref (this=0x7fffffffc420) at /usr/lib64/qt-jami/include/QtCore/qarraydatapointer.h:325
325 void ref() noexcept { if (d) d->ref(); }
(gdb) bt
#0 QArrayDataPointer<char16_t>::ref() (this=0x7fffffffc420) at /usr/lib64/qt-jami/include/QtCore/qarraydatapointer.h:325
#1 QArrayDataPointer<char16_t>::QArrayDataPointer(QArrayDataPointer<char16_t> const&) (other=..., this=0x7fffffffc420) at /usr/lib64/qt-jami/include/QtCore/qarraydatapointer.h:71
#2 QString::QString(QString const&) (other=..., this=0x7fffffffc420) at /usr/lib64/qt-jami/include/QtCore/qstring.h:1239
#3 lrc::ConversationModelPimpl::getConversationForUid(QString const&, bool) const (this=0x219c380, uid=..., searchResultIncluded=true) at /home/amarok/Projects/jami/client-qt/src/libclient/conversationmodel.cpp:3371
#4 0x0000000000580a79 in lrc::api::ConversationModel::getConversationForUid(QString const&) const (this=<optimized out>, uid=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/libclient/conversationmodel.cpp:663
#5 0x000000000058b197 in lrc::api::ConversationModel::peersForConversation(QString const&) (this=0x20c9e00, conversationId=...) at /home/amarok/Projects/jami/client-qt/src/libclient/conversationmodel.cpp:1787
#6 0x00000000004edb7f in ConversationListModelBase::dataForItem(lrc::api::conversation::Info const&, int) const (this=this@entry=0x38c2be0, item=..., role=role@entry=282)
at /home/amarok/Projects/jami/client-qt/src/app/conversationlistmodelbase.cpp:138
#7 0x000000000048e391 in SmartListModel::data(QModelIndex const&, int) const (this=0x38c2be0, index=..., role=282) at /home/amarok/Projects/jami/client-qt/src/app/smartlistmodel.cpp:137
#8 0x00000000004c598d in QModelIndex::data(int) const (this=<optimized out>, arole=arole@entry=282) at /usr/lib64/qt-jami/include/QtCore/qabstractitemmodel.h:529
#9 0x00000000004c3eca in operator()(QModelIndex const&, QRegularExpression const&) const (__closure=0x38c32e0, index=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/contactadapter.cpp:75
#10 0x00000000004c3f37 in std::__invoke_impl<bool, ContactAdapter::getContactSelectableModel(int)::<lambda(const QModelIndex&, const QRegularExpression&)>&, const QModelIndex&, const QRegularExpression&> (__f=<optimized out>)
at /usr/include/c++/12/bits/invoke.h:60
#11 std::__invoke_r<bool, ContactAdapter::getContactSelectableModel(int)::<lambda(const QModelIndex&, const QRegularExpression&)>&, const QModelIndex&, const QRegularExpression&> (__fn=<optimized out>)
at /usr/include/c++/12/bits/invoke.h:114
#12 std::_Function_handler<bool(const QModelIndex&, const QRegularExpression&), ContactAdapter::getContactSelectableModel(int)::<lambda(const QModelIndex&, const QRegularExpression&)> >::_M_invoke(const std::_Any_data &, const QModelIndex &, const QRegularExpression &) (__functor=<optimized out>, __args#0=<optimized out>, __args#1=<optimized out>) at /usr/include/c++/12/bits/std_function.h:290
#13 0x000000000047685a in std::function<bool (QModelIndex const&, QRegularExpression const&)>::operator()(QModelIndex const&, QRegularExpression const&) const (this=this@entry=0x213abe0, __args#0=..., __args#1=...)
at /usr/include/c++/12/bits/std_function.h:591
#14 0x00000000004768b5 in SelectableProxyModel::filterAcceptsRow(int, QModelIndex const&) const (this=0x213abd0, sourceRow=<optimized out>, sourceParent=...)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/../../../src/app/contactadapter.h:64
#15 0x00007fffeabb9272 in QSortFilterProxyModelPrivate::filterAcceptsRowInternal(int, QModelIndex const&) const () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#16 0x00007fffeabbfc17 in QSortFilterProxyModelPrivate::create_mapping(QModelIndex const&) const () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#17 0x00007fffeabc3b53 in QSortFilterProxyModel::rowCount(QModelIndex const&) const () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#18 0x00007ffff75aad94 in non-virtual thunk to VDMAbstractItemModelDataType::rowCount(QQmlAdaptorModel const&) const () at /usr/lib64/qt-jami/lib/libQt6QmlModels.so.6
#19 0x00007ffff75a8e05 in QQmlAdaptorModel::rowCount() const () at /usr/lib64/qt-jami/lib/libQt6QmlModels.so.6
#20 0x00007ffff75c641c in QQmlDelegateModel::_q_modelReset() () at /usr/lib64/qt-jami/lib/libQt6QmlModels.so.6
#21 0x00007ffff75c7354 in QQmlDelegateModel::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib64/qt-jami/lib/libQt6QmlModels.so.6
#22 0x00007fffea9c15af in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#23 0x00007fffea9306ba in QAbstractItemModel::layoutChanged(QList<QPersistentModelIndex> const&, QAbstractItemModel::LayoutChangeHint) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#24 0x00007fffeabc29ae in QSortFilterProxyModel::invalidate() () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#25 0x00000000004c36fc in operator()<QString> (uri=<optimized out>, __closure=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/contactadapter.cpp:264
#26 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QString&>, void, ContactAdapter::connectSignals()::<lambda(const auto:36&)> >::call (arg=<optimized out>, f=<optimized out>)
at /usr/lib64/qt-jami/include/QtCore/qobjectdefs_impl.h:146
#27 QtPrivate::Functor<ContactAdapter::connectSignals()::<lambda(const auto:36&)>, 1>::call<QtPrivate::List<QString const&>, void> (arg=<optimized out>, f=<optimized out>) at /usr/lib64/qt-jami/include/QtCore/qobjectdefs_impl.h:256
#28 QtPrivate::QFunctorSlotObject<ContactAdapter::connectSignals()::<lambda(const auto:36&)>, 1, QtPrivate::List<const QString&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
(which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/lib64/qt-jami/include/QtCore/qobjectdefs_impl.h:420
#29 0x00007fffea9c1273 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#30 0x0000000000546e52 in lrc::api::ContactModel::modelUpdated(QString const&) const (this=<optimized out>, _t1=<optimized out>)
at /home/amarok/Projects/jami/client-qt/build/src/libclient/jamiclient_autogen/include/api/moc_contactmodel.cpp:241
#31 0x00007fffea9c1273 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#32 0x000000000052b900 in lrc::CallbacksHandler::registeredNameFound(QString const&, int, QString const&, QString const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>, _t4=<optimized out>)
at /home/amarok/Projects/jami/client-qt/build/src/libclient/jamiclient_autogen/EWIEGA46WW/moc_callbackshandler.cpp:1349
#33 0x00007fffea9b3460 in QObject::event(QEvent*) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#34 0x00007fffeb9804b5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/qt-jami/lib/libQt6Widgets.so.6
#35 0x00007fffea962d08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#36 0x00007fffea9660d4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#37 0x00007fffeabe84e7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#38 0x00007ffff79bffaf in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#39 0x00007ffff7a152c8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#40 0x00007ffff79bd940 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#41 0x00007fffeabe7db0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#42 0x00007fffea96fa7a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#43 0x00007fffea96b331 in QCoreApplication::exec() () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#44 0x00000000004879dd in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/main.cpp:184
(gdb)
Edited by Sébastien Blin