https://bugs.kde.org/show_bug.cgi?id=402439

            Bug ID: 402439
           Summary: Model error with Kickoff RunnerModel
           Product: plasmashell
           Version: master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Application Launcher (Kickoff)
          Assignee: k...@davidedmundson.co.uk
          Reporter: k...@davidedmundson.co.uk
                CC: plasma-b...@kde.org
  Target Milestone: 1.0

In an attempt to check there's no bug our side with the common plasma crash in
kickoff I attached QAbstractItemModelTester to our model.

Unpredictably (one in every few launches) I do get a model error:

#0  0x00007ffff1191d7f in raise () at /usr/lib/libc.so.6
#1  0x00007ffff117c672 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff16eb25b in qt_message_fatal(QtMsgType, QMessageLogContext
const&, QString const&) (context=..., message=...)
    at /home/david/projects/qt5/qtbase/src/corelib/global/qlogging.cpp:1840
#3  0x00007ffff16ebfe9 in QMessageLogger::fatal(char const*, ...) const
    (this=this@entry=0x7fffffffc260, msg=msg@entry=0x7fffcc048760
<QAbstractItemModelTesterPrivate::compare<QVariant, QVariant>(QVariant const&,
QVariant const&, char const*, char const*, char const*, int)::formatString>
"FAIL! Compared values are not the same:\n   Actual (%s) %s\n   Expected (%s)
%s\n   (%s:%d)") at
/home/david/projects/qt5/qtbase/src/corelib/global/qlogging.cpp:880
#4  0x00007fffcc03dd77 in QAbstractItemModelTesterPrivate::compare<QVariant,
QVariant>(QVariant const&, QVariant const&, char const*, char const*, char
const*, int)
    (this=this@entry=0x555557fc1ab0, t1=..., t2=...,
actual=actual@entry=0x7fffcc044830 "model->data(model->index(start - 1, 0,
c.parent))", expected=expected@entry=0x7fffcc046112 "c.last",
file=file@entry=0x7fffcc044500
"/home/david/projects/qt5/qtbase/src/testlib/qabstractitemmodeltester.cpp",
line=746) at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/global/qlogging.h:91
#5  0x00007fffcc03af0c in
QAbstractItemModelTesterPrivate::rowsRemoved(QModelIndex const&, int, int)
    (this=0x555557fc1ab0, parent=..., start=16, end=25) at
/usr/include/c++/8.2.1/bits/atomic_base.h:390
#6  0x00007fffcc03b141 in QAbstractItemModelTester::<lambda(const QModelIndex&,
int, int)>::operator()
    (end=<optimized out>, start=<optimized out>, parent=...,
__closure=<optimized out>)
    at
/home/david/projects/qt5/qtbase/src/testlib/qabstractitemmodeltester.cpp:262
#7  0x00007fffcc03b141 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1,
2>, QtPrivate::List<const QModelIndex&, int, int>, void,
QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel*,
QAbstractItemModelTester::FailureReportingMode, QObject*)::<lambda(const
QModelIndex&, int, int)> >::call (arg=<optimized out>, f=...)
    at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
#8  0x00007fffcc03b141 in
QtPrivate::Functor<QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel*,
QAbstractItemModelTester::FailureReportingMode, QObject*)::<lambda(const
QModelIndex&, int, int)>, 3>::call<QtPrivate::List<QModelIndex const&, int,
int>, void>
    (arg=<optimized out>, f=...) at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:238
#9  0x00007fffcc03b141 in
QtPrivate::QFunctorSlotObject<QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel*,
QAbstractItemModelTester::FailureReportingMode, QObject*)::<lambda(const
QModelIndex&, int, int)>, 3, QtPrivate::List<const QModelIndex&, int, int>,
void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=<optimized out>, this_=<optimized out>, r=<optimized out>,
a=<optimized out>, ret=<optimized out>)
    at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:421
#10 0x00007ffff18ee860 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=<optimized out>, r=0x555557f683c0, this=0x555558008b10)
    at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:376
#11 0x00007ffff18ee860 in QMetaObject::activate(QObject*, int, int, void**)
    (sender=sender@entry=0x555558099cd0, signalOffset=<optimized out>,
local_signal_index=local_signal_index@entry=12, argv=argv@entry=0x7fffffffc4f0)
at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3754
#12 0x00007ffff18eecbd in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x555558099cd0, m=m@entry=0x7ffff1b6c4a0
<QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=12, argv=argv@entry=0x7fffffffc4f0)
at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3633
#13 0x00007ffff1871245 in QAbstractItemModel::rowsRemoved(QModelIndex const&,
int, int, QAbstractItemModel::QPrivateSignal)
    (this=this@entry=0x555558099cd0, _t1=..., _t2=<optimized out>,
_t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:601
#14 0x00007ffff18799f5 in QAbstractItemModel::endRemoveRows()
(this=0x555558099cd0)
    at
/home/david/projects/qt5/qtbase/src/corelib/itemmodels/qabstractitemmodel.cpp:2786
#15 0x00007fffc41a703a in
RunnerMatchesModel::setMatches(QList<Plasma::QueryMatch> const&)
(this=0x555558099cd0, matches=...)
    at
/home/david/projects/kde5/src/kde/workspace/plasma-desktop/applets/kicker/plugin/runnermatchesmodel.cpp:241
#16 0x00007fffc41a0a0d in RunnerModel::matchesChanged(QList<Plasma::QueryMatch>
const&) (this=0x555557d33220, matches=...)
    at
/home/david/projects/kde5/src/kde/workspace/plasma-desktop/applets/kicker/plugin/runnermodel.cpp:264
#17 0x00007fffc41c0a1a in RunnerModel::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)
    (_o=0x555557d33220, _c=QMetaObject::InvokeMetaMethod, _id=8,
_a=0x7fffffffcb50)
    at applets/kicker/kickerplugin_autogen/7RBZBFH7CH/moc_runnermodel.cpp:152
#18 0x00007ffff18eea1b in QMetaObject::activate(QObject*, int, int, void**)
    (sender=sender@entry=0x555557aac360, signalOffset=<optimized out>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffcb50)
at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3771
#19 0x00007ffff18eecbd in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=0x555557aac360, m=<optimized out>, local_signal_index=0,
argv=0x7fffffffcb50)
    at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3633
#20 0x00007fffb8feb8a3 in
Plasma::RunnerManager::matchesChanged(QList<Plasma::QueryMatch> const&)
(this=0x555557aac360, _t1=...)
    at src/KF5Runner_autogen/include/moc_runnermanager.cpp:191
#21 0x00007fffb8fee518 in Plasma::RunnerManagerPrivate::matchesChanged()
(this=0x555557ab1310)
    at
/home/david/projects/kde5/src/frameworks/krunner/src/runnermanager.cpp:92
#22 0x00007fffb8feb6f0 in Plasma::RunnerManager::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)
    (_o=0x555557aac360, _c=QMetaObject::InvokeMetaMethod, _id=8,
_a=0x7fffffffcd20)
    at src/KF5Runner_autogen/include/moc_runnermanager.cpp:126
#23 0x00007ffff18eea1b in QMetaObject::activate(QObject*, int, int, void**)
    (sender=sender@entry=0x555557ab1338, signalOffset=<optimized out>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffcd20)
at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3771
#24 0x00007ffff18eecbd in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x555557ab1338, m=m@entry=0x7ffff1b6dca0
<QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fffffffcd20) at
/home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3633
#25 0x00007ffff18fb9ab in QTimer::timeout(QTimer::QPrivateSignal)
(this=this@entry=0x555557ab1338, _t1=...) at .moc/moc_qtimer.cpp:200
#26 0x00007ffff18fbbb1 in QTimer::timerEvent(QTimerEvent*)
(this=0x555557ab1338, e=<optimized out>)
    at /home/david/projects/qt5/qtbase/src/corelib/kernel/qtimer.cpp:255
#27 0x00007ffff18ef10c in QObject::event(QEvent*) (this=0x555557ab1338,
e=<optimized out>)
    at /home/david/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:1232
#28 0x00007ffff2ada46d in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=this@entry=0x555555868560, receiver=receiver@entry=0x555557ab1338,
e=e@entry=0x7fffffffd010)
    at /home/david/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3726
#29 0x00007ffff2ae236d in QApplication::notify(QObject*, QEvent*)
(this=0x7fffffffd9e0, receiver=0x555557ab1338, e=0x7fffffffd010)
    at /home/david/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3098
#30 0x00007ffff18bd415 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x555557ab1338, event=event@entry=0x7fffffffd010)
    at
/home/david/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1047
#31 0x00007ffff191bfe6 in QCoreApplication::sendEvent(QObject*, QEvent*)
(event=0x7fffffffd010, receiver=<optimized out>)
    at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qcoreapplication.h:234
#32 0x00007ffff191bfe6 in QTimerInfoList::activateTimers()
(this=0x5555558b3920)
    at
/home/david/projects/qt5/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:643
#33 0x00007ffff191c82c in timerSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>)
    at
/home/david/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:182
#34 0x00007fffebe603cf in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#35 0x00007fffebe61f89 in  () at /usr/lib/libglib-2.0.so.0
#36 0x00007fffebe61fce in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#37 0x00007ffff191cbbc in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x5555558b86e0, flags=...)
    at
/home/david/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:422
#38 0x00007fffea31aebf in
QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x5555558b86e0, flags=...)
    at
/home/david/projects/qt5/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:69
#39 0x00007ffff18bb327 in
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffffffd290, flags=..., 
    flags@entry=...) at /usr/include/c++/8.2.1/bits/atomic_base.h:707
#40 0x00007ffff18bb77f in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffffffd290, flags=flags@entry=...)
    at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/global/qflags.h:122
#41 0x00007ffff18c5872 in QCoreApplication::exec() () at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/global/qflags.h:120
#42 0x00007ffff1c8e282 in QGuiApplication::exec() () at
/home/david/projects/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1762
#43 0x00007ffff2ada3db in QApplication::exec() () at
/home/david/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2900
#44 0x000055555557a99a in main(int, char**) (argc=2, argv=0x7fffffffdaf8)
    at
/home/david/projects/kde5/src/kde/workspace/plasma-workspace/shell/main.cpp:212



Relevant patch on plasma-desktop to attach model tester:
https://phabricator.kde.org/P283

Haven't investigated yet.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to