Bug 241758 - Crash when hovering with widget above Quicklaunch widget in panel
Summary: Crash when hovering with widget above Quicklaunch widget in panel
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Unmaintained
Component: widget-quicklaunch (other bugs)
Version First Reported In: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Ingomar Wesp
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-14 19:49 UTC by Daniel Hahler
Modified: 2010-07-02 16:25 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Hahler 2010-06-14 19:49:21 UTC
Application: plasma-desktop (0.3)
KDE Platform Version: 4.4.85 (KDE 4.4.85 (KDE 4.5 Beta2))
Qt Version: 4.7.0
Operating System: Linux 2.6.32-22-generic i686
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
I wanted to add a new widget to my panel, where I've just added the Quicklaunch widget.

Hovering with the widget from the "Add Widgets..." above the Quicklaunch widget made plasma crash.

I've tried it with both the "Show Widget Dashboard" and some other widget, both times the crash is reproducible.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma Workspace (plasma-desktop), signal: Segmentation fault
[Current thread is 1 (Thread 0xb774d720 (LWP 6128))]

Thread 2 (Thread 0xae2edb70 (LWP 6135)):
#0  0x034b4e16 in clock_gettime () from /lib/tls/i686/cmov/librt.so.1
#1  0x09704ceb in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x097db045 in QTimerInfoList::updateCurrentTime (this=0xa56e77c) at kernel/qeventdispatcher_unix.cpp:339
#4  0x097db08a in QTimerInfoList::timerWait (this=0xa56e77c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x097d9128 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xae2ed0ac) at kernel/qeventdispatcher_glib.cpp:136
#6  0x097d91b5 in timerSourcePrepare (source=0x0, timeout=0x34b8ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x034f8aca in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x034f8ee9 in ?? () from /lib/libglib-2.0.so.0
#9  0x034f94b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x097d8f1f in QEventDispatcherGlib::processEvents (this=0xa454ed8, flags=...) at kernel/qeventdispatcher_glib.cpp:414
#11 0x097a91a9 in QEventLoop::processEvents (this=0xae2ed280, flags=) at kernel/qeventloop.cpp:149
#12 0x097a95fa in QEventLoop::exec (this=0xae2ed280, flags=...) at kernel/qeventloop.cpp:201
#13 0x096a6aee in QThread::exec (this=0xa56ae80) at thread/qthread.cpp:490
#14 0x097882eb in QInotifyFileSystemWatcherEngine::run (this=0xa56ae80) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x096a9dc9 in QThreadPrivate::start (arg=0xa56ae80) at thread/qthread_unix.cpp:266
#16 0x00e9296e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#17 0x001dda4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb774d720 (LWP 6128)):
[KCrash Handler]
#7  QGraphicsLayoutItem::effectiveSizeHint (this=0xbff3d89, which=Qt::MinimumSize, constraint=...) at graphicsview/qgraphicslayoutitem.cpp:752
#8  0x09185e76 in QGraphicsLayoutItem::minimumWidth (this=0xb193d78) at /usr/include/qt4/QtGui/qgraphicslayoutitem.h:135
#9  Quicklaunch::IconGridLayout::updateGridParameters (this=0xb193d78) at ../../../../../plasma/generic/applets/quicklaunch/icongridlayout.cpp:268
#10 0x09186242 in Quicklaunch::IconGridLayout::invalidate (this=0xb193d78) at ../../../../../plasma/generic/applets/quicklaunch/icongridlayout.cpp:212
#11 0x09186580 in Quicklaunch::IconGridLayout::moveItem (this=0xb193d78, from=-1, to=2) at ../../../../../plasma/generic/applets/quicklaunch/icongridlayout.cpp:168
#12 0x09183cf1 in Quicklaunch::IconGrid::dragMoveEvent (this=0xc048370, event=0xbfba57e8) at ../../../../../plasma/generic/applets/quicklaunch/icongrid.cpp:390
#13 0x0918383b in Quicklaunch::IconGrid::dragEnterEvent (this=0xc048370, event=0xbfba57e8) at ../../../../../plasma/generic/applets/quicklaunch/icongrid.cpp:332
#14 0x01aef363 in QGraphicsItem::sceneEvent (this=0xc048378, event=0xbfba57e8) at graphicsview/qgraphicsitem.cpp:6693
#15 0x01b44507 in QGraphicsWidget::sceneEvent (this=0xc048370, event=0xbfba57e8) at graphicsview/qgraphicswidget.cpp:1172
#16 0x01b05849 in QGraphicsScenePrivate::sendEvent (this=0xa0d5310, item=0xc048378, event=0xbfba57e8) at graphicsview/qgraphicsscene.cpp:1202
#17 0x01b05c38 in QGraphicsScenePrivate::sendDragDropEvent (this=0xa0d5310, item=0xc048378, dragDropEvent=0xbfba57e8) at graphicsview/qgraphicsscene.cpp:1231
#18 0x01b0c5d5 in QGraphicsScene::dragMoveEvent (this=0x9f738c8, event=0xbfba5d30) at graphicsview/qgraphicsscene.cpp:3643
#19 0x004f32c4 in Plasma::Corona::dragMoveEvent (this=0x9f738c8, event=0xbfba5d30) at ../../plasma/corona.cpp:805
#20 0x01b20dbc in QGraphicsScene::event (this=0x9f738c8, event=0xbfba5d30) at graphicsview/qgraphicsscene.cpp:3372
#21 0x0144732c in QApplicationPrivate::notify_helper (this=0x9f84100, receiver=0x9f738c8, e=0xbfba5d30) at kernel/qapplication.cpp:4358
#22 0x0144e6fe in QApplication::notify (this=0x9f69848, receiver=0x9f738c8, e=0xbfba5d30) at kernel/qapplication.cpp:3762
#23 0x0112f90a in KApplication::notify (this=0x9f69848, receiver=0x9f738c8, event=0xbfba5d30) at ../../kdeui/kernel/kapplication.cpp:302
#24 0x097aa6cb in QCoreApplication::notifyInternal (this=0x9f69848, receiver=0x9f738c8, event=0xbfba5d30) at kernel/qcoreapplication.cpp:732
#25 0x01b3ca79 in QCoreApplication::sendEvent (this=0xa8e5150, event=0xbfba6490) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QGraphicsView::dragMoveEvent (this=0xa8e5150, event=0xbfba6490) at graphicsview/qgraphicsview.cpp:3010
#27 0x014a4da2 in QWidget::event (this=0xa8e5150, event=0xbfba6490) at kernel/qwidget.cpp:8295
#28 0x018bc773 in QFrame::event (this=0xa8e5150, e=0xbfba6490) at widgets/qframe.cpp:557
#29 0x01958e12 in QAbstractScrollArea::viewportEvent (this=0xbfba54e0, e=0x0) at widgets/qabstractscrollarea.cpp:1037
#30 0x01b3bc8b in QGraphicsView::viewportEvent (this=0xa8e5150, event=0xbfba6490) at graphicsview/qgraphicsview.cpp:2858
#31 0x0195b855 in QAbstractScrollAreaPrivate::viewportEvent (this=0xa7b85f0, o=0xa8b1f88, e=0xbfba6490) at widgets/qabstractscrollarea_p.h:100
#32 QAbstractScrollAreaFilter::eventFilter (this=0xa7b85f0, o=0xa8b1f88, e=0xbfba6490) at widgets/qabstractscrollarea_p.h:116
#33 0x097a9e2a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9f84100, receiver=0xa8b1f88, event=0xbfba6490) at kernel/qcoreapplication.cpp:847
#34 0x01447309 in QApplicationPrivate::notify_helper (this=0x9f84100, receiver=0xa8b1f88, e=0xbfba6490) at kernel/qapplication.cpp:4354
#35 0x0144ebdd in QApplication::notify (this=0x9f69848, receiver=0xa8b1f88, e=0xbfba6490) at kernel/qapplication.cpp:4166
#36 0x0112f90a in KApplication::notify (this=0x9f69848, receiver=0xa8b1f88, event=0xbfba6490) at ../../kdeui/kernel/kapplication.cpp:302
#37 0x097aa6cb in QCoreApplication::notifyInternal (this=0x9f69848, receiver=0xa8b1f88, event=0xbfba6490) at kernel/qcoreapplication.cpp:732
#38 0x0145593e in QCoreApplication::sendEvent (receiver=0xa8b1f88, event=0x0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#39 0x014e8ca7 in handle_xdnd_position (w=<value optimized out>, xe=<value optimized out>, passive=false) at kernel/qdnd_x11.cpp:928
#40 0x014ea3ae in QDragManager::move (this=0xbfce860, globalPos=...) at kernel/qdnd_x11.cpp:1649
#41 0x014ed58f in QDragManager::eventFilter (this=0xbfce860, o=0xc78e8f8, e=0xbfba6bf0) at kernel/qdnd_x11.cpp:1287
#42 0x097a9eec in QCoreApplicationPrivate::sendThroughApplicationEventFilters (this=0x9f84100, receiver=0xc78e8f8, event=0xbfba6bf0) at kernel/qcoreapplication.cpp:828
#43 0x014472b3 in QApplicationPrivate::notify_helper (this=0x9f84100, receiver=0xc78e8f8, e=0xbfba6bf0) at kernel/qapplication.cpp:4333
#44 0x0144f097 in QApplication::notify (this=0x9f69848, receiver=0xc78e8f8, e=0xbfba6bf0) at kernel/qapplication.cpp:3923
#45 0x0112f90a in KApplication::notify (this=0x9f69848, receiver=0xc78e8f8, event=0xbfba6bf0) at ../../kdeui/kernel/kapplication.cpp:302
#46 0x097aa6cb in QCoreApplication::notifyInternal (this=0x9f69848, receiver=0xc78e8f8, event=0xbfba6bf0) at kernel/qcoreapplication.cpp:732
#47 0x0144c372 in QCoreApplication::sendEvent (receiver=0xc78e8f8, event=0xbfba6bf0, alienWidget=0x0, nativeWidget=0xc78e8f8, buttonDown=0x1dc0200, lastMouseReceiver=..., spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#48 QApplicationPrivate::sendMouseEvent (receiver=0xc78e8f8, event=0xbfba6bf0, alienWidget=0x0, nativeWidget=0xc78e8f8, buttonDown=0x1dc0200, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3023
#49 0x014da618 in QETWidget::translateMouseEvent (this=0xc78e8f8, event=0xbfba710c) at kernel/qapplication_x11.cpp:4403
#50 0x014d9aa9 in QApplication::x11ProcessEvent (this=0x9f69848, event=0xbfba710c) at kernel/qapplication_x11.cpp:3414
#51 0x0150888a in x11EventSourceDispatch (s=0x9f86eb0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#52 0x034f55e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#53 0x034f92d8 in ?? () from /lib/libglib-2.0.so.0
#54 0x034f94b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#55 0x097d8ee5 in QEventDispatcherGlib::processEvents (this=0x9f83aa0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#56 0x01508105 in QGuiEventDispatcherGlib::processEvents (this=0x9f83aa0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#57 0x097a91a9 in QEventLoop::processEvents (this=0xbfeccd8, flags=) at kernel/qeventloop.cpp:149
#58 0x097a95fa in QEventLoop::exec (this=0xbfeccd8, flags=...) at kernel/qeventloop.cpp:201
#59 0x014edc87 in QDragManager::drag (this=0xbfce860, o=0xc77b0a8) at kernel/qdnd_x11.cpp:1962
#60 0x0145ee7e in QDrag::exec (this=0xc77b0a8, supportedActions=..., defaultDropAction=Qt::IgnoreAction) at kernel/qdrag.cpp:282
#61 0x0145ef34 in QDrag::exec (this=0xc77b0a8, supportedActions=...) at kernel/qdrag.cpp:239
#62 0x002d05bd in Plasma::AbstractIcon::mouseMoveEvent (this=0xbe43718, event=0xbfba7db4) at ../../../libs/plasmagenericshell/abstracticon.cpp:139
#63 0x01aef410 in QGraphicsItem::sceneEvent (this=0xbe43720, event=0xbfba7db4) at graphicsview/qgraphicsitem.cpp:6714
#64 0x01b44507 in QGraphicsWidget::sceneEvent (this=0xbe43718, event=0xbfba7db4) at graphicsview/qgraphicswidget.cpp:1172
#65 0x01b05849 in QGraphicsScenePrivate::sendEvent (this=0xa0d5310, item=0xbe43720, event=0xbfba7db4) at graphicsview/qgraphicsscene.cpp:1202
#66 0x01b07ec3 in QGraphicsScenePrivate::sendMouseEvent (this=0xa0d5310, mouseEvent=0xbfba7db4) at graphicsview/qgraphicsscene.cpp:1276
#67 0x01b0c09d in QGraphicsScene::mouseMoveEvent (this=0x9f738c8, mouseEvent=0xbfba7db4) at graphicsview/qgraphicsscene.cpp:4066
#68 0x01b20f1d in QGraphicsScene::event (this=0x9f738c8, event=0xbfba7db4) at graphicsview/qgraphicsscene.cpp:3420
#69 0x0144732c in QApplicationPrivate::notify_helper (this=0x9f84100, receiver=0x9f738c8, e=0xbfba7db4) at kernel/qapplication.cpp:4358
#70 0x0144e6fe in QApplication::notify (this=0x9f69848, receiver=0x9f738c8, e=0xbfba7db4) at kernel/qapplication.cpp:3762
#71 0x0112f90a in KApplication::notify (this=0x9f69848, receiver=0x9f738c8, event=0xbfba7db4) at ../../kdeui/kernel/kapplication.cpp:302
#72 0x097aa6cb in QCoreApplication::notifyInternal (this=0x9f69848, receiver=0x9f738c8, event=0xbfba7db4) at kernel/qcoreapplication.cpp:732
#73 0x01446eee in QCoreApplication::sendSpontaneousEvent (receiver=0x9f738c8, event=0x0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#74 qt_sendSpontaneousEvent (receiver=0x9f738c8, event=0x0) at kernel/qapplication.cpp:5347
#75 0x01b3e222 in QGraphicsViewPrivate::mouseMoveEventHandler (this=0xbe3f518, event=0xbfba85f0) at graphicsview/qgraphicsview.cpp:647
#76 0x01b3e466 in QGraphicsView::mouseMoveEvent (this=0xbe22440, event=0xbfba85f0) at graphicsview/qgraphicsview.cpp:3268
#77 0x014a4cba in QWidget::event (this=0xbe22440, event=0xbfba85f0) at kernel/qwidget.cpp:8082
#78 0x018bc773 in QFrame::event (this=0xbe22440, e=0xbfba85f0) at widgets/qframe.cpp:557
#79 0x01958e12 in QAbstractScrollArea::viewportEvent (this=0xbfba54e0, e=0x0) at widgets/qabstractscrollarea.cpp:1037
#80 0x01b3bc8b in QGraphicsView::viewportEvent (this=0xbe22440, event=0xbfba85f0) at graphicsview/qgraphicsview.cpp:2858
#81 0x0195b855 in QAbstractScrollAreaPrivate::viewportEvent (this=0xbe27480, o=0xbe2ad60, e=0xbfba85f0) at widgets/qabstractscrollarea_p.h:100
#82 QAbstractScrollAreaFilter::eventFilter (this=0xbe27480, o=0xbe2ad60, e=0xbfba85f0) at widgets/qabstractscrollarea_p.h:116
#83 0x097a9e2a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9f84100, receiver=0xbe2ad60, event=0xbfba85f0) at kernel/qcoreapplication.cpp:847
#84 0x01447309 in QApplicationPrivate::notify_helper (this=0x9f84100, receiver=0xbe2ad60, e=0xbfba85f0) at kernel/qapplication.cpp:4354
#85 0x0144f097 in QApplication::notify (this=0x9f69848, receiver=0xbe2ad60, e=0xbfba85f0) at kernel/qapplication.cpp:3923
#86 0x0112f90a in KApplication::notify (this=0x9f69848, receiver=0xbe2ad60, event=0xbfba85f0) at ../../kdeui/kernel/kapplication.cpp:302
#87 0x097aa6cb in QCoreApplication::notifyInternal (this=0x9f69848, receiver=0xbe2ad60, event=0xbfba85f0) at kernel/qcoreapplication.cpp:732
#88 0x0144c372 in QCoreApplication::sendEvent (receiver=0xbe2ad60, event=0xbfba85f0, alienWidget=0xbe2ad60, nativeWidget=0xbcba280, buttonDown=0x1dc0200, lastMouseReceiver=..., spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#89 QApplicationPrivate::sendMouseEvent (receiver=0xbe2ad60, event=0xbfba85f0, alienWidget=0xbe2ad60, nativeWidget=0xbcba280, buttonDown=0x1dc0200, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3023
#90 0x014da618 in QETWidget::translateMouseEvent (this=0xbcba280, event=0xbfba8b0c) at kernel/qapplication_x11.cpp:4403
#91 0x014d9aa9 in QApplication::x11ProcessEvent (this=0x9f69848, event=0xbfba8b0c) at kernel/qapplication_x11.cpp:3414
#92 0x0150888a in x11EventSourceDispatch (s=0x9f86eb0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#93 0x034f55e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#94 0x034f92d8 in ?? () from /lib/libglib-2.0.so.0
#95 0x034f94b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#96 0x097d8ee5 in QEventDispatcherGlib::processEvents (this=0x9f83aa0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#97 0x01508105 in QGuiEventDispatcherGlib::processEvents (this=0x9f83aa0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#98 0x097a91a9 in QEventLoop::processEvents (this=0xbfba8e04, flags=) at kernel/qeventloop.cpp:149
#99 0x097a95fa in QEventLoop::exec (this=0xbfba8e04, flags=...) at kernel/qeventloop.cpp:201
#100 0x097adbaf in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#101 0x01446157 in QApplication::exec () at kernel/qapplication.cpp:3637
#102 0x003e966e in kdemain (argc=1, argv=0xbfba9014) at ../../../../plasma/desktop/shell/main.cpp:118
#103 0x0804860b in main (argc=1, argv=0xbfba9014) at plasma-desktop_dummy.cpp:3

Reported using DrKonqi
Comment 1 Ingomar Wesp 2010-07-02 15:51:37 UTC
SVN commit 1145315 by iwesp:

Fix a drag&drop related crash due to the incorrect assertion that
QMimeData::hasUrls() implies QMimeData::urls().size > 0.

CCBUG: 241758

 M  +8 -6      branches/KDE/4.5/kdebase/workspace/plasma/generic/applets/quicklaunch/icongrid.cpp  
 M  +8 -6      trunk/KDE/kdebase/workspace/plasma/generic/applets/quicklaunch/icongrid.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1145315
Comment 2 Ingomar Wesp 2010-07-02 16:25:17 UTC
I couldn't reproduce the crash you reported, but I found (and just fixed) a drag&drop related bug that not only leads the applet to accept drop events it shouldn't care for, but can also cause an invalid list dereference.

The fix has been committed to trunk and to the 4.5 branch, so if you've got the time, it would be great if you could test again with RC2 after it is released.

I'm closing the report as RESOLVED/FIXED for now.