4.3 branch plasma crash in AbstractTaskItem::basicPreferredSize

Marco Martin notmart at gmail.com
Sun Aug 9 09:32:00 CEST 2009


i'm running the taskbar from 4.3 branch now, let's see if i can
reproduce the crashes

On 8/8/09, David Faure <faure at kde.org> wrote:
> On Friday 07 August 2009, Marco Martin wrote:
>> On Friday 07 August 2009, David Faure wrote:
>> > Plasma crashes rather often for me.
>> > I finally got a bt of the crash. Is this enough info for anyone to fix
>> > it?
>
> And now I got another backtrace, no null pointer this time
>  (am I the only one opening and closing windows in kde 4.3???).
> I wonder if the auto-restarting of plasma makes most people ignore such
> crashes, or if I activated an option (e.g. task grouping) that most people
> didn't.
>
> #0  0x00007f21de30b2de in QGraphicsItem::parentItem (this=0x4197120) at
> graphicsview/qgraphicsitem.cpp:938
> #1  0x00007f21de3542e0 in QGraphicsLayoutPrivate::addChildLayoutItem
> (this=0x2c46340, layoutItem=0x4190620) at
> graphicsview/qgraphicslayout_p.cpp:162
> #2  0x00007f21de37367b in QGraphicsGridLayout::addItem (this=0x2c462e0,
> item=0x4190620, row=0, column=0, rowSpan=1, columnSpan=1, alignment={i =
> -362538464}) at graphicsview/qgraphicsgridlayout.cpp:158
> #3  0x00007f21c58cd8c4 in TaskItemLayout::layoutItems (this=0x2c462e0) at
> /d/kde/src/4/kdebase/workspace/plasma/applets/tasks/taskitemlayout.cpp:370
> #4  0x00007f21c58d8ea5 in TaskGroupItem::constraintsChanged (this=0x2c45110,
> constraints={i = -362538176}) at
> /d/kde/src/4/kdebase/workspace/plasma/applets/tasks/taskgroupitem.cpp:726
> #5  0x00007f21c58dbf4c in TaskGroupItem::qt_metacall (this=0x2c45110,
> _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fffea641cb0) at
> /d/kde/build/4/kdebase/workspace/plasma/applets/tasks/taskgroupitem.moc:110
> #6  0x00007f21dd5a2614 in QMetaObject::activate (sender=0x27b4890,
> from_signal_index=36, to_signal_index=36, argv=0x7fffea641cb0) at
> kernel/qobject.cpp:3109
> #7  0x00007f21dd5a3a11 in QMetaObject::activate (sender=0x27b4890,
> m=0x7f21c5ae7f60, local_signal_index=0, argv=0x7fffea641cb0) at
> kernel/qobject.cpp:3186
> #8  0x00007f21c58c7599 in Tasks::constraintsChanged (this=0x27b4890, _t1={i
> = -362537728}) at
> /d/kde/build/4/kdebase/workspace/plasma/applets/tasks/tasks.moc:95
> #9  0x00007f21c58c8ee3 in Tasks::constraintsEvent (this=0x27b4890,
> constraints={i = -362537344}) at
> /d/kde/src/4/kdebase/workspace/plasma/applets/tasks/tasks.cpp:169
> #10 0x00007f21e1bb4433 in Plasma::Applet::flushPendingConstraintsEvents
> (this=0x27b4890) at /d/kde/src/4/kdelibs/plasma/applet.cpp:1163
> #11 0x00007f21e1bb458b in Plasma::Applet::timerEvent (this=0x27b4890,
> event=0x7fffea642860) at /d/kde/src/4/kdelibs/plasma/applet.cpp:2110
>
> (gdb) p *this
> $3 = {_vptr.QGraphicsItem = 0x30a2340, d_ptr = 0x1}
> Ouch. Probably already deleted.
>
> (gdb) up
> #1  0x00007f21de3542e0 in QGraphicsLayoutPrivate::addChildLayoutItem
> (this=0x2c46340, layoutItem=0x4190620) at
> graphicsview/qgraphicslayout_p.cpp:162
> (gdb) p item
> $9 = (class QGraphicsItem *) 0x4197120
>
> Comes from "if (QGraphicsItem *item = layoutItem->graphicsItem()) {"
>
> (gdb) p layoutItem
> $11 = (class QGraphicsLayoutItem *) 0x4190620
> (gdb) p *layoutItem.d_ptr
> warning: can't find linker symbol for virtual table for
> `QGraphicsLayoutItemPrivate' value
> $8 = {_vptr.QGraphicsLayoutItemPrivate = 0x7f21dca5db40, sizePolicy = {data
> = 3701857088}, parent = 0x2c462e0, userSizeHints = {{wd =
> 3.3979969529082241e-316, ht = -1}, {wd = 0, ht = 0}, {wd =
> 1.8733483140837378e-316, ht = 0}, {wd = 0, ht = 0}}, cachedSizeHints = {{wd
> = 0, ht = 4.9406564584124654e-324}, {wd = 0, ht = 0}, {wd = 0, ht = 0}, {wd
> = 4.9406564584124654e-324, ht = 6.9062189363508992e-310}}, cachedConstraint
> = {wd = 6.9062189363508992e-310, ht = -1}, sizeHintCacheDirty = 0, isLayout
> = 0, ownedByLayout = 0, q_ptr = 0x6, geom = {xp = 6.7903865310888714e-313,
> yp = 4.9406564584124654e-324, w = 0, h = 0}, graphicsItem = 0x4197120}
>
> The value of q_ptr in there indicates that layoutItem, too, is already
> deleted.
>
> But the value of layoutItem comes from m_itemPositions in
> TaskItemLayout::layoutItems,
> dunno where to go from there. But obviously that list contains dangling
> pointers.
> I could run plasma in valgrind all day, but, hmm. Not on the laptop ;)
>
> Qt-4.5.2
>
> --
> David Faure, faure at kde.org, sponsored by Qt Software @ Nokia to work on KDE,
> Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
>


More information about the Plasma-devel mailing list