Bug 351479

Summary: Desktop locks up with vertical panel and digital clock showing date
Product: [Plasma] plasmashell Reporter: markuss <kamikazow>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED FIXED    
Severity: major CC: bhush94, guillaume.debure, kde, mkyral, plasma-bugs, rad.n
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: plasma-org.kde.plasma.desktop-appletsrc

Description markuss 2015-08-19 12:43:42 UTC
Created attachment 94111 [details]
plasma-org.kde.plasma.desktop-appletsrc

Move the panel to the left edge, resize it a bit.
After that step, the whole desktop locks up fairly regularly.

It may be the same as bug 351297, although I don't have the analogue clock in my panel.

The contents of my plasmashellrc are (plasma-org.kde.plasma.desktop-appletsrc is attached as file):

[PlasmaViews][Panel 1][Vertical768]
thickness=56

[Updates]
performed=/usr/share/plasma/shells/org.kde.plasma.desktop/updates/00-start-here-kde-fedora-2.js,/usr/share/plasma/shells/org.kde.plasma.desktop/updates/01-fedora-org.kde.plasma.pkupdates.js
Comment 1 David Edmundson 2015-08-20 11:45:00 UTC
just applied your plasma-org.kde.plasma.desktop-appletsrc. I'm getting the same freeze.

Thanks.
Comment 2 Kai Uwe Broulik 2015-08-20 18:47:53 UTC
When I put a digital clock into a vertical panel and resize it a couple of times eventually it freezes here and after that the setup is broken (freezes on startup when initing the panels):

That's the BT I got after the first freeze:

Thread 1 (Thread 0x7fda866237c0 (LWP 19877)):
#0  0x00007fda80a82911 in _int_malloc (av=av@entry=0x7fda80dc5c00 <main_arena>, 
    bytes=bytes@entry=28) at malloc.c:3334
#1  0x00007fda80a8550e in __GI___libc_malloc (bytes=28) at malloc.c:2895

#2  0x00007fda8117efef in QArrayData::allocate (objectSize=objectSize@entry=2, 
    alignment=alignment@entry=8, capacity=capacity@entry=2, options=..., 
    options@entry=...) at tools/qarraydata.cpp:93
#3  0x00007fda8120ebc5 in allocate (options=..., capacity=2)
    at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:216
#4  QString::QString (this=0x7ffd5b9b5ec0, unicode=0x7ffd5b9b5e80, size=1)
    at tools/qstring.cpp:1429
#5  0x00007fda811f542e in qulltoa (_zero=..., base=10, l=<optimized out>)
    at tools/qlocale_tools.cpp:100
#6  qlltoa (l=<optimized out>, base=base@entry=10, zero=..., zero@entry=...)
    at tools/qlocale_tools.cpp:105
#7  0x00007fda811eda1a in QLocaleData::longLongToString (zero=..., group=..., 
    plus=..., minus=..., l=<optimized out>, precision=1, base=10, width=-1, flags=0)
    at tools/qlocale.cpp:2899
#8  0x00007fda811edbb3 in QLocaleData::longLongToString (this=<optimized out>, 
    l=l@entry=1, precision=precision@entry=-1, base=base@entry=10, 
    width=width@entry=-1, flags=0) at tools/qlocale.cpp:2874

#9  0x00007fda81218566 in QString::setNum (this=this@entry=0x7ffd5b9b6020, n=1, 
    base=10) at tools/qstring.cpp:6445
#10 0x00007fda8121880b in setNum (base=<optimized out>, n=<optimized out>, 
    this=0x7ffd5b9b6020)
    at ../../include/QtCore/../../src/corelib/tools/qstring.h:820
#11 QString::number (n=<optimized out>, base=<optimized out>)
    at tools/qstring.cpp:6578
#12 0x00007fda85b1560b in Plasma::SvgPrivate::cacheId(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#13 0x00007fda85b17eb1 in Plasma::SvgPrivate::elementRect(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#14 0x00007fda85b1a0f8 in Plasma::Svg::elementSize(QString const&) const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#15 0x00007fda85b0b0a4 in Plasma::FrameSvgPrivate::updateSizes() const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#16 0x00007fda85b06c82 in Plasma::FrameSvg::resizeFrame(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5

#17 0x00007fda69b71eae in Plasma::FrameSvgItem::geometryChanged(QRectF const&, QRectF const&) ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so
#18 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#19 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#20 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#21 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#22 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#23 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#24 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#25 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#26 0x00007fda858429d3 in PlasmaQuick::AppletQuickItem::geometryChanged(QRectF const&,
 QRectF const&) () from /usr/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#27 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#28 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#29 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#30 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#31 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#32 0x00007fda5c1de798 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
#33 0x00007fda819e5186 in QGridLayoutEngine::setGeometries (this=0x7c80248, 
    contentsGeometry=..., styleInfo=<optimized out>)Thread 1 (Thread 0x7fda866237c0 (LWP 19877)):
#0  0x00007fda80a82911 in _int_malloc (av=av@entry=0x7fda80dc5c00 <main_arena>, 
    bytes=bytes@entry=28) at malloc.c:3334
#1  0x00007fda80a8550e in __GI___libc_malloc (bytes=28) at malloc.c:2895

#2  0x00007fda8117efef in QArrayData::allocate (objectSize=objectSize@entry=2, 
    alignment=alignment@entry=8, capacity=capacity@entry=2, options=..., 
    options@entry=...) at tools/qarraydata.cpp:93
#3  0x00007fda8120ebc5 in allocate (options=..., capacity=2)
    at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:216
#4  QString::QString (this=0x7ffd5b9b5ec0, unicode=0x7ffd5b9b5e80, size=1)
    at tools/qstring.cpp:1429
#5  0x00007fda811f542e in qulltoa (_zero=..., base=10, l=<optimized out>)
    at tools/qlocale_tools.cpp:100
#6  qlltoa (l=<optimized out>, base=base@entry=10, zero=..., zero@entry=...)
    at tools/qlocale_tools.cpp:105
#7  0x00007fda811eda1a in QLocaleData::longLongToString (zero=..., group=..., 
    plus=..., minus=..., l=<optimized out>, precision=1, base=10, width=-1, flags=0)
    at tools/qlocale.cpp:2899
#8  0x00007fda811edbb3 in QLocaleData::longLongToString (this=<optimized out>, 
    l=l@entry=1, precision=precision@entry=-1, base=base@entry=10, 
    width=width@entry=-1, flags=0) at tools/qlocale.cpp:2874

#9  0x00007fda81218566 in QString::setNum (this=this@entry=0x7ffd5b9b6020, n=1, 
    base=10) at tools/qstring.cpp:6445
#10 0x00007fda8121880b in setNum (base=<optimized out>, n=<optimized out>, 
    this=0x7ffd5b9b6020)
    at ../../include/QtCore/../../src/corelib/tools/qstring.h:820
#11 QString::number (n=<optimized out>, base=<optimized out>)
    at tools/qstring.cpp:6578
#12 0x00007fda85b1560b in Plasma::SvgPrivate::cacheId(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#13 0x00007fda85b17eb1 in Plasma::SvgPrivate::elementRect(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#14 0x00007fda85b1a0f8 in Plasma::Svg::elementSize(QString const&) const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#15 0x00007fda85b0b0a4 in Plasma::FrameSvgPrivate::updateSizes() const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#16 0x00007fda85b06c82 in Plasma::FrameSvg::resizeFrame(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5

#17 0x00007fda69b71eae in Plasma::FrameSvgItem::geometryChanged(QRectF const&, QRectF const&) ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so
#18 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#19 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#20 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#21 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#22 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#23 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#24 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#25 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#26 0x00007fda858429d3 in PlasmaQuick::AppletQuickItem::geometryChanged(QRectF const&,
 QRectF const&) () from /usr/lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#27 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#28 0x00007fda86364a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#29 0x00007fda863669a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#30 0x00007fda86369dd3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&)
    () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#31 0x00007fda8636ec60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#32 0x00007fda5c1de798 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
#33 0x00007fda819e5186 in QGridLayoutEngine::setGeometries (this=0x7c80248, 
    contentsGeometry=..., styleInfo=<optimized out>)
    at util/qgridlayoutengine.cpp:1015
#34 0x00007fda5c1ddf0f in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
#35 0x00007fda5c1dc87a in ?? ()

    at util/qgridlayoutengine.cpp:1015
#34 0x00007fda5c1ddf0f in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
#35 0x00007fda5c1dc87a in ?? ()

That's the BT I get after starting Plasma now that it's broken:

Thread 1 (Thread 0x7fae7b2447c0 (LWP 27575)):
#0  _int_malloc (av=av@entry=0x7fae759e6c00 <main_arena>, bytes=bytes@entry=114)
    at malloc.c:3346
#1  0x00007fae756a650e in __GI___libc_malloc (bytes=114) at malloc.c:2895
#2  0x00007fae75d9ffef in QArrayData::allocate (objectSize=objectSize@entry=2, 
    alignment=alignment@entry=8, capacity=capacity@entry=45, options=..., 
    options@entry=...) at tools/qarraydata.cpp:93
#3  0x00007fae75e30103 in allocate (options=..., capacity=45)
    at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:216
#4  QString::QString (this=0x7fff7058b5c0, size=44) at tools/qstring.cpp:1469
#5  0x00007fae7a73ea1c in QString QStringBuilder<QStringBuilder<QStringBuilder<QStringBuilder<QStringBuilder<QLatin1String, QLatin1Char>, QString>, QLatin1Char>, QLatin1Char>, QString>::convertTo<QString>() const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#6  0x00007fae7a73d151 in QStringBuilder<QStringBuilder<QStringBuilder<QStringBuilder<QStringBuilder<QLatin1String, QLatin1Char>, QString>, QLatin1Char>, QLatin1Char>, QString>::operator QString() const () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#7  0x00007fae7a736703 in Plasma::SvgPrivate::cacheId(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#8  0x00007fae7a738eb1 in Plasma::SvgPrivate::elementRect(QString const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#9  0x00007fae7a73b0f8 in Plasma::Svg::elementSize(QString const&) const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#10 0x00007fae7a72c3e4 in Plasma::FrameSvgPrivate::updateSizes() const ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#11 0x00007fae7a727c82 in Plasma::FrameSvg::resizeFrame(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#12 0x00007fae5e78ceae in Plasma::FrameSvgItem::geometryChanged(QRectF const&, QRectF const&) ()
   from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so
#13 0x00007fae7af8fc60 in QQuickItem::setSize(QSizeF const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#14 0x00007fae7af85a8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#15 0x00007fae7af879a2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
Comment 3 David Edmundson 2015-08-21 23:14:19 UTC
Found it.

If people can test https://git.reviewboard.kde.org/r/124874/ that'd be great.

I'll see if we can get this into the 5.4.0 release.
Comment 4 Marian Kyral 2015-08-22 05:58:51 UTC
Hi,
I tested this and works. At least in my case, when plasmashell does not start after enabling "Show date" option.

With patch plasmashell starts correctly.
Comment 5 David Edmundson 2015-08-22 08:50:14 UTC
*** Bug 351297 has been marked as a duplicate of this bug. ***
Comment 6 David Edmundson 2015-08-22 10:35:07 UTC
Git commit fa6b5576f5243d147c1280904c967408b4ce5a0b by David Edmundson.
Committed on 22/08/2015 at 10:34.
Pushed by davidedmundson into branch 'Plasma/5.4'.

Fix lockup in digital clock

property tooSmall depends on height

If it's tool small it changes what text is shown on top of each other
Whether text is shown changes the height; super complex binding loop
that because it throws in a visibility change and goes via layouts isn't
being caught.

>From what I can tell of other code when vertical we always want to show
both bits of text.
REVIEW: 124874

M  +1    -1    applets/digital-clock/package/contents/ui/DigitalClock.qml

http://commits.kde.org/plasma-workspace/fa6b5576f5243d147c1280904c967408b4ce5a0b
Comment 7 David Edmundson 2015-08-22 12:44:54 UTC
*** Bug 351506 has been marked as a duplicate of this bug. ***