Bug 399863 - segfault when repeatedly sorting
Summary: segfault when repeatedly sorting
Status: CONFIRMED
Alias: None
Product: trojita
Classification: Applications
Component: Core (show other bugs)
Version: git
Platform: Compiled Sources Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Trojita default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-16 03:17 UTC by Walter Lapchynski
Modified: 2019-04-13 22:07 UTC (History)
0 users

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 Walter Lapchynski 2018-10-16 03:17:28 UTC
STEPS TO REPRODUCE
 1. Click on a folder
 2. Click a column header to sort by that column
 3. Repeat #2 several times (can be a different header)

EXPECTED RESULTS
Every click on the column header should result in sorting, with multiple clicks on the same header alternating between ascending and descending.

ACTUAL RESULTS
Assuming there are more than a couple messages and the column header is clicked more than a couple times, the application quits.

AFFECTED VERSIONS
trojita 0.7-0ubuntu2 (also upstream git master 76151f1a9226b27da9039d8701dc91a9f5e7c056)

NOTES
Using the menu to change the sorting does not produce the same result, but it may be that it's impossible to change the sorting as quickly.

DOWNSTREAM BUG
https://bugs.launchpad.net/ubuntu/+source/trojita/+bug/1797665


EXPECTED RESULT


SOFTWARE VERSIONS
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Jan Kundrát 2018-11-12 12:48:21 UTC
I was able to get a backtrace after a long series of random clicking. This is with a random and pretty old snapshot of Qt.

Thread 1 "trojita" received signal SIGSEGV, Segmentation fault.
0x00007ffff2625fa9 in QSortFilterProxyModelPrivate::proxy_to_source(QModelIndex const&) const () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/itemmodels/qsortfilterproxymodel.cpp:430
430     /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/itemmodels/qsortfilterproxymodel.cpp: No such file or directory.
(gdb) bt
#0  0x00007ffff2625fa9 in QSortFilterProxyModelPrivate::proxy_to_source(QModelIndex const&) const () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/itemmodels/qsortfilterproxymodel.cpp:430
#1  0x00007ffff2625fe1 in QSortFilterProxyModel::mapToSource (this=<optimized out>, proxyIndex=...) at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/itemmodels/qsortfilterproxymodel.cpp:2849
#2  0x00007ffff2624ee5 in QSortFilterProxyModel::flags (this=<optimized out>, index=...) at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/itemmodels/qsortfilterproxymodel.cpp:2329
#3  0x00007ffff35a4211 in QModelIndex::flags (this=0x7fffffffbcc0) at ../../include/QtCore/../../../qtwidgets-5.11.9999/src/corelib/itemmodels/qabstractitemmodel.h:458
#4  QTreeViewPrivate::isIndexExpanded (idx=..., this=0x555555c01620) at ../../include/QtWidgets/5.11.0/QtWidgets/private/../../../../../../qtwidgets-5.11.9999/src/widgets/itemviews/qtreeview_p.h:214
#5  QTreeView::isExpanded (this=this@entry=0x555555bfbe70, index=...) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qtreeview.cpp:841
#6  0x00007ffff35af1da in QTreeView::verticalScrollbarValueChanged (this=0x555555bfbe70, value=33) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qtreeview.cpp:4020
#7  0x00007ffff353e42f in QAbstractItemView::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qabstractitemview.cpp:422
#8  0x00007ffff267106b in QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3771
#9  0x00007ffff2671677 in QMetaObject::activate (sender=sender@entry=0x555555c021d0, m=m@entry=0x7ffff39be960 <QAbstractSlider::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffbe50)
    at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3633
#10 0x00007ffff33de36e in QAbstractSlider::valueChanged (this=this@entry=0x555555c021d0, _t1=<optimized out>, _t1@entry=33) at .moc/moc_qabstractslider.cpp:304
#11 0x00007ffff33de9d4 in QAbstractSlider::setValue (this=0x555555c021d0, value=33) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/widgets/qabstractslider.cpp:546
#12 0x00007ffff26711af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffbff0, r=0x7fffffffd3c0, this=0x555555d6f7a0) at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
#13 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
#14 0x00007ffff2671677 in QMetaObject::activate (sender=sender@entry=0x555555da9910, m=m@entry=0x7ffff39b92e0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fffffffbff0)
    at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3633
#15 0x00007ffff32f0c12 in QAction::toggled (this=this@entry=0x555555da9910, _t1=<optimized out>, _t1@entry=false) at .moc/moc_qaction.cpp:389
#16 0x00007ffff32f300e in QAction::setChecked (this=0x555555da9910, b=b@entry=false) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qaction.cpp:983
#17 0x00007ffff32f43da in QActionGroupPrivate::_q_actionChanged (this=0x555555d9ec40) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qactiongroup.cpp:77
#18 0x00007ffff32f48c1 in QActionGroup::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qactiongroup.h:56
#19 0x00007ffff267106b in QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3771
#20 0x00007ffff2671677 in QMetaObject::activate (sender=sender@entry=0x555555d9d530, m=m@entry=0x7ffff39b92e0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0)
    at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3633
#21 0x00007ffff32f0b50 in QAction::changed (this=this@entry=0x555555d9d530) at .moc/moc_qaction.cpp:369
#22 0x00007ffff32f268d in QActionPrivate::sendDataChanged (this=this@entry=0x555555d9fab0) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qaction.cpp:127
#23 0x00007ffff32f2ff5 in QAction::setChecked (this=0x555555d9d530, b=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qaction.cpp:981
#24 0x00007ffff26711af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffc320, r=0x7fffffffd3c0, this=0x555555cdeaa0) at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
#25 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
#26 0x000055555579d50c in Imap::Mailbox::PrettyMsgListModel::sortingPreferenceChanged(int, Qt::SortOrder) ()
#27 0x00005555557491a0 in Imap::Mailbox::PrettyMsgListModel::sort(int, Qt::SortOrder) ()
#28 0x00007ffff267106b in QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3771
#29 0x00007ffff2671677 in QMetaObject::activate (sender=sender@entry=0x555555c27530, m=m@entry=0x7ffff39d7d20 <QHeaderView::staticMetaObject>, local_signal_index=local_signal_index@entry=9, argv=argv@entry=0x7fffffffc490)
    at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3633
#30 0x00007ffff3549a4f in QHeaderView::sortIndicatorChanged (this=this@entry=0x555555c27530, _t1=<optimized out>, _t1@entry=2, _t2=<optimized out>, _t2@entry=Qt::AscendingOrder) at .moc/moc_qheaderview.cpp:505
#31 0x00007ffff3552f45 in QHeaderView::setSortIndicator (this=this@entry=0x555555c27530, logicalIndex=logicalIndex@entry=2, order=order@entry=Qt::AscendingOrder)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qheaderview.cpp:1489
#32 0x00007ffff3553075 in QHeaderViewPrivate::flipSortIndicator (this=this@entry=0x555555c27570, section=section@entry=2)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qheaderview.cpp:3714
#33 0x00007ffff35532ea in QHeaderView::mouseReleaseEvent (this=0x555555c27530, e=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qheaderview.cpp:2776
#34 0x00007ffff3334c48 in QWidget::event (this=this@entry=0x555555c27530, event=event@entry=0x7fffffffcb60) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qwidget.cpp:8916
#35 0x00007ffff33d6b3e in QFrame::event (this=0x555555c27530, e=0x7fffffffcb60) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/widgets/qframe.cpp:550
#36 0x00007ffff3545b9b in QAbstractItemView::viewportEvent (this=this@entry=0x555555c27530, event=event@entry=0x7fffffffcb60)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qabstractitemview.cpp:1748
#37 0x00007ffff3554a2b in QHeaderView::viewportEvent (this=0x555555c27530, e=0x7fffffffcb60) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/itemviews/qheaderview.cpp:2898
#38 0x00007ffff264975e in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1174
#39 0x00007ffff32f6f41 in QApplicationPrivate::notify_helper (this=this@entry=0x555555b1bf50, receiver=receiver@entry=0x555555c272b0, e=e@entry=0x7fffffffcb60)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3721
#40 0x00007ffff32fe6e7 in QApplication::notify(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3201
#41 0x00007ffff2649911 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1048
#42 0x00007ffff32fda20 in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../../qtwidgets-5.11.9999/src/corelib/kernel/qcoreapplication.h:234
#43 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x555555c272b0, event=event@entry=0x7fffffffcb60, alienWidget=alienWidget@entry=0x555555c272b0, nativeWidget=0x7fffffffd3c0, 
    buttonDown=buttonDown@entry=0x7ffff39e8390 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:2693
#44 0x00007ffff334f2f8 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qwidgetwindow.cpp:659
#45 0x00007ffff3351c50 in QWidgetWindow::event (this=0x555555d24650, event=0x7fffffffcf40) at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qwidgetwindow.cpp:281
#46 0x00007ffff32f6f51 in QApplicationPrivate::notify_helper (this=this@entry=0x555555b1bf50, receiver=receiver@entry=0x555555d24650, e=e@entry=0x7fffffffcf40)
    at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3725
#47 0x00007ffff32fe4a0 in QApplication::notify(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3484
#48 0x00007ffff2649911 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1048
#49 0x00007ffff2bd2a44 in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffcf40, receiver=0x555555d24650) at ../../include/QtCore/../../../qtgui-5.11.9999/src/corelib/kernel/qcoreapplication.h:237
#50 QGuiApplicationPrivate::processMouseEvent (e=0x55555609af70) at /var/tmp/portage/dev-qt/qtgui-5.11.9999/work/qtgui-5.11.9999/src/gui/kernel/qguiapplication.cpp:2070
#51 0x00007ffff2bd4a15 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x55555609af70) at /var/tmp/portage/dev-qt/qtgui-5.11.9999/work/qtgui-5.11.9999/src/gui/kernel/qguiapplication.cpp:1805
#52 0x00007ffff2baf19a in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /var/tmp/portage/dev-qt/qtgui-5.11.9999/work/qtgui-5.11.9999/src/gui/kernel/qwindowsysteminterface.cpp:1028
#53 0x00007fffe61a07ec in QPAEventDispatcherGlib::processEvents (this=0x555555b78e70, flags=...) at /var/tmp/portage/dev-qt/qtgui-5.11.9999/work/qtgui-5.11.9999/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70
#54 0x00007ffff2648903 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/global/qflags.h:71
#55 0x00007ffff265066f in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1336
#56 0x00005555555ef1f4 in main ()

Can you get this reproduced under something like an ASAN?
Comment 2 Walter Lapchynski 2019-03-13 21:03:59 UTC
One piece of information I failed to include: it seems to require at least 10 messages.
Comment 3 Walter Lapchynski 2019-03-14 00:33:48 UTC
After some further testing that involved increasing the memory allocation on the VMs I was using, I found that there seems to be some relationship between the amount of messages required to trigger it and the amount of memory. It's probably based more on size of messages (or mailbox/folder) rather than individual numbers of messages from what I can tell.

Anyways, similar backtrace with b94f4307.

Thread 1 "trojita" received signal SIGSEGV, Segmentation fault.
0x00007ffff3eeda82 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
(gdb) backs[Ktrace full
#0  0x00007ffff3eeda82 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x00007ffff3eee056 in QSortFilterProxyModel::flags(QModelIndex const&) const () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007ffff4b3fc71 in QTreeView::isExpanded(QModelIndex const&) const () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007ffff4b4ace5 in QTreeView::verticalScrollbarValueChanged(int) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ffff4ad9d5f in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff3f3f5c6 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff49778ae in QAbstractSlider::valueChanged(int) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff4977f14 in QAbstractSlider::setValue(int) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff3f3f703 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff4887f62 in QAction::toggled(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff488a3b0 in QAction::setChecked(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff488b79a in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff488bc81 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff3f3f5c6 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff4889a2e in QActionPrivate::sendDataChanged() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff488a397 in QAction::setChecked(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff3f3f703 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x000055555578451c in Imap::Mailbox::PrettyMsgListModel::sortingPreferenceChanged(int, Qt::SortOrder) (this=this@entry=0x555555c80630, _t1=<optimized out>, _t1@entry=2, _t2=<optimized out>, _t2@entry=Qt::AscendingOrder) at /home/lubuntu/trojita/_build/Imap_autogen/I7YDGANZM2/moc_PrettyMsgListModel.cpp:131
        _a = {0x0, 0x7fffffffca2c, 0x7fffffffca28}
#18 0x0000555555735ff3 in Imap::Mailbox::PrettyMsgListModel::sort(int, Qt::SortOrder) (this=0x555555c80630, column=2, order=Qt::AscendingOrder) at /home/lubuntu/trojita/src/Imap/Model/PrettyMsgListModel.cpp:244
        threadingModel = <optimized out>
        criterium = Imap::Mailbox::ThreadingMsgListModel::SORT_FROM
        willSort = true
#19 0x00007ffff3f3f5c6 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff4ae536f in QHeaderView::sortIndicatorChanged(int, Qt::SortOrder) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff4aee975 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff4aeebfa in QHeaderView::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff48cc748 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff496ff4e in QFrame::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff4ae149b in QAbstractItemView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff4af038b in QHeaderView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff3f1618b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff488e481 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff4895d08 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff3f16479 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff4895019 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff48e7264 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff48e9dee in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff488e491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff4895ac0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff3f16479 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff42bfa6b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#38 0x00007ffff42c1925 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007ffff429bd3b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007fffedfee8db in  () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#41 0x00007ffff3f1514b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#42 0x00007ffff3f1d2b2 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00005555555e647c in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/lubuntu/trojita/src/Gui/main.cpp:218
Comment 4 Walter Lapchynski 2019-03-14 00:34:48 UTC
Oh and I'm not super familiar with ASan but if I grok the docs correctly, a simple -fsanitize=address to cmake should make things work and I didn't really notice anything different.
Comment 5 Thomas Lübking 2019-03-14 08:11:12 UTC
Smells like you'd have to trigger multiple sorts within one event cycle, possibly due to some scheduled model sanitation at cycle starts/ends?
=> Try to limit the sorting to once per event cycle (eg. w/ a flag and a scheduled λ to clear it)
Comment 6 Walter Lapchynski 2019-04-13 22:07:47 UTC
Discovered a new quirk today: the smaller the window size, the more likely the problem is to occur.