[Panel-devel] Plasma crashes

Jason Stubbs jasonbstubbs at gmail.com
Sun Nov 18 13:06:53 CET 2007


Not sure which (set of) patch(es) over the last few hours that have caused it, 
but plasma is crashing quite often at the moment. I tracked down the cause to 
setCurrentState(item, RemovedState) being called on LayoutAnimator 
when 'item' has or is about to be destroyed - plasma then blows up after the 
next animation.

Attached are two trimmed-down backtraces that show examples of when the above 
is happening (ie, not the actual crash) and a hackish patch that works around 
the issue for anybody that wants to continue working in the mean time.

--
Jason Stubbs
-------------- next part --------------
#0  Plasma::LayoutAnimator::setCurrentState (this=0x73e120, item=0x740080,
    state=Plasma::LayoutAnimator::RemovedState)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/layoutanimator.cpp:156
#1  0x00002b1c6bf25444 in Plasma::BoxLayout::removeItem (this=0x73e0c0, item=0x740080)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/boxlayout.cpp:332
#2  0x00002b1c6bf36d44 in Plasma::Widget::itemChange (this=0x73e3b0,
    change=QGraphicsItem::ItemChildRemovedChange, value=@0x7fff3ee55390)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/widget.cpp:450
#3  0x00002b1c703dac5f in QGraphicsItem::setParentItem (this=0x740070, parent=0x0)
    at graphicsview/qgraphicsitem.cpp:798
#4  0x00002b1c703e7bdb in QGraphicsScene::removeItem (this=<value optimized out>, item=0x740070)
    at graphicsview/qgraphicsscene.cpp:2067
#5  0x00002b1c6bf3118c in Plasma::LayoutAnimator::itemAutoDeleter (this=<value optimized out>,
    item=0x740080, oldState=Plasma::LayoutAnimator::RemovedState,
    newState=Plasma::LayoutAnimator::DeadState)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/layoutanimator.cpp:133
#6  0x00002b1c6bf31280 in Plasma::LayoutAnimator::qt_metacall (this=0x73e120,
    _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fff3ee55af0)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/libs/plasma/layoutanimator.moc:76
#7  0x00002b1c6c4905c5 in QMetaObject::activate (sender=0x73e120, from_signal_index=4,
    to_signal_index=4, argv=0x7) at kernel/qobject.cpp:3089
#8  0x00002b1c6bf30654 in Plasma::LayoutAnimator::stateChanged (this=0x10df, _t1=0x740080,
    _t2=Plasma::LayoutAnimator::RemovedState, _t3=Plasma::LayoutAnimator::DeadState)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/libs/plasma/layoutanimator.moc:87
#9  0x00002b1c6bf30a69 in Plasma::LayoutAnimator::animationFinished (this=0x73e120, item=0x740080)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/layoutanimator.cpp:279
#10 0x00002b1c6bf30eef in Plasma::LayoutAnimator::animationCompleted (this=0x73e120)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/layoutanimator.cpp:191
-------------- next part --------------
#0  Plasma::LayoutAnimator::setCurrentState (this=0x7b76e0, item=0x655130,
    state=Plasma::LayoutAnimator::RemovedState)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/layoutanimator.cpp:156
#1  0x00002ab177fbf444 in Plasma::BoxLayout::removeItem (this=0x7b7680, item=0x655130)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/plasma/widgets/boxlayout.cpp:332
#2  0x00002ab183b2a803 in TaskGroupItem::removeTask (this=0x7b5af0, item=0x655110)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp:574
#3  0x00002ab183b2a947 in TaskGroupItem::insertTask (this=0x7b5af0, item=0x655110, index=1)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp:556
#4  0x00002ab183b2c5b6 in Tasks::addStartingTask (this=0x78b240, task=@0x7fff32dbac00)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/plasma/applets/tasks/tasks.cpp:101
#5  0x00002ab183b2c669 in Tasks::qt_metacall (this=0x78b240, _c=QMetaObject::InvokeMetaMethod, _id=2,
    _a=<value optimized out>)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/plasma/applets/tasks/tasks.moc:74
#6  0x00002ab17852a5c5 in QMetaObject::activate (sender=0x78e3b0, from_signal_index=6,
    to_signal_index=6, argv=0x7b5210) at kernel/qobject.cpp:3089
#7  0x00002ab183d42402 in TaskManager::startupAdded (this=0x8ad0c0, _t1=<value optimized out>)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/libs/taskmanager/taskmanager.moc:484
#8  0x00002ab183d42c04 in TaskManager::gotNewStartup (this=0x78e3b0, id=@0x7fff32dbb900,
    data=@0x7fff32dbb8f0)
    at /home/kde-devel/kde/src/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:524
-------------- next part --------------
A non-text attachment was scrubbed...
Name: layoutanimator-tempfix.patch
Type: text/x-diff
Size: 455 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/panel-devel/attachments/20071118/154a869c/attachment.bin 


More information about the Panel-devel mailing list