Bug 334506

Summary: Moving panel from vertical to horizontal hangs plasma
Product: [Plasma] plasmashell Reporter: Martin Klapetek <mklapetek>
Component: PanelAssignee: David Edmundson <kde>
Status: RESOLVED WORKSFORME    
Severity: normal CC: kde, mgraesslin, notmart
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Bug screenshot

Description Martin Klapetek 2014-05-08 09:58:27 UTC
Created attachment 86522 [details]
Bug screenshot

Plasma starts eating 100% CPU and gets stucked into what seems like a half-way through resize; see screenshot. Below is backtrace, seems like some QML bindings are being updated forever.

It will eventually finish, but takes loooooooooooooooooong time (and one whole core).

Seems always reproducible here.

#0  0x00007ff01c990cf9 in QQmlJavaScriptExpression::notifyOnValueChanged (this=0x1691b70) at ../../include/QtQml/5.3.1/QtQml/private/../../../../../src/qml/qml/qqmljavascriptexpression_p.h:219
#1  0x00007ff01ca130c6 in QQmlJavaScriptExpression::evaluate (this=0x1691b70, context=0x1694660, function=..., callData=0x7fef3f800018, isUndefined=0x7fff6e341fee)
    at qml/qqmljavascriptexpression.cpp:149
#2  0x00007ff01ca12f44 in QQmlJavaScriptExpression::evaluate (this=0x1691b70, context=0x1694660, function=..., isUndefined=0x7fff6e341fee) at qml/qqmljavascriptexpression.cpp:123
#3  0x00007ff01ca1de81 in QQmlBinding::update (this=0x1691b50, flags=...) at qml/qqmlbinding.cpp:259
#4  0x00007ff01ca1e9f4 in QQmlBinding::update (this=0x1691b50) at qml/qqmlbinding_p.h:105
#5  0x00007ff01ca1e50c in QQmlBinding::expressionChanged (e=0x1691b70) at qml/qqmlbinding.cpp:327
#6  0x00007ff01ca143da in QQmlJavaScriptExpressionGuard_callback (e=0x24055d0) at qml/qqmljavascriptexpression.cpp:371
#7  0x00007ff01c9f2259 in QQmlNotifier::emitNotify (endpoint=0x24055d0, a=0x0) at qml/qqmlnotifier.cpp:81
#8  0x00007ff01c9f21d1 in QQmlNotifier::emitNotify (endpoint=0x42fd280, a=0x0) at qml/qqmlnotifier.cpp:76
#9  0x00007ff01c9f21d1 in QQmlNotifier::emitNotify (endpoint=0x42fed30, a=0x0) at qml/qqmlnotifier.cpp:76
#10 0x00007ff01c97b229 in QQmlData::signalEmitted (object=0x36eace0, index=97, a=0x0) at qml/qqmlengine.cpp:721
#11 0x00007ff0169fdb55 in QMetaObject::activate (sender=0x36eace0, signalOffset=96, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3567
#12 0x00007ff0169fd952 in QMetaObject::activate (sender=0x36eace0, m=0x7ff01d5a0f20 <QQuickGridView::staticMetaObject>, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3546
#13 0x00007ff01d213685 in QQuickGridView::cellHeightChanged (this=0x36eace0) at .moc/moc_qquickgridview_p.cpp:272
#14 0x00007ff01d150a21 in QQuickGridView::setCellHeight (this=0x36eace0, cellHeight=24) at items/qquickgridview.cpp:1662
#15 0x00007ff01d2135a8 in QQuickGridView::qt_metacall (this=0x36eace0, _c=QMetaObject::WriteProperty, _id=2, _a=0x7fff6e342640) at .moc/moc_qquickgridview_p.cpp:238
#16 0x00007ff0169c43a9 in QMetaObject::metacall (object=0x36eace0, cl=QMetaObject::WriteProperty, idx=111, argv=0x7fff6e342640) at kernel/qmetaobject.cpp:308
#17 0x00007ff01c996922 in QQmlPropertyPrivate::writeBinding (object=0x36eace0, core=..., context=0x3714bc0, expression=0x1d15a60, result=..., isUndefined=false, flags=...) at qml/qqmlproperty.cpp:1498
#18 0x00007ff01ca1df7d in QQmlBinding::update (this=0x1d15a40, flags=...) at qml/qqmlbinding.cpp:266
#19 0x00007ff01ca1e9f4 in QQmlBinding::update (this=0x1d15a40) at qml/qqmlbinding_p.h:105
#20 0x00007ff01ca1e50c in QQmlBinding::expressionChanged (e=0x1d15a60) at qml/qqmlbinding.cpp:327
#21 0x00007ff01ca143da in QQmlJavaScriptExpressionGuard_callback (e=0x23f8e18) at qml/qqmljavascriptexpression.cpp:371
#22 0x00007ff01c9f2259 in QQmlNotifier::emitNotify (endpoint=0x23f8e18, a=0x0) at qml/qqmlnotifier.cpp:81
#23 0x00007ff01c9f21d1 in QQmlNotifier::emitNotify (endpoint=0x23f8da8, a=0x0) at qml/qqmlnotifier.cpp:76
#24 0x00007ff01c97b229 in QQmlData::signalEmitted (object=0x36eace0, index=25, a=0x0) at qml/qqmlengine.cpp:721
#25 0x00007ff0169fdb55 in QMetaObject::activate (sender=0x36eace0, signalOffset=3, local_signal_index=22, argv=0x0) at kernel/qobject.cpp:3567
#26 0x00007ff0169fd952 in QMetaObject::activate (sender=0x36eace0, m=0x7ff01d58e2a0 <QQuickItem::staticMetaObject>, local_signal_index=22, argv=0x0) at kernel/qobject.cpp:3546
#27 0x00007ff01d0816d5 in QQuickItem::heightChanged (this=0x36eace0) at .moc/moc_qquickitem.cpp:1068
#28 0x00007ff01d07420c in QQuickItem::geometryChanged (this=0x36eace0, newGeometry=..., oldGeometry=...) at items/qquickitem.cpp:3377
#29 0x00007ff01d135917 in QQuickFlickable::geometryChanged (this=0x36eace0, newGeometry=..., oldGeometry=...) at items/qquickflickable.cpp:1503
#30 0x00007ff01d193541 in QQuickItemView::geometryChanged (this=0x36eace0, newGeometry=..., oldGeometry=...) at items/qquickitemview.cpp:1346
#31 0x00007ff01d15162f in QQuickGridView::geometryChanged (this=0x36eace0, newGeometry=..., oldGeometry=...) at items/qquickgridview.cpp:2138
#32 0x00007ff01d07b48d in QQuickItem::setHeight (this=0x36eace0, h=120) at items/qquickitem.cpp:6073
#33 0x00007ff01d066c5d in QQuickAnchorsPrivate::setItemHeight (this=0x3440d00, v=120) at items/qquickanchors.cpp:373
#34 0x00007ff01d067ac5 in QQuickAnchorsPrivate::updateVerticalAnchors (this=0x3440d00) at items/qquickanchors.cpp:576
#35 0x00007ff01d067243 in QQuickAnchorsPrivate::itemGeometryChanged (this=0x3440d00, newG=..., oldG=...) at items/qquickanchors.cpp:454
#36 0x00007ff01d07418a in QQuickItem::geometryChanged (this=0x3707a40, newGeometry=..., oldGeometry=...) at items/qquickitem.cpp:3365
#37 0x00007ff01d07c057 in QQuickItem::setSize (this=0x3707a40, size=...) at items/qquickitem.cpp:6207
#38 0x00007ff01d066dde in QQuickAnchorsPrivate::setItemSize (this=0x16c49e0, v=...) at items/qquickanchors.cpp:408
#39 0x00007ff01d065e64 in QQuickAnchorsPrivate::fillChanged (this=0x16c49e0) at items/qquickanchors.cpp:185
#40 0x00007ff01d0670d1 in QQuickAnchorsPrivate::itemGeometryChanged (this=0x16c49e0, newG=..., oldG=...) at items/qquickanchors.cpp:449
#41 0x00007ff01d07418a in QQuickItem::geometryChanged (this=0x3696b70, newGeometry=..., oldGeometry=...) at items/qquickitem.cpp:3365
#42 0x00007ff01d07c057 in QQuickItem::setSize (this=0x3696b70, size=...) at items/qquickitem.cpp:6207
#43 0x00007ff01d066dde in QQuickAnchorsPrivate::setItemSize (this=0x35b6e50, v=...) at items/qquickanchors.cpp:408
#44 0x00007ff01d065e64 in QQuickAnchorsPrivate::fillChanged (this=0x35b6e50) at items/qquickanchors.cpp:185
#45 0x00007ff01d0670d1 in QQuickAnchorsPrivate::itemGeometryChanged (this=0x35b6e50, newG=..., oldG=...) at items/qquickanchors.cpp:449
#46 0x00007ff01d07418a in QQuickItem::geometryChanged (this=0x1a4ea60, newGeometry=..., oldGeometry=...) at items/qquickitem.cpp:3365
#47 0x00007ff01b499b97 in PlasmaQuick::AppletQuickItem::geometryChanged (this=0x1a4ea60, newGeometry=..., oldGeometry=...)
    at /home/mck182/kf5-dev/src/plasma-framework/src/plasmaquick/appletquickitem.cpp:679
#48 0x00007ff01d07c057 in QQuickItem::setSize (this=0x1a4ea60, size=...) at items/qquickitem.cpp:6207
#49 0x00007ff01d066dde in QQuickAnchorsPrivate::setItemSize (this=0x35522c0, v=...) at items/qquickanchors.cpp:408
#50 0x00007ff01d065e64 in QQuickAnchorsPrivate::fillChanged (this=0x35522c0) at items/qquickanchors.cpp:185
#51 0x00007ff01d0670d1 in QQuickAnchorsPrivate::itemGeometryChanged (this=0x35522c0, newG=..., oldG=...) at items/qquickanchors.cpp:449
#52 0x00007ff01d07418a in QQuickItem::geometryChanged (this=0x3557410, newGeometry=..., oldGeometry=...) at items/qquickitem.cpp:3365
#53 0x00007ff01d07c057 in QQuickItem::setSize (this=0x3557410, size=...) at items/qquickitem.cpp:6207
#54 0x00007fef3c3cede9 in QQuickGridLayoutItem::setGeometry (this=0x353a5f0, rect=...) at qquickgridlayoutengine_p.h:126
#55 0x00007ff01728f557 in QGridLayoutEngine::setGeometries (this=0x372da08, contentsGeometry=..., styleInfo=0x372dbd0) at util/qgridlayoutengine.cpp:1022
#56 0x00007fef3c3cce9f in QQuickGridLayoutBase::rearrange (this=0x372c3c0, size=...) at qquicklinearlayout.cpp:505
#57 0x00007fef3c3cb908 in QQuickLayout::updatePolish (this=0x372c3c0) at qquicklayout.cpp:537
#58 0x00007ff01d08e1b7 in QQuickWindowPrivate::polishItems (this=0x22d6f20) at items/qquickwindow.cpp:271
#59 0x00007ff01d05d90e in QSGGuiThreadRenderLoop::renderWindow (this=0xdf90b0, window=0x22cfc80) at scenegraph/qsgrenderloop.cpp:355
#60 0x00007ff01d05e034 in QSGGuiThreadRenderLoop::event (this=0xdf90b0, e=0x7fff6e343f00) at scenegraph/qsgrenderloop.cpp:466
#61 0x00007ff01782d176 in QApplicationPrivate::notify_helper (this=0xe0a270, receiver=0xdf90b0, e=0x7fff6e343f00) at kernel/qapplication.cpp:3501
#62 0x00007ff01782a7be in QApplication::notify (this=0x7fff6e344350, receiver=0xdf90b0, e=0x7fff6e343f00) at kernel/qapplication.cpp:2954
#63 0x00007ff0169bb824 in QCoreApplication::notifyInternal (this=0x7fff6e344350, receiver=0xdf90b0, event=0x7fff6e343f00) at kernel/qcoreapplication.cpp:935
#64 0x00007ff0169bf4b1 in QCoreApplication::sendEvent (receiver=0xdf90b0, event=0x7fff6e343f00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#65 0x00007ff016a31a84 in QTimerInfoList::activateTimers (this=0xe65040) at kernel/qtimerinfo_unix.cpp:643
---Type <return> to continue, or q <return> to quit---
#66 0x00007ff016a32d98 in timerSourceDispatch (source=0xe64fe0) at kernel/qeventdispatcher_glib.cpp:185
#67 0x00007ff010b323b6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007ff010b32708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#69 0x00007ff010b327ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#70 0x00007ff016a33733 in QEventDispatcherGlib::processEvents (this=0xe67740, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#71 0x00007ff00b07b37a in QPAEventDispatcherGlib::processEvents (this=0xe67740, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:123
#72 0x00007ff0169b84ec in QEventLoop::processEvents (this=0x7fff6e3441d0, flags=...) at kernel/qeventloop.cpp:136
#73 0x00007ff0169b87b7 in QEventLoop::exec (this=0x7fff6e3441d0, flags=...) at kernel/qeventloop.cpp:212
#74 0x00007ff0169bbf0a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#75 0x00007ff016fb2164 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1436
#76 0x00007ff017829fdf in QApplication::exec () at kernel/qapplication.cpp:2746
#77 0x00000000004570a6 in main (argc=1, argv=0x7fff6e344488) at /home/mck182/kf5-dev/src/plasma-workspace/shell/main.cpp:102
Comment 1 Marco Martin 2014-05-14 15:30:58 UTC
very very probably a systemtray problem, i can reproduce only on panels with a systray in it
Comment 2 Marco Martin 2014-05-14 15:47:58 UTC
Git commit f4954fb976c1995b3e047317fbb59124014a21b1 by Marco Martin.
Committed on 14/05/2014 at 15:46.
Pushed by mart into branch 'master'.

don't compute the size we don't need

avoids an undetected resize loop that hangs plasma

M  +2    -2    applets/systemtray/package/contents/ui/CompactRepresentation.qml

http://commits.kde.org/plasma-workspace/f4954fb976c1995b3e047317fbb59124014a21b1
Comment 3 Marco Martin 2014-05-14 15:52:01 UTC
Martin reported that sometimes still happens from horizontal to  vertical
Comment 4 Martin Klapetek 2014-05-14 15:58:20 UTC
(that's Martin G for the record)
Comment 5 David Edmundson 2014-05-20 18:57:35 UTC
Martin G knows how to get me a backtrace.
Adding Martin G to CC list as he's mentioned, and marking as needs info.
Comment 6 Martin Flöser 2014-05-21 05:47:34 UTC
just right now I was not able to reproduce - will try again next time I restart Plasma
Comment 7 Martin Klapetek 2014-07-16 13:43:59 UTC
Does not seem to be happening anymore.