Bug 389793 - ASSERT: "sourceModel()->rowCount()" in file /home/jkt/work/prog/trojita/src/Imap/Model/ThreadingMsgListModel.cpp, line 647
Summary: ASSERT: "sourceModel()->rowCount()" in file /home/jkt/work/prog/trojita/src/I...
Status: REPORTED
Alias: None
Product: trojita
Classification: Applications
Component: Core (show other bugs)
Version: git
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Trojita default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-02 10:37 UTC by Jan Kundrát
Modified: 2022-11-14 00:21 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Kundrát 2018-02-02 10:37:04 UTC
There were some network reconnects. A search was active in a random mailbox. The msg list went blank, and upon clearing the search condition manually, Trojita crashed:

Couldn't find out which mailbox is "cesnet.gn3.gn4-jra2-t1" when parsing a STATUS reply
Couldn't find out which mailbox is "cesnet.project01.CzechLight" when parsing a STATUS reply
"Current threading invalidated by changed search"
ASSERT: "sourceModel()->rowCount()" in file /home/jkt/work/prog/trojita/src/Imap/Model/ThreadingMsgListModel.cpp, line 647
Aborted (core dumped)

(gdb) bt
#0  0x00007f680fbd221b in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007f680fbd38b1 in __GI_abort () at abort.c:89
#2  0x00007f681092e99e in qt_message_fatal (context=..., message=<synthetic pointer>...) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/global/qlogging.cpp:1690
#3  QMessageLogger::fatal (this=this@entry=0x7ffe6ea89e20, msg=msg@entry=0x7f6810bf3038 "ASSERT: \"%s\" in file %s, line %d") at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/global/qlogging.cpp:796
#4  0x00007f6810928c45 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/global/qglobal.cpp:3077
#5  0x00000000005e94f4 in Imap::Mailbox::ThreadingMsgListModel::askForThreading(unsigned int) ()
#6  0x00000000005edad5 in Imap::Mailbox::ThreadingMsgListModel::setUserSearchingSortingPreference(QStringList const&, Imap::Mailbox::ThreadingMsgListModel::SortCriterium, Qt::SortOrder) ()
#7  0x00007f6810b5a505 in QtPrivate::QSlotObjectBase::call (a=0x7ffe6ea8a110, r=0x7ffe6ea8aa00, this=0x128ce40) at ../../include/QtCore/../../../qtcore-5.9.9999/src/corelib/kernel/qobject_impl.h:101
#8  QMetaObject::activate (sender=0x110f900, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=0x7ffe6ea8a110) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qobject.cpp:3749
#9  0x00000000004899f2 in Gui::MessageListWidget::requestingSearch(QStringList const&) ()
#10 0x00000000004ba1a4 in Gui::MessageListWidget::slotApplySearch() ()
#11 0x00007f6810b5a505 in QtPrivate::QSlotObjectBase::call (a=0x7ffe6ea8a280, r=0x110f900, this=0x122d700) at ../../include/QtCore/../../../qtcore-5.9.9999/src/corelib/kernel/qobject_impl.h:101
#12 QMetaObject::activate (sender=sender@entry=0x122d650, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe6ea8a280)
    at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qobject.cpp:3749
#13 0x00007f6810b5aaa5 in QMetaObject::activate (sender=sender@entry=0x122d650, m=m@entry=0x7f6810d8a100 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe6ea8a280)
    at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qobject.cpp:3628
#14 0x00007f6810b68e8f in QTimer::timeout (this=this@entry=0x122d650, _t1=...) at .moc/moc_qtimer.cpp:201
#15 0x00007f6810b69434 in QTimer::timerEvent (this=0x122d650, e=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qtimer.cpp:255
#16 0x00007f6810b5b49b in QObject::event (this=0x122d650, e=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qobject.cpp:1268
#17 0x00007f6811417d54 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x122d650, e=0x7ffe6ea8a5b0)
    at /var/tmp/portage/dev-qt/qtwidgets-5.9.9999/work/qtwidgets-5.9.9999/src/widgets/kernel/qapplication.cpp:3722
#18 0x00007f68114204a2 in QApplication::notify (this=0x7ffe6ea8a9f0, receiver=0x122d650, e=0x7ffe6ea8a5b0) at /var/tmp/portage/dev-qt/qtwidgets-5.9.9999/work/qtwidgets-5.9.9999/src/widgets/kernel/qapplication.cpp:3481
#19 0x00007f6810b2a078 in QCoreApplication::notifyInternal2 (receiver=0x122d650, event=event@entry=0x7ffe6ea8a5b0) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qcoreapplication.cpp:1018
#20 0x00007f6810b85cbd in QCoreApplication::sendEvent (event=0x7ffe6ea8a5b0, receiver=<optimized out>) at ../../include/QtCore/../../../qtcore-5.9.9999/src/corelib/kernel/qcoreapplication.h:233
#21 QTimerInfoList::activateTimers (this=0x1061cb0) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qtimerinfo_unix.cpp:643
#22 0x00007f6810b8683f in timerSourceDispatch (source=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:182
#23 0x00007f680b18080c in g_main_dispatch (context=0x7f67fc0016f0) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3154
#24 g_main_context_dispatch (context=context@entry=0x7f67fc0016f0) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3769
#25 0x00007f680b180b18 in g_main_context_iterate (context=context@entry=0x7f67fc0016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3840
#26 0x00007f680b180c21 in g_main_context_iteration (context=0x7f67fc0016f0, may_block=1) at /var/tmp/portage/dev-libs/glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3901
#27 0x00007f6810b86e9d in QEventDispatcherGlib::processEvents (this=0x107d1f0, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#28 0x00007f6810b281ba in QEventLoop::exec (this=this@entry=0x7ffe6ea8a840, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qeventloop.cpp:212
#29 0x00007f6810b31d48 in QCoreApplication::exec () at /var/tmp/portage/dev-qt/qtcore-5.9.9999/work/qtcore-5.9.9999/src/corelib/kernel/qcoreapplication.cpp:1291
#30 0x0000000000454e08 in main ()
Comment 1 justina 2022-11-14 00:21:24 UTC
Is there a memory leak detector? Valgrind? Static code analysis? This is a serious bug, and it is going to need some significant refactoring.