Bug 1281742 - plasma-desktop sometimes crashes while hovering over application icon in taskbar
plasma-desktop sometimes crashes while hovering over application icon in taskbar
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kdelibs (Show other bugs)
6.7
x86_64 Linux
medium Severity medium
: rc
: ---
Assigned To: Jan Grulich
Desktop QE
: ZStream
Depends On:
Blocks: 1271696 1293573
  Show dependency treegraph
 
Reported: 2015-11-13 06:18 EST by Siteshwar Vashisht
Modified: 2016-05-10 15:36 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1293573 (view as bug list)
Environment:
Last Closed: 2016-05-10 15:36:54 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Backported patch (1.66 KB, patch)
2015-11-26 04:44 EST, Siteshwar Vashisht
no flags Details | Diff

  None (edit)
Description Siteshwar Vashisht 2015-11-13 06:18:58 EST
Description of problem:
plasma-desktop crashes randmoly while hovering over application in task switcher

Version-Release number of selected component (if applicable):
kdebase-workspace-4.3.4-30.el6_6.x86_64

How reproducible:
Sometimes

Steps to Reproduce:
1. plasma-desktop sometimes crashes while hovering over generic X icon in task switcher

Additional info:

This bug is somewhat similar to https://bugzilla.redhat.com/show_bug.cgi?id=1098949 but has a different backtrace.
Comment 1 Siteshwar Vashisht 2015-11-13 07:04:10 EST
This the backtrace of crash

#0  0x0000003e4ec0f65b in raise (sig=11) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
#1  0x0000003e5aa55735 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kdelibs-4.3.4/kdeui/util/kcrash.cpp:258
#2  <signal handler called>
#3  0x0000003e622ffc42 in Plasma::PaintUtils::transition (from=..., to=..., amount=0.125) at /usr/src/debug/kdelibs-4.3.4/plasma/paintutils.cpp:161
#4  0x00007f64382a73e4 in AbstractTaskItem::drawTask (this=0x18afc90, painter=0x7ffd10979b60, option=<value optimized out>)
    at /usr/src/debug/kdebase-workspace-4.3.4/plasma/applets/tasks/abstracttaskitem.cpp:614
#5  0x0000003e5e75870a in _q_paintItem (item=<value optimized out>, painter=0x7ffd10979b60, option=0x15c1fb8, widget=0x1acc150, useWindowOpacity=<value optimized out>, painterStateProtection=true)
    at graphicsview/qgraphicsscene.cpp:4243
#6  0x0000003e5e7691c4 in QGraphicsScenePrivate::drawItemHelper (this=0x15c1d60, item=0x18afca0, painter=0x7ffd10979b60, option=0x15c1fb8, widget=0x1acc150, painterStateProtection=true)
    at graphicsview/qgraphicsscene.cpp:4311
#7  0x0000003e5e76b295 in QGraphicsScenePrivate::draw (this=0x15c1d60, item=0x18afca0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, transformPtr=0x7ffd10978280, exposedRegion=0x19d34b0, 
    widget=0x1acc150, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4827
#8  0x0000003e5e76bee2 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x15c1d60, item=0x18afca0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, exposedRegion=0x19d34b0, widget=
    0x1acc150, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#9  0x0000003e5e76b330 in QGraphicsScenePrivate::draw (this=0x15c1d60, item=0x1961860, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, transformPtr=0x7ffd109788c0, exposedRegion=0x19d34b0, 
    widget=0x1acc150, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4841
#10 0x0000003e5e76bee2 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x15c1d60, item=0x1961860, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, exposedRegion=0x19d34b0, widget=
    0x1acc150, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#11 0x0000003e5e76b330 in QGraphicsScenePrivate::draw (this=0x15c1d60, item=0x19204b0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, transformPtr=0x7ffd10978f00, exposedRegion=0x19d34b0, 
    widget=0x1acc150, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4841
#12 0x0000003e5e76bee2 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x15c1d60, item=0x19204b0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, exposedRegion=0x19d34b0, widget=
    0x1acc150, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#13 0x0000003e5e76b330 in QGraphicsScenePrivate::draw (this=0x15c1d60, item=0x18b34c0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, transformPtr=0x7ffd10979540, exposedRegion=0x19d34b0, 
    widget=0x1acc150, opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true) at graphicsview/qgraphicsscene.cpp:4841
#14 0x0000003e5e76bee2 in QGraphicsScenePrivate::drawSubtreeRecursive (this=0x15c1d60, item=0x18b34c0, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, exposedRegion=0x19d34b0, widget=
    0x1acc150, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#15 0x0000003e5e76c8a4 in QGraphicsScenePrivate::drawItems (this=0x15c1d60, painter=0x7ffd10979b60, viewTransform=0x7ffd10979910, exposedRegion=0x19d34b0, widget=0x1acc150)
    at graphicsview/qgraphicsscene.cpp:4619
#16 0x0000003e5e789eb5 in QGraphicsView::paintEvent (this=0x19dae40, event=<value optimized out>) at graphicsview/qgraphicsview.cpp:3393
#17 0x0000003e5b2411c6 in PanelView::paintEvent (this=0x19dae40, event=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.4/plasma/shells/desktop/panelview.cpp:1291
#18 0x0000003e5e1f586a in QWidget::event (this=0x19dae40, event=0x7ffd1097a4b0) at kernel/qwidget.cpp:8144
#19 0x0000003e5e570576 in QFrame::event (this=0x19dae40, e=0x7ffd1097a4b0) at widgets/qframe.cpp:557
#20 0x0000003e5e78699b in QGraphicsView::viewportEvent (this=0x19dae40, event=0x7ffd1097a4b0) at graphicsview/qgraphicsview.cpp:2787
#21 0x0000003e59157127 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x1acc150, event=0x7ffd1097a4b0) at kernel/qcoreapplication.cpp:819
#22 0x0000003e5e1aa9dc in QApplicationPrivate::notify_helper (this=0x15ca700, receiver=0x1acc150, e=0x7ffd1097a4b0) at kernel/qapplication.cpp:4299
#23 0x0000003e5e1b094b in QApplication::notify (this=<value optimized out>, receiver=0x1acc150, e=0x7ffd1097a4b0) at kernel/qapplication.cpp:4186
#24 0x0000003e5a9f81f6 in KApplication::notify (this=0x15ba4f0, receiver=0x1acc150, event=0x7ffd1097a4b0) at /usr/src/debug/kdelibs-4.3.4/kdeui/kernel/kapplication.cpp:302
#25 0x0000003e59157d0c in QCoreApplication::notifyInternal (this=0x15ba4f0, receiver=0x1acc150, event=0x7ffd1097a4b0) at kernel/qcoreapplication.cpp:704
#26 0x0000003e5e1fd43c in sendSpontaneousEvent (this=0x19d7f30, pdev=0x17fd5d0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x19d4590)
    at ../../src/corelib/kernel/qcoreapplication.h:218
#27 QWidgetPrivate::drawWidget (this=0x19d7f30, pdev=0x17fd5d0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x19d4590) at kernel/qwidget.cpp:5339
#28 0x0000003e5e1fe0c8 in QWidgetPrivate::paintSiblingsRecursive (this=0x19d2ff0, pdev=0x17fd5d0, siblings=<value optimized out>, index=<value optimized out>, rgn=..., offset=..., flags=4, 
    sharedPainter=0x0, backingStore=0x19d4590) at kernel/qwidget.cpp:5452
#29 0x0000003e5e1fd19a in QWidgetPrivate::drawWidget (this=0x19d2ff0, pdev=0x17fd5d0, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x19d4590)
    at kernel/qwidget.cpp:5388
#30 0x0000003e5e3a07d5 in QWidgetBackingStore::sync (this=0x19d4590) at painting/qbackingstore.cpp:1291
#31 0x0000003e5e1ef820 in QWidgetPrivate::syncBackingStore (this=0x19d2ff0) at kernel/qwidget.cpp:1672
#32 0x0000003e5e1f5f73 in QWidget::event (this=0x19dae40, event=0x2194e80) at kernel/qwidget.cpp:8291
#33 0x0000003e5e570576 in QFrame::event (this=0x19dae40, e=0x2194e80) at widgets/qframe.cpp:557
#34 0x0000003e5e5ef9ab in QAbstractScrollArea::event (this=0x19dae40, e=0x2194e80) at widgets/qabstractscrollarea.cpp:989
#35 0x0000003e5b242d30 in PanelView::event (this=0x19dae40, event=0x2194e80) at /usr/src/debug/kdebase-workspace-4.3.4/plasma/shells/desktop/panelview.cpp:1314
#36 0x0000003e5e1aaa0c in QApplicationPrivate::notify_helper (this=0x15ca700, receiver=0x19dae40, e=0x2194e80) at kernel/qapplication.cpp:4303
#37 0x0000003e5e1b094b in QApplication::notify (this=<value optimized out>, receiver=0x19dae40, e=0x2194e80) at kernel/qapplication.cpp:4186
#38 0x0000003e5a9f81f6 in KApplication::notify (this=0x15ba4f0, receiver=0x19dae40, event=0x2194e80) at /usr/src/debug/kdelibs-4.3.4/kdeui/kernel/kapplication.cpp:302
#39 0x0000003e59157d0c in QCoreApplication::notifyInternal (this=0x15ba4f0, receiver=0x19dae40, event=0x2194e80) at kernel/qcoreapplication.cpp:704
#40 0x0000003e59158a57 in sendEvent (receiver=0x19dae40, event_type=77, data=0x15a3d90) at kernel/qcoreapplication.h:215
#41 QCoreApplicationPrivate::sendPostedEvents (receiver=0x19dae40, event_type=77, data=0x15a3d90) at kernel/qcoreapplication.cpp:1345
#42 0x0000003e5e77377a in dispatchPendingUpdateRequests (this=0x15c1d60) at ../../src/gui/graphicsview/qgraphicsview_p.h:184
#43 QGraphicsScenePrivate::_q_processDirtyItems (this=0x15c1d60) at graphicsview/qgraphicsscene.cpp:509
#44 0x0000003e5e773cea in QGraphicsScene::qt_metacall (this=0x169a960, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x18aafc0) at .moc/release-shared/moc_qgraphicsscene.cpp:130
#45 0x0000003e622e6075 in Plasma::Corona::qt_metacall (this=0x169a960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x18aafc0)
    at /usr/src/debug/kdelibs-4.3.4/x86_64-redhat-linux-gnu/plasma/corona.moc:107
#46 0x0000003e5b235630 in DesktopCorona::qt_metacall (this=0x169a960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x18aafc0)
    at /usr/src/debug/kdebase-workspace-4.3.4/x86_64-redhat-linux-gnu/plasma/shells/desktop/desktopcorona.moc:71
#47 0x0000003e59166ca1 in QObject::event (this=0x169a960, e=0x1d0a530) at kernel/qobject.cpp:1248
#48 0x0000003e5e76f990 in QGraphicsScene::event (this=0x169a960, event=0x1d0a530) at graphicsview/qgraphicsscene.cpp:3500
#49 0x0000003e5e1aaa0c in QApplicationPrivate::notify_helper (this=0x15ca700, receiver=0x169a960, e=0x1d0a530) at kernel/qapplication.cpp:4303
#50 0x0000003e5e1b094b in QApplication::notify (this=<value optimized out>, receiver=0x169a960, e=0x1d0a530) at kernel/qapplication.cpp:4186
#51 0x0000003e5a9f81f6 in KApplication::notify (this=0x15ba4f0, receiver=0x169a960, event=0x1d0a530) at /usr/src/debug/kdelibs-4.3.4/kdeui/kernel/kapplication.cpp:302
#52 0x0000003e59157d0c in QCoreApplication::notifyInternal (this=0x15ba4f0, receiver=0x169a960, event=0x1d0a530) at kernel/qcoreapplication.cpp:704
#53 0x0000003e59158a57 in sendEvent (receiver=0x0, event_type=0, data=0x15a3d90) at kernel/qcoreapplication.h:215
#54 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x15a3d90) at kernel/qcoreapplication.cpp:1345
#55 0x0000003e5917dad3 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220
#56 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#57 0x0000003e4fc40642 in g_main_dispatch (context=0x15ccdb0) at gmain.c:2441
#58 g_main_context_dispatch (context=0x15ccdb0) at gmain.c:3014
#59 0x0000003e4fc44c98 in g_main_context_iterate (context=0x15ccdb0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3092
#60 0x0000003e4fc44e4c in g_main_context_iteration (context=0x15ccdb0, may_block=1) at gmain.c:3155
#61 0x0000003e5917d613 in QEventDispatcherGlib::processEvents (this=0x15a3b40, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#62 0x0000003e5e249b5e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#63 0x0000003e59156752 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#64 0x0000003e59156a1c in QEventLoop::exec (this=0x7ffd1097c500, flags=...) at kernel/qeventloop.cpp:201
#65 0x0000003e59158d09 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#66 0x0000003e5b23a80f in kdemain (argc=1, argv=0x7ffd1097c818) at /usr/src/debug/kdebase-workspace-4.3.4/plasma/shells/desktop/main.cpp:50
#67 0x0000003e4e81ed5d in __libc_start_main (main=0x400840 <main(int, char**)>, argc=1, ubp_av=0x7ffd1097c818, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7ffd1097c808) at libc-start.c:226
#68 0x0000000000400779 in _start ()

plasma-desktop seems to be crashing while calling from.paintEngine()->hasFeature() :

#3  0x0000003e622ffc42 in Plasma::PaintUtils::transition (from=..., to=..., amount=0.125) at /usr/src/debug/kdelibs-4.3.4/plasma/paintutils.cpp:161
161         if (from.paintEngine()->hasFeature(QPaintEngine::PorterDuff) &&
(gdb) l
156         //paint to in the center of from
157         QRect toRect = to.rect();
158         toRect.moveCenter(from.rect().center());
159
160         // If the native paint engine supports Porter/Duff compositing and CompositionMode_Plus
161         if (from.paintEngine()->hasFeature(QPaintEngine::PorterDuff) &&
162             from.paintEngine()->hasFeature(QPaintEngine::BlendModes)) {
163             QPixmap under = from;
164             QPixmap over  = to;
165
Comment 2 Siteshwar Vashisht 2015-11-24 06:02:03 EST
Application seems to be crashing while calling from.paintEngine() in frame 3 :

(gdb) frame 3
#3  0x0000003a146ffc42 in Plasma::PaintUtils::transition (from=..., to=..., amount=0.40000000000000002) at /usr/src/debug/kdelibs-4.3.4/plasma/paintutils.cpp:161
161         if (from.paintEngine()->hasFeature(QPaintEngine::PorterDuff) &&

(gdb) p from
$17 = (const QPixmap &) @0x7fffe524ce60: {<QPaintDevice> = {_vptr.QPaintDevice = 0x3a0abf1a30, painters = 0}, data = {d = 0xc14080}}

In 'src/gui/image/qpixmap.cpp' :

1864 QPaintEngine *QPixmap::paintEngine() const
1865 {
1866     return data ? data->paintEngine() : 0;
1867 }

(gdb) p from.data
$31 = {d = 0xc14080}
(gdb) ptype from.data
type = class QExplicitlySharedDataPointer<QPixmapData> {

(gdb) p from.data.d
$1 = (QPixmapData *) 0xc14080

(gdb) p /a (*(void ***)from.data.d)
$2 = 0x3a0abf2210 <_ZTV17QRasterPixmapData+16>

Line 1866 in 'src/gui/image/qpixmap.cpp' is calling below method from 'src/gui/image/qpixmap_raster.cpp' :

355 QPaintEngine* QRasterPixmapData::paintEngine() const
356 {
357     return image.paintEngine();
358 }

In 'src/gui/image/qimage.cpp' :

5308 QPaintEngine *QImage::paintEngine() const
5309 {
5310     if (!d)
5311         return 0;
5312 
5313     if (!d->paintEngine) {
5314         d->paintEngine = new QRasterPaintEngine(const_cast<QImage *>(this));
5315     }
5316 
5317     return d->paintEngine;
5318 }

line 5317 seems to be returning NULL which is causing the crash :

(gdb) p ((QRasterPixmapData*)from.data.d)->image->d->paintEngine
$12 = (QPaintEngine *) 0x0

So I suspect this crash is caused by NULL value returned from new operator at line 5314.
Comment 3 Siteshwar Vashisht 2015-11-24 06:35:04 EST
This bug seems to be fixed by https://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=2c3dec2b2c512e68605dc9a250a1f7bd7a9683fe
Comment 4 Jan Grulich 2015-11-24 06:37:30 EST
Upstream fix → granting dev_ack+.
Comment 5 Siteshwar Vashisht 2015-11-26 04:44 EST
Created attachment 1099199 [details]
Backported patch

Backported patch from https://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=2c3dec2b2c512e68605dc9a250a1f7bd7a9683fe
Comment 7 Jan Grulich 2015-11-30 08:25:55 EST
Fixed in kdelibs-4.3.4-28.el6.
Comment 15 errata-xmlrpc 2016-05-10 15:36:54 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0744.html

Note You need to log in before you can comment on or make changes to this bug.