Bug 334771 - Crash on startup when taskbar has no groups
Summary: Crash on startup when taskbar has no groups
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Task Manager and Icons-Only Task Manager (show other bugs)
Version: master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: 1.0
Assignee: Eike Hein
URL:
Keywords:
: 336325 336774 337113 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-05-14 16:26 UTC by Marco Martin
Modified: 2014-09-30 20:08 UTC (History)
9 users (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 Marco Martin 2014-05-14 16:26:41 UTC
sometimes (not 100% reproduceable) plasma crashes on startup when the taskbar groups are disabled

Reproducible: Always




Thread 1 (Thread 0x7f5b9c5f9780 (LWP 1271)):
[KCrash Handler]
#6  0x00007f5b9be00d4e in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data (this=0x8) at /home/diau/git/qt5/qtbase/include/QtCore/../../src/corelib/tools/qscopedpointer.h:143
#7  0x00007f5b9be77f9f in qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at /home/diau/git/qt5/qtbase/include/QtCore/../../src/corelib/global/qglobal.h:938
#8  0x00007f5b9be780c0 in QQuickItem::d_func (this=0x0) at ../../include/QtQuick/../../src/quick/items/qquickitem.h:445
#9  0x00007f5b9bef306b in QQuickItem::stackBefore (this=0x0, sibling=0x0) at items/qquickitem.cpp:2444
#10 0x00007f5b9bfcafa5 in QQuickRepeater::modelUpdated (this=0x2a55d20, changeSet=..., reset=false) at items/qquickrepeater.cpp:491
#11 0x00007f5b9c09a385 in QQuickRepeater::qt_static_metacall (_o=0x2a55d20, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fff117c3b10) at .moc/moc_qquickrepeater_p.cpp:136
#12 0x00007f5b935bda7b in QMetaObject::activate (sender=0x2a44b80, signalOffset=3, local_signal_index=1, argv=0x7fff117c3b10) at kernel/qobject.cpp:3680
#13 0x00007f5b935bd28c in QMetaObject::activate (sender=0x2a44b80, m=0x7f5b9bcff3a0 <QQmlInstanceModel::staticMetaObject>, local_signal_index=1, argv=0x7fff117c3b10) at kernel/qobject.cpp:3546
#14 0x00007f5b9b9210dc in QQmlInstanceModel::modelUpdated (this=0x2a44b80, _t1=..., _t2=false) at .moc/moc_qqmlobjectmodel_p.cpp:210
#15 0x00007f5b9b8eb7fc in QQmlDelegateModelPrivate::emitModelUpdated (this=0x2a45170, changeSet=..., reset=false) at types/qqmldelegatemodel.cpp:1405
#16 0x00007f5b9b8efec7 in QQmlDelegateModelGroupPrivate::emitModelUpdated (this=0x2a453c0, reset=false) at types/qqmldelegatemodel.cpp:2189
#17 0x00007f5b9b8eb975 in QQmlDelegateModelPrivate::emitChanges (this=0x2a45170) at types/qqmldelegatemodel.cpp:1424
#18 0x00007f5b9b8eb79a in QQmlDelegateModel::_q_itemsMoved (this=0x2a44b80, from=11, to=16, count=1) at types/qqmldelegatemodel.cpp:1399
#19 0x00007f5b9b8ebfe2 in QQmlDelegateModel::_q_rowsMoved (this=0x2a44b80, sourceParent=..., sourceStart=11, sourceEnd=11, destinationParent=..., destinationRow=17) at types/qqmldelegatemodel.cpp:1509
#20 0x00007f5b9b91dca9 in QQmlDelegateModel::qt_static_metacall (_o=0x2a44b80, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff117c4040) at .moc/moc_qqmldelegatemodel_p.cpp:191
#21 0x00007f5b9b91e06f in QQmlDelegateModel::qt_metacall (this=0x2a44b80, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff117c4040) at .moc/moc_qqmldelegatemodel_p.cpp:282
#22 0x00007f5b935833cd in QMetaObject::metacall (object=0x2a44b80, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0x7fff117c4040) at kernel/qmetaobject.cpp:308
#23 0x00007f5b935bdb54 in QMetaObject::activate (sender=0x2a3ae80, signalOffset=3, local_signal_index=20, argv=0x7fff117c4040) at kernel/qobject.cpp:3695
#24 0x00007f5b935bd28c in QMetaObject::activate (sender=0x2a3ae80, m=0x7f5b93a687e0 <QAbstractItemModel::staticMetaObject>, local_signal_index=20, argv=0x7fff117c4040) at kernel/qobject.cpp:3546
#25 0x00007f5b9364f248 in QAbstractItemModel::rowsMoved (this=0x2a3ae80, _t1=..., _t2=11, _t3=11, _t4=..., _t5=17) at .moc/moc_qabstractitemmodel.cpp:495
#26 0x00007f5b9351cf4f in QAbstractItemModel::endMoveRows (this=0x2a3ae80) at itemmodels/qabstractitemmodel.cpp:2856
#27 0x00007f5aa3ba06ad in TaskManager::TasksModelPrivate::itemMoved(TaskManager::AbstractGroupableItem*) () from /opt/kde5/lib64/libtaskmanager.so.5
#28 0x00007f5aa3ba0909 in TaskManager::TasksModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /opt/kde5/lib64/libtaskmanager.so.5
#29 0x00007f5b935bda7b in QMetaObject::activate (sender=0x2a39c10, signalOffset=5, local_signal_index=6, argv=0x7fff117c4430) at kernel/qobject.cpp:3680
#30 0x00007f5b935bd28c in QMetaObject::activate (sender=0x2a39c10, m=0x7f5aa3dd7520 <TaskManager::TaskGroup::staticMetaObject>, local_signal_index=6, argv=0x7fff117c4430) at kernel/qobject.cpp:3546
#31 0x00007f5aa3b9295f in TaskManager::TaskGroup::itemPositionChanged(TaskManager::AbstractGroupableItem*) () from /opt/kde5/lib64/libtaskmanager.so.5
#32 0x00007f5aa3b91cdc in TaskManager::TaskGroup::moveItem(int, int) () from /opt/kde5/lib64/libtaskmanager.so.5
#33 0x00007f5aa3b65fb7 in TaskManager::AbstractSortingStrategy::check(TaskManager::AbstractGroupableItem*) () from /opt/kde5/lib64/libtaskmanager.so.5
#34 0x00007f5aa3b65d94 in TaskManager::AbstractSortingStrategy::handleItem(TaskManager::AbstractGroupableItem*) () from /opt/kde5/lib64/libtaskmanager.so.5
#35 0x00007f5aa3b67426 in TaskManager::GroupManagerPrivate::addTask(TaskManager::Task*) () from /opt/kde5/lib64/libtaskmanager.so.5
#36 0x00007f5aa3b66bd2 in TaskManager::GroupManagerPrivate::actuallyReloadTasks() () from /opt/kde5/lib64/libtaskmanager.so.5
#37 0x00007f5aa3b6c81b in TaskManager::GroupManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /opt/kde5/lib64/libtaskmanager.so.5
#38 0x00007f5b935bda7b in QMetaObject::activate (sender=0x2a18748, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3680
#39 0x00007f5b935bd28c in QMetaObject::activate (sender=0x2a18748, m=0x7f5b93a696e0 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546
#40 0x00007f5b93650ce7 in QTimer::timeout (this=0x2a18748) at .moc/moc_qtimer.cpp:189
#41 0x00007f5b935c8c91 in QTimer::timerEvent (this=0x2a18748, e=0x7fff117c5330) at kernel/qtimer.cpp:255
#42 0x00007f5b935b6e66 in QObject::event (this=0x2a18748, e=0x7fff117c5330) at kernel/qobject.cpp:1222
#43 0x00007f5b94686086 in QApplicationPrivate::notify_helper (this=0xd584b0, receiver=0x2a18748, e=0x7fff117c5330) at kernel/qapplication.cpp:3491
#44 0x00007f5b94683765 in QApplication::notify (this=0x7fff117c8080, receiver=0x2a18748, e=0x7fff117c5330) at kernel/qapplication.cpp:2944
#45 0x00007f5b9357a6e6 in QCoreApplication::notifyInternal (this=0x7fff117c8080, receiver=0x2a18748, event=0x7fff117c5330) at kernel/qcoreapplication.cpp:935
#46 0x00007f5b9357e4c7 in QCoreApplication::sendEvent (receiver=0x2a18748, event=0x7fff117c5330) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#47 0x00007f5b935f232c in QTimerInfoList::activateTimers (this=0xda2860) at kernel/qtimerinfo_unix.cpp:643
#48 0x00007f5b935f368a in timerSourceDispatch (source=0xda2800) at kernel/qeventdispatcher_glib.cpp:185
#49 0x00007f5b8e0327d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#50 0x00007f5b8e032b08 in ?? () from /usr/lib64/libglib-2.0.so.0
#51 0x00007f5b8e032bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#52 0x00007f5b935f405b in QEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#53 0x00007f5b877f272a in QPAEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#54 0x00007f5b9357ac28 in QCoreApplication::processEvents (flags=..., maxtime=50) at kernel/qcoreapplication.cpp:1133
#55 0x00007f5b997612e2 in KDeclarative::QmlObject::completeInitialization (this=0x15d7ed0, initialProperties=...) at /home/diau/git/kf5/frameworks/kdeclarative/src/kdeclarative/qmlobject.cpp:223
#56 0x00007f5b9a2accf1 in PlasmaQuick::AppletQuickItem::init (this=0x15f2f20) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/appletquickitem.cpp:491
#57 0x00007f5b6d67ad59 in AppletInterface::init (this=0x15f2f20) at /home/diau/git/kf5/frameworks/plasma-framework/src/scriptengines/qml/plasmoid/appletinterface.cpp:141
#58 0x00007f5b9a2ad88a in PlasmaQuick::AppletQuickItem::itemChange (this=0x15f2f20, change=QQuickItem::ItemSceneChange, value=...) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/appletquickitem.cpp:701
#59 0x00007f5b9befbcf2 in QQuickItemPrivate::itemChange (this=0x15d0c10, change=QQuickItem::ItemSceneChange, data=...) at items/qquickitem.cpp:5531
#60 0x00007f5b9bef3bcb in QQuickItemPrivate::refWindow (this=0x15d0c10, c=0x27cc520) at items/qquickitem.cpp:2635
#61 0x00007f5b9bef3b12 in QQuickItemPrivate::refWindow (this=0x12f0870, c=0x27cc520) at items/qquickitem.cpp:2628
#62 0x00007f5b9bef2c7e in QQuickItem::setParentItem (this=0x12f19c0, parentItem=0x2941360) at items/qquickitem.cpp:2374
#63 0x00007f5b9a2beed1 in PlasmaQuick::ViewPrivate::setContainment (this=0x28a8b20, cont=0x12e2980) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/view.cpp:114
#64 0x00007f5b9a2bf61b in PlasmaQuick::View::setContainment (this=0x27cc520, cont=0x12e2980) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/view.cpp:202
#65 0x000000000047d86d in ShellCorona::createWaitingPanels() ()
#66 0x000000000048b93f in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ShellCorona::*)()>::call(void (ShellCorona::*)(), ShellCorona*, void**) ()
#67 0x000000000048a983 in void QtPrivate::FunctionPointer<void (ShellCorona::*)()>::call<QtPrivate::List<>, void>(void (ShellCorona::*)(), ShellCorona*, void**) ()
#68 0x0000000000488a35 in QtPrivate::QSlotObject<void (ShellCorona::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) ()
#69 0x00007f5b935c08b5 in QtPrivate::QSlotObjectBase::call (this=0xe35460, r=0xddef70, a=0x7fff117c60c0) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
#70 0x00007f5b935bd96e in QMetaObject::activate (sender=0xe33bf8, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3666
#71 0x00007f5b935bd28c in QMetaObject::activate (sender=0xe33bf8, m=0x7f5b93a696e0 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546
#72 0x00007f5b93650ce7 in QTimer::timeout (this=0xe33bf8) at .moc/moc_qtimer.cpp:189
#73 0x00007f5b935c8c91 in QTimer::timerEvent (this=0xe33bf8, e=0x7fff117c6b90) at kernel/qtimer.cpp:255
#74 0x00007f5b935b6e66 in QObject::event (this=0xe33bf8, e=0x7fff117c6b90) at kernel/qobject.cpp:1222
#75 0x00007f5b94686086 in QApplicationPrivate::notify_helper (this=0xd584b0, receiver=0xe33bf8, e=0x7fff117c6b90) at kernel/qapplication.cpp:3491
#76 0x00007f5b94683765 in QApplication::notify (this=0x7fff117c8080, receiver=0xe33bf8, e=0x7fff117c6b90) at kernel/qapplication.cpp:2944
#77 0x00007f5b9357a6e6 in QCoreApplication::notifyInternal (this=0x7fff117c8080, receiver=0xe33bf8, event=0x7fff117c6b90) at kernel/qcoreapplication.cpp:935
#78 0x00007f5b9357e4c7 in QCoreApplication::sendEvent (receiver=0xe33bf8, event=0x7fff117c6b90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#79 0x00007f5b935f232c in QTimerInfoList::activateTimers (this=0xda2860) at kernel/qtimerinfo_unix.cpp:643
#80 0x00007f5b935f368a in timerSourceDispatch (source=0xda2800) at kernel/qeventdispatcher_glib.cpp:185
#81 0x00007f5b8e0327d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#82 0x00007f5b8e032b08 in ?? () from /usr/lib64/libglib-2.0.so.0
#83 0x00007f5b8e032bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#84 0x00007f5b935f405b in QEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#85 0x00007f5b877f272a in QPAEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#86 0x00007f5b9357ac28 in QCoreApplication::processEvents (flags=..., maxtime=50) at kernel/qcoreapplication.cpp:1133
#87 0x00007f5b99761492 in KDeclarative::QmlObject::createObjectFromComponent (this=0x11871d0, component=0x1c5ea10, context=0x21a0560, initialProperties=...) at /home/diau/git/kf5/frameworks/kdeclarative/src/kdeclarative/qmlobject.cpp:247
#88 0x00007f5b9a2aac6b in PlasmaQuick::AppletQuickItemPrivate::createCompactRepresentationItem (this=0x128e210) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/appletquickitem.cpp:173
#89 0x00007f5b9a2ab6a0 in PlasmaQuick::AppletQuickItemPrivate::compactRepresentationCheck (this=0x128e210) at /home/diau/git/kf5/frameworks/plasma-framework/src/plasmaquick/appletquickitem.cpp:302
#90 0x00007f5b9a2ada17 in PlasmaQuick::AppletQuickItem::qt_static_metacall (_o=0x127d3d0, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0x7fff117c7170) at /home/diau/git/kf5/build/frameworks/plasma-framework/src/plasmaquick/moc_appletquickitem.cpp:178
#91 0x00007f5b935bda7b in QMetaObject::activate (sender=0x128e2c0, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3680
#92 0x00007f5b935bd28c in QMetaObject::activate (sender=0x128e2c0, m=0x7f5b93a696e0 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546
#93 0x00007f5b93650ce7 in QTimer::timeout (this=0x128e2c0) at .moc/moc_qtimer.cpp:189
#94 0x00007f5b935c8c91 in QTimer::timerEvent (this=0x128e2c0, e=0x7fff117c7c40) at kernel/qtimer.cpp:255
#95 0x00007f5b935b6e66 in QObject::event (this=0x128e2c0, e=0x7fff117c7c40) at kernel/qobject.cpp:1222
#96 0x00007f5b94686086 in QApplicationPrivate::notify_helper (this=0xd584b0, receiver=0x128e2c0, e=0x7fff117c7c40) at kernel/qapplication.cpp:3491
#97 0x00007f5b94683765 in QApplication::notify (this=0x7fff117c8080, receiver=0x128e2c0, e=0x7fff117c7c40) at kernel/qapplication.cpp:2944
#98 0x00007f5b9357a6e6 in QCoreApplication::notifyInternal (this=0x7fff117c8080, receiver=0x128e2c0, event=0x7fff117c7c40) at kernel/qcoreapplication.cpp:935
#99 0x00007f5b9357e4c7 in QCoreApplication::sendEvent (receiver=0x128e2c0, event=0x7fff117c7c40) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#100 0x00007f5b935f232c in QTimerInfoList::activateTimers (this=0xda2860) at kernel/qtimerinfo_unix.cpp:643
#101 0x00007f5b935f368a in timerSourceDispatch (source=0xda2800) at kernel/qeventdispatcher_glib.cpp:185
#102 0x00007f5b8e0327d5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#103 0x00007f5b8e032b08 in ?? () from /usr/lib64/libglib-2.0.so.0
#104 0x00007f5b8e032bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#105 0x00007f5b935f405b in QEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#106 0x00007f5b877f272a in QPAEventDispatcherGlib::processEvents (this=0xd9a670, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#107 0x00007f5b93577246 in QEventLoop::processEvents (this=0x7fff117c7f40, flags=...) at kernel/qeventloop.cpp:136
#108 0x00007f5b93577533 in QEventLoop::exec (this=0x7fff117c7f40, flags=...) at kernel/qeventloop.cpp:212
#109 0x00007f5b9357adcf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#110 0x00007f5b93dcea0e in QGuiApplication::exec () at kernel/qguiapplication.cpp:1436
#111 0x00007f5b94682f89 in QApplication::exec () at kernel/qapplication.cpp:2736
#112 0x000000000045f133 in main ()
Comment 1 Eike Hein 2014-05-14 22:37:48 UTC
I'm unable to reproduce this crash locally. Can you please provide additional information:

- The open tasks at the time you induce the crash.

- The full config of the applet.
Comment 2 Sebastian Kügler 2014-05-20 01:26:18 UTC
I get the same crasher. Relevant part of the config:

[Containments][1][Applets][4]
immutability=1
plugin=org.kde.plasma.taskmanager

[Containments][1][Applets][4][Configuration][General]
groupingStrategy=0

(That's set to "Do not group")

open apps:
 Qt Assistant, Chromium, DrKonqi (2 times), kdevelop, kmail, konsole 4, konsole 5, quasselclient, systemsettings

When starting plasmashell, one out of three times it crashes with this backtrace:

Thread 1 (Thread 0x7fe836494900 (LWP 28751)):
[KCrash Handler]
#6  0x00007fe835cb910c in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data (this=0x8) at /home/sebas/kf5/qt5/qtbase/include/QtCore/../../src/corelib/tools/qscopedpointer.h:143
#7  0x00007fe835d30141 in qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at /home/sebas/kf5/qt5/qtbase/include/QtCore/../../src/corelib/global/qglobal.h:938
#8  0x00007fe835d30262 in QQuickItem::d_func (this=0x0) at /home/sebas/kf5/qt5/qtbase/include/QtQuick/../../../qtdeclarative/src/quick/items/qquickitem.h:445
#9  0x00007fe835daa0eb in QQuickItem::stackBefore (this=0x0, sibling=0x0) at items/qquickitem.cpp:2444
#10 0x00007fe835e7febd in QQuickRepeater::modelUpdated (this=0x591df50, changeSet=..., reset=false) at items/qquickrepeater.cpp:491
#11 0x00007fe835f4cbb2 in QQuickRepeater::qt_static_metacall (_o=0x591df50, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fffd73d1ee0) at .moc/moc_qquickrepeater_p.cpp:136
#12 0x00007fe82d67e240 in QMetaObject::activate (sender=0x2c61df0, signalOffset=3, local_signal_index=1, argv=0x7fffd73d1ee0) at kernel/qobject.cpp:3680
#13 0x00007fe82d67da4e in QMetaObject::activate (sender=0x2c61df0, m=0x7fe835bc8ec0 <QQmlInstanceModel::staticMetaObject>, local_signal_index=1, argv=0x7fffd73d1ee0) at kernel/qobject.cpp:3546
#14 0x00007fe8357e8fc0 in QQmlInstanceModel::modelUpdated (this=0x2c61df0, _t1=..., _t2=false) at .moc/moc_qqmlobjectmodel_p.cpp:210
#15 0x00007fe8357b30a4 in QQmlDelegateModelPrivate::emitModelUpdated (this=0x2c623e0, changeSet=..., reset=false) at types/qqmldelegatemodel.cpp:1405
#16 0x00007fe8357b75d3 in QQmlDelegateModelGroupPrivate::emitModelUpdated (this=0x2c62650, reset=false) at types/qqmldelegatemodel.cpp:2189
#17 0x00007fe8357b3219 in QQmlDelegateModelPrivate::emitChanges (this=0x2c623e0) at types/qqmldelegatemodel.cpp:1424
#18 0x00007fe8357b3041 in QQmlDelegateModel::_q_itemsMoved (this=0x2c61df0, from=5, to=6, count=1) at types/qqmldelegatemodel.cpp:1399
#19 0x00007fe8357b3870 in QQmlDelegateModel::_q_rowsMoved (this=0x2c61df0, sourceParent=..., sourceStart=5, sourceEnd=5, destinationParent=..., destinationRow=7) at types/qqmldelegatemodel.cpp:1509
#20 0x00007fe8357e5bc5 in QQmlDelegateModel::qt_static_metacall (_o=0x2c61df0, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fffd73d2400) at .moc/moc_qqmldelegatemodel_p.cpp:191
#21 0x00007fe8357e5f83 in QQmlDelegateModel::qt_metacall (this=0x2c61df0, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fffd73d2400) at .moc/moc_qqmldelegatemodel_p.cpp:282
#22 0x00007fe82d644f61 in QMetaObject::metacall (object=0x2c61df0, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0x7fffd73d2400) at kernel/qmetaobject.cpp:308
#23 0x00007fe82d67e319 in QMetaObject::activate (sender=0x2c6bd00, signalOffset=3, local_signal_index=20, argv=0x7fffd73d2400) at kernel/qobject.cpp:3695
#24 0x00007fe82d67da4e in QMetaObject::activate (sender=0x2c6bd00, m=0x7fe82db2a980 <QAbstractItemModel::staticMetaObject>, local_signal_index=20, argv=0x7fffd73d2400) at kernel/qobject.cpp:3546
#25 0x00007fe82d70ba68 in QAbstractItemModel::rowsMoved (this=0x2c6bd00, _t1=..., _t2=5, _t3=5, _t4=..., _t5=7) at .moc/moc_qabstractitemmodel.cpp:495
#26 0x00007fe82d5e16e3 in QAbstractItemModel::endMoveRows (this=0x2c6bd00) at itemmodels/qabstractitemmodel.cpp:2856
#27 0x00007fe7c972435f in TaskManager::TasksModelPrivate::itemMoved(TaskManager::AbstractGroupableItem*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#28 0x00007fe7c97245bb in TaskManager::TasksModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#29 0x00007fe82d67e240 in QMetaObject::activate (sender=0x2c72ff0, signalOffset=5, local_signal_index=6, argv=0x7fffd73d27f0) at kernel/qobject.cpp:3680
#30 0x00007fe82d67da4e in QMetaObject::activate (sender=0x2c72ff0, m=0x7fe7c99536a0 <TaskManager::TaskGroup::staticMetaObject>, local_signal_index=6, argv=0x7fffd73d27f0) at kernel/qobject.cpp:3546
#31 0x00007fe7c9716bf5 in TaskManager::TaskGroup::itemPositionChanged(TaskManager::AbstractGroupableItem*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#32 0x00007fe7c9715f82 in TaskManager::TaskGroup::moveItem(int, int) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#33 0x00007fe7c96eb7f3 in TaskManager::AbstractSortingStrategy::check(TaskManager::AbstractGroupableItem*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#34 0x00007fe7c96eb5d5 in TaskManager::AbstractSortingStrategy::handleItem(TaskManager::AbstractGroupableItem*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#35 0x00007fe7c96ecb7f in TaskManager::GroupManagerPrivate::addTask(TaskManager::Task*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#36 0x00007fe7c96ec35a in TaskManager::GroupManagerPrivate::actuallyReloadTasks() () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#37 0x00007fe7c96f1d47 in TaskManager::GroupManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libtaskmanager.so.5
#38 0x00007fe82d67e240 in QMetaObject::activate (sender=0x2c5a6b8, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3680
#39 0x00007fe82d67da4e in QMetaObject::activate (sender=0x2c5a6b8, m=0x7fe82db2b880 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546
#40 0x00007fe82d70d475 in QTimer::timeout (this=0x2c5a6b8) at .moc/moc_qtimer.cpp:189
#41 0x00007fe82d688f85 in QTimer::timerEvent (this=0x2c5a6b8, e=0x7fffd73d3690) at kernel/qtimer.cpp:255
#42 0x00007fe82d677972 in QObject::event (this=0x2c5a6b8, e=0x7fffd73d3690) at kernel/qobject.cpp:1222
#43 0x00007fe82e4a809a in QApplicationPrivate::notify_helper (this=0x1e1c090, receiver=0x2c5a6b8, e=0x7fffd73d3690) at kernel/qapplication.cpp:3491
#44 0x00007fe82e4a582c in QApplication::notify (this=0x7fffd73d5300, receiver=0x2c5a6b8, e=0x7fffd73d3690) at kernel/qapplication.cpp:2944
#45 0x00007fe82d63c5ec in QCoreApplication::notifyInternal (this=0x7fffd73d5300, receiver=0x2c5a6b8, event=0x7fffd73d3690) at kernel/qcoreapplication.cpp:935
#46 0x00007fe82d640215 in QCoreApplication::sendEvent (receiver=0x2c5a6b8, event=0x7fffd73d3690) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#47 0x00007fe82d6b129a in QTimerInfoList::activateTimers (this=0x1e53ae0) at kernel/qtimerinfo_unix.cpp:643
#48 0x00007fe82d6b2584 in timerSourceDispatch (source=0x1e53a80) at kernel/qeventdispatcher_glib.cpp:185
#49 0x00007fe82752ee04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007fe82752f048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007fe82752f0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007fe82d6b2f15 in QEventDispatcherGlib::processEvents (this=0x1e4eb00, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#53 0x00007fe81f7d8452 in QPAEventDispatcherGlib::processEvents (this=0x1e4eb00, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#54 0x00007fe82d63cb0f in QCoreApplication::processEvents (flags=..., maxtime=50) at kernel/qcoreapplication.cpp:1133
#55 0x00007fe8336e8b87 in KDeclarative::QmlObject::completeInitialization (this=0x25dee10, initialProperties=...) at /home/sebas/kf5/src/frameworks/kdeclarative/src/kdeclarative/qmlobject.cpp:223
#56 0x00007fe8341c32d4 in PlasmaQuick::AppletQuickItem::init() () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#57 0x00007fe8035d2932 in AppletInterface::init() () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/plugins/plasma_appletscript_declarative.so
#58 0x00007fe8341c3e5e in PlasmaQuick::AppletQuickItem::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#59 0x00007fe835db2b90 in QQuickItemPrivate::itemChange (this=0x25dcdc0, change=QQuickItem::ItemSceneChange, data=...) at items/qquickitem.cpp:5531
#60 0x00007fe835daac4b in QQuickItemPrivate::refWindow (this=0x25dcdc0, c=0x5b3cb60) at items/qquickitem.cpp:2635
#61 0x00007fe835daab92 in QQuickItemPrivate::refWindow (this=0x2378e70, c=0x5b3cb60) at items/qquickitem.cpp:2628
#62 0x00007fe835da9cfe in QQuickItem::setParentItem (this=0x23774c0, parentItem=0x5becc60) at items/qquickitem.cpp:2374
#63 0x00007fe8341d43df in PlasmaQuick::ViewPrivate::setContainment(Plasma::Containment*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#64 0x00007fe8341d4aff in PlasmaQuick::View::setContainment(Plasma::Containment*) () from /home/sebas/kf5/install/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#65 0x0000000000475af5 in ShellCorona::createWaitingPanels() ()
#66 0x0000000000483359 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ShellCorona::*)()>::call(void (ShellCorona::*)(), ShellCorona*, void**) ()
#67 0x0000000000482429 in void QtPrivate::FunctionPointer<void (ShellCorona::*)()>::call<QtPrivate::List<>, void>(void (ShellCorona::*)(), ShellCorona*, void**) ()
#68 0x0000000000480633 in QtPrivate::QSlotObject<void (ShellCorona::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) ()
#69 0x00007fe82d680ecd in QtPrivate::QSlotObjectBase::call (this=0x1ed7d20, r=0x1e9d370, a=0x7fffd73d4420) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
#70 0x00007fe82d67e133 in QMetaObject::activate (sender=0x1f24248, signalOffset=3, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3666
#71 0x00007fe82d67da4e in QMetaObject::activate (sender=0x1f24248, m=0x7fe82db2b880 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546
#72 0x00007fe82d70d475 in QTimer::timeout (this=0x1f24248) at .moc/moc_qtimer.cpp:189
#73 0x00007fe82d688f85 in QTimer::timerEvent (this=0x1f24248, e=0x7fffd73d4eb0) at kernel/qtimer.cpp:255
#74 0x00007fe82d677972 in QObject::event (this=0x1f24248, e=0x7fffd73d4eb0) at kernel/qobject.cpp:1222
#75 0x00007fe82e4a809a in QApplicationPrivate::notify_helper (this=0x1e1c090, receiver=0x1f24248, e=0x7fffd73d4eb0) at kernel/qapplication.cpp:3491
#76 0x00007fe82e4a582c in QApplication::notify (this=0x7fffd73d5300, receiver=0x1f24248, e=0x7fffd73d4eb0) at kernel/qapplication.cpp:2944
#77 0x00007fe82d63c5ec in QCoreApplication::notifyInternal (this=0x7fffd73d5300, receiver=0x1f24248, event=0x7fffd73d4eb0) at kernel/qcoreapplication.cpp:935
#78 0x00007fe82d640215 in QCoreApplication::sendEvent (receiver=0x1f24248, event=0x7fffd73d4eb0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#79 0x00007fe82d6b129a in QTimerInfoList::activateTimers (this=0x1e53ae0) at kernel/qtimerinfo_unix.cpp:643
#80 0x00007fe82d6b2584 in timerSourceDispatch (source=0x1e53a80) at kernel/qeventdispatcher_glib.cpp:185
#81 0x00007fe82752ee04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#82 0x00007fe82752f048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#83 0x00007fe82752f0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#84 0x00007fe82d6b2f15 in QEventDispatcherGlib::processEvents (this=0x1e4eb00, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#85 0x00007fe81f7d8452 in QPAEventDispatcherGlib::processEvents (this=0x1e4eb00, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#86 0x00007fe82d63930a in QEventLoop::processEvents (this=0x7fffd73d51c0, flags=...) at kernel/qeventloop.cpp:136
#87 0x00007fe82d6395e3 in QEventLoop::exec (this=0x7fffd73d51c0, flags=...) at kernel/qeventloop.cpp:212
#88 0x00007fe82d63cca7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#89 0x00007fe82dc254c8 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1436
#90 0x00007fe82e4a5059 in QApplication::exec () at kernel/qapplication.cpp:2736
#91 0x0000000000458544 in main ()
Comment 3 Bhushan Shah 2014-05-22 12:37:43 UTC
So far I can cleanly reproduce with this steps.

1) Have a panel
2) Add task manager
2.1) Disable grouping
3) Pin any application as launcher (xterm)
4) Lock widgets
5) Start two instance of application (xterm)
6) Restart shell
Comment 4 Bhushan Shah 2014-05-22 12:40:14 UTC
sorry s/Lock/Unlock
Comment 5 Eike Hein 2014-05-22 12:51:23 UTC
I still cannot reproduce this (and Marco can also only reproduce it on one box but not the other), but here's a patch that's been confirmed to get rid of the crash:

diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp
index e226d7b..802e30c 100644
--- a/src/quick/items/qquickrepeater.cpp
+++ b/src/quick/items/qquickrepeater.cpp
@@ -488,7 +488,8 @@ void QQuickRepeater::modelUpdated(const QQmlChangeSet &changeSet, bool reset)
                     ? d->deletables.at(index + items.count())
                     : this;
             for (int i = index; i < index + items.count(); ++i)
-                d->deletables.at(i)->stackBefore(stackBefore);
+                if (d->deletables.at(i))
+                    d->deletables.at(i)->stackBefore(stackBefore);
         } else for (int i = 0; i < insert.count; ++i) {
             int modelIndex = index + i;
             ++d->itemCount;

Unfortunately without fully determining the cause this isn't a real solution, however.

It's worth noting that the model semantics are unchanged from the KDE 4 version and ModelTest remains happy, though.
Comment 6 Bhushan Shah 2014-06-17 03:53:47 UTC
*** Bug 336325 has been marked as a duplicate of this bug. ***
Comment 7 David Edmundson 2014-06-20 13:43:58 UTC
Marco, Sebas do you still get this.
The last reports are from a month ago.
Comment 8 Eike Hein 2014-06-20 17:04:19 UTC
This has been seen again recently by Bhushan and Rohan, though I still can't reproduce it on my machines. Marco could reproduce it on one of his but not the other back then, IIRC.
Comment 9 Bhushan Shah 2014-06-20 17:07:31 UTC
I think this can be closed, I can not reproduce again.. one can reopen it if can reproduce..
Comment 10 Bhushan Shah 2014-06-27 03:52:40 UTC
*** Bug 336774 has been marked as a duplicate of this bug. ***
Comment 11 Bhushan Shah 2014-07-05 13:20:37 UTC
*** Bug 337113 has been marked as a duplicate of this bug. ***
Comment 12 David Edmundson 2014-07-22 18:44:49 UTC
I just reproduced it, same relevant backtrace

I assumed it was my changes and have spent most of this evening recompiling my changes in Qt.. and everywhere else. Then I closed most of the windows I had open and it suddenly worked.

I'll try to see if I can reproduce this somehow.
Is there some nice way to get a dump of the windows I have open that task manager knowns about?
Comment 13 Eike Hein 2014-07-22 20:33:41 UTC
Don't think so, but it would be fairly easy to write a dump routine that walks the lib data structures, or the QAITM.

To explain the BT a bit:

- A "task reload" happens, most likely because a prop changed that the lib implements by doing one, such as a change in the sorting strategy.

- "Task reload" means "get the list of tasks, run addTask for each, collect what addTask rejects, and run removeTask for the rest".

- addTask will reject things based on options like "only show from current desktop is enabled, and this task is on a different desktop than the current desktop".

- For the ones it doesn't reject, it will insert them into the root group and then ask the active sorting and grouping strategies to take care of things*.

- Insertions, moves, and removals are ultimately translated to appropriate QAITM transactions. The QAITM impl sits on top of the lib and connects to its signals.

- modeltest is happy with all these things. Qt crashes in the QML repeater code.


* = Smart folks will notice there's leftover optimization potential here, e.g. idealy the insert would happen at the right place immediately instead of doing insert+move. Also, a reparenting from e.g. parent to child group or back is implemented as remove+insert, while the QAITM transaction model would allow moves between tree levels. On the whole the lib wasn't written with QAITM in mind - it predates it - and has somewhat different semantics. Changing them isn't easy without breaking the lib API, and in KDE 4 it still had other users than the QAITM that used the lib API directly.
Comment 14 Eike Hein 2014-07-22 20:39:20 UTC
(But it's worth adding that addTask is a no-op when filters, sorting, grouping are happy with where the task is.)
Comment 15 David Edmundson 2014-07-22 21:08:23 UTC
I /think/ I have steps to reproduce this:

 plasmashell
 killall -6 plasmashell
Then leave the crash window open
 plasmashell
 killall -6 plasmashell
Then leave that crash window open too

plasmashell
 you are now in an infinite loop with this backtrace every time
Comment 16 Eike Hein 2014-07-22 21:18:11 UTC
Doesn't work for me - though I don't get to type "plasmashell" because it auto-restarts. What sorting strategy are you using?
Comment 17 Aleix Pol 2014-08-05 17:07:17 UTC
I've hit that crash after removing all .config/plasma* on my development user.

http://paste.kde.org/pb6xjwtbs

So I guess it crashes with the defaults too.
Comment 18 Eike Hein 2014-09-30 20:08:29 UTC
Git commit 7c8c8d2e96b0a6c93a9582e909a210a70797ed15 by Eike Hein.
Committed on 30/09/2014 at 20:00.
Pushed by hein into branch 'Plasma/5.1'.

Delay handing the model to the repeater until QML is done initializing the Backend.

Qt Quick gets done constructing the repeater before all the props on the
backend are initialized from config, potentially causing unnecessary work
there (specifically row moves).

Also avoids a gnarly mystery crash in QQuickRepeater that I still can't
quite figure out how to write a testcase for ...

M  +1    -1    applets/taskmanager/package/contents/ui/main.qml

http://commits.kde.org/plasma-desktop/7c8c8d2e96b0a6c93a9582e909a210a70797ed15