Bug 178601 - dragging an extender caused crash
Summary: dragging an extender caused crash
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Unspecified
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 178777 180653 181786 192626 193629 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-12-23 21:44 UTC by Thomas Zander
Modified: 2009-05-22 14:44 UTC (History)
11 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Zander 2008-12-23 21:44:04 UTC
Version:            (using Devel)
Installed from:    Compiled sources

What I did;
I clicked on the power management applet (nested in a panel).
I got a plasma popup (I think they are called extenders) and noted it had a titlebar-kind-of-top.
So I dragged it.  While dragging the extender disappeared but luckily it reappeared quickly again.

I clicked on the title again and started dragging it again at which point plasma crashed.

Application: Plasma Workspace (plasma), signal SIGSEGV
[Current thread is 0 (LWP 9544)]

Thread 3 (Thread 0xa9baeb90 (LWP 9545)):
#0  0xb7f61424 in __kernel_vsyscall ()
#1  0xb6329025 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0xb6397be4 in QWaitConditionPrivate::wait (this=0x88609e0, time=4294967295) at /usr/local/data/qt44/src/corelib/thread/qwaitcondition_unix.cpp:56
#3  0xb63976e3 in QWaitCondition::wait (this=0x88ae1f8, mutex=0x88ae1f4, time=4294967295) at /usr/local/data/qt44/src/corelib/thread/qwaitcondition_unix.cpp:128
#4  0xb792a6f9 in QHostInfoAgent::run (this=0x88ae1e8) at /usr/local/data/qt44/src/network/kernel/qhostinfo.cpp:215
#5  0xb6397188 in QThreadPrivate::start (arg=0x88ae1e8) at /usr/local/data/qt44/src/corelib/thread/qthread_unix.cpp:159
#6  0xb63254c0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#7  0xb618255e in clone () from /lib/i686/cmov/libc.so.6

Thread 2 (Thread 0xa9376b90 (LWP 9549)):
#0  0xb7f61424 in __kernel_vsyscall ()
#1  0xb6329025 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0xb6397be4 in QWaitConditionPrivate::wait (this=0x87fc4b0, time=4294967295) at /usr/local/data/qt44/src/corelib/thread/qwaitcondition_unix.cpp:56
#3  0xb63976e3 in QWaitCondition::wait (this=0x87bd7b8, mutex=0x87bd7b4, time=4294967295) at /usr/local/data/qt44/src/corelib/thread/qwaitcondition_unix.cpp:128
#4  0xa9bfb76a in RenderThread::run () from /usr/local/kde/lib/kde4/plasma_wallpaper_image.so
#5  0xb6397188 in QThreadPrivate::start (arg=0x87bd7ac) at /usr/local/data/qt44/src/corelib/thread/qthread_unix.cpp:159
#6  0xb63254c0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#7  0xb618255e in clone () from /lib/i686/cmov/libc.so.6

Thread 1 (Thread 0xb4ffc700 (LWP 9544)):
[KCrash Handler]
#6  0xb7e598af in QObject::parent (this=0x940a128) at ../../../../include/QtCore/../../../../../qt44/src/corelib/kernel/qobject.h:212
#7  0xb7e59f7f in QWidget::parentWidget (this=0x940a128) at ../../../../include/QtGui/../../../../../qt44/src/gui/kernel/qwidget.h:952
#8  0xb6eb0b53 in QGraphicsScenePrivate::itemsAtPosition (this=0x85c2278, screenPos=@0xbfa7b974, scenePos=@0xbfa7b960, widget=0x940a128)
    at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsscene.cpp:893
#9  0xb6eb10a8 in QGraphicsScenePrivate::dispatchHoverEvent (this=0x85c2278, hoverEvent=0xbfa7b9d4) at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsscene.cpp:3349
#10 0xb6eb5255 in QGraphicsScene::mouseReleaseEvent (this=0x861f9a8, mouseEvent=0xbfa7bf3c) at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsscene.cpp:3591
#11 0xb6eb1633 in QGraphicsScene::event (this=0x861f9a8, event=0xbfa7bf3c) at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsscene.cpp:2944
#12 0xb67ea207 in QApplicationPrivate::notify_helper (this=0x85bbfd8, receiver=0x861f9a8, e=0xbfa7bf3c) at /usr/local/data/qt44/src/gui/kernel/qapplication.cpp:3778
#13 0xb67ea51c in QApplication::notify (this=0x85b1138, receiver=0x861f9a8, e=0xbfa7bf3c) at /usr/local/data/qt44/src/gui/kernel/qapplication.cpp:3368
#14 0xb76f149d in KApplication::notify () from /usr/local/kde/lib/libkdeui.so.5
#15 0xb64aa7d7 in QCoreApplication::notifyInternal (this=0x85b1138, receiver=0x861f9a8, event=0xbfa7bf3c) at /usr/local/data/qt44/src/corelib/kernel/qcoreapplication.cpp:561
#16 0xb67e6e55 in QCoreApplication::sendEvent (receiver=0x861f9a8, event=0xbfa7bf3c) at ../../include/QtCore/../../../../../qt44/src/corelib/kernel/qcoreapplication.h:183
#17 0xb6ec9661 in QGraphicsView::mouseReleaseEvent (this=0x946a008, event=0xbfa7c784) at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsview.cpp:2783
#18 0xb6855781 in QWidget::event (this=0x946a008, event=0xbfa7c784) at /usr/local/data/qt44/src/gui/kernel/qwidget.cpp:7142
#19 0xb6c4eaf4 in QFrame::event (this=0x946a008, e=0xbfa7c784) at /usr/local/data/qt44/src/gui/widgets/qframe.cpp:625
#20 0xb6cfe161 in QAbstractScrollArea::viewportEvent (this=0x946a008, e=0xbfa7c784) at /usr/local/data/qt44/src/gui/widgets/qabstractscrollarea.cpp:917
#21 0xb6ec2881 in QGraphicsView::viewportEvent (this=0x946a008, event=0xbfa7c784) at /usr/local/data/qt44/src/gui/graphicsview/qgraphicsview.cpp:2311
#22 0xb6d01288 in QAbstractScrollAreaPrivate::viewportEvent (this=0x93c76d0, event=0xbfa7c784) at /usr/local/data/qt44/src/gui/widgets/qabstractscrollarea_p.h:70
#23 0xb6d012b6 in QAbstractScrollAreaFilter::eventFilter (this=0x93da088, o=0x940a128, e=0xbfa7c784) at /usr/local/data/qt44/src/gui/widgets/qabstractscrollarea_p.h:81
#24 0xb64a82f8 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x85bbfd8, receiver=0x940a128, event=0xbfa7c784) at /usr/local/data/qt44/src/corelib/kernel/qcoreapplication.cpp:675
#25 0xb67ea1e4 in QApplicationPrivate::notify_helper (this=0x85bbfd8, receiver=0x940a128, e=0xbfa7c784) at /usr/local/data/qt44/src/gui/kernel/qapplication.cpp:3774
#26 0xb67eadc5 in QApplication::notify (this=0x85b1138, receiver=0x940a128, e=0xbfa7c784) at /usr/local/data/qt44/src/gui/kernel/qapplication.cpp:3503
#27 0xb76f149d in KApplication::notify () from /usr/local/kde/lib/libkdeui.so.5
#28 0xb64aa7d7 in QCoreApplication::notifyInternal (this=0x85b1138, receiver=0x940a128, event=0xbfa7c784) at /usr/local/data/qt44/src/corelib/kernel/qcoreapplication.cpp:561
#29 0xb67f858f in QCoreApplication::sendSpontaneousEvent (receiver=0x940a128, event=0xbfa7c784) at ../../include/QtCore/../../../../../qt44/src/corelib/kernel/qcoreapplication.h:186
#30 0xb67ef623 in QApplicationPrivate::sendMouseEvent (receiver=0x940a128, event=0xbfa7c784, alienWidget=0x940a128, nativeWidget=0x946a008, buttonDown=0xb712c8e0, lastMouseReceiver=@0xb712c8e4)
    at /usr/local/data/qt44/src/gui/kernel/qapplication.cpp:2768
#31 0xb687cda6 in QETWidget::translateMouseEvent (this=0x946a008, event=0xbfa7ccb0) at /usr/local/data/qt44/src/gui/kernel/qapplication_x11.cpp:4021
#32 0xb687dc70 in QApplication::x11ProcessEvent (this=0x85b1138, event=0xbfa7ccb0) at /usr/local/data/qt44/src/gui/kernel/qapplication_x11.cpp:3016
#33 0xb68abe50 in x11EventSourceDispatch (s=0x85c30d0, callback=0, user_data=0x0) at /usr/local/data/qt44/src/gui/kernel/qguieventdispatcher_glib.cpp:116
#34 0xb53912e1 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0xb5394973 in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x085c0c98 in ?? ()
#37 0x00000000 in ?? ()
Comment 1 Beat Wolf 2008-12-23 21:50:40 UTC
What version of qt do you use? because this looks like an already patched bug of QT
Comment 2 Thomas Zander 2008-12-23 21:58:08 UTC
I'm using Qt 4.4, snapshot (I think I updated yesterday)
Comment 3 Marco Martin 2008-12-24 11:33:46 UTC
either with qt-copy patches or a snapshot of 4.4.4?
Comment 4 Thomas Zander 2008-12-24 12:05:33 UTC
I don't have any patches.  Just the plain QtSoftware repo of Qt4.4 branch.
Are you saying that this is a Qt bug and that there is a patch available?

Oh, maybe you are looking at the line numbers in my backtrace; they are offset some 30 lines due to me having a different license header in the files :(

Comment 5 Marco Martin 2008-12-24 14:04:22 UTC
Thomas: yes, it -could- be the thing fixed in patch 0260 of qt-copy, but looking again at the backtrace i'm not really sure...
Comment 6 Aaron J. Seigo 2008-12-25 09:19:53 UTC
i can reproduce this one; it appears there's something rather odd with the dragging of extenders, particularly if one moves the mouse too fast (easier to replicate with desktop effects on it seems)
Comment 7 Rob Scheepmaker 2008-12-25 11:46:18 UTC
Ah, a fast moving mouse, so that's the trick to reproducing this. Now I can reproduce the problem myself: apparently moving the mouse very fast causes the item to stay at the same place. Releasing the mouse and initiating a new drag seems to cause the crash, while keeping the button pressed and moving the mouse back, and then slowly 'picking up' the item again doesn't crash plasma. I wonder if mouseMoveEvent even gets called in this situation.
That still keeps the problem that for some people, moving the item off screen and opening a top level view on it takes some time making it look like it disappeared for a short while. For me this only takes a fraction of a second, but this needs to be faster. I'll going to do some valgrind profiling to see if there are any unnecessary function calls that can be removed or results that can be cached.
I'm with my parents now for christmas and whatnot. I'll investigate this further next friday. I love it when people discover the steps to reproduce bugs :), apparently I'm not that quick usually when moving the mouse.
Comment 8 Beat Wolf 2008-12-25 14:25:27 UTC
related bug:
http://bugs.kde.org/show_bug.cgi?id=178729
Comment 9 Aaron J. Seigo 2008-12-26 20:55:42 UTC
*** Bug 178777 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2009-01-02 19:51:26 UTC
Bug 179405 seems to have a similar backtrace.
Comment 11 Sebastian Kratzert 2009-01-08 10:59:25 UTC
I can reproduce this with 
kdebase4-workspace-4.1.87-5.1 from OpenSUSE KDE4:UNSTABLE and
libqt4-4.4.3-29.1 from KDE:/Qt/openSUSE_11.1/

My backtrace looks like this:
Thread 1 (Thread 0xb5163700 (LWP 25769)):
[KCrash Handler]
#6  0xb6d9e256 in QGraphicsScenePrivate::itemsAtPosition (this=0x8071078, screenPos=@0xbf7fcac4, scenePos=@0xbf7fcab0, widget=0x8583d28) at ../../src/corelib/kernel/qobject.h:438
#7  0xb6d9eb17 in QGraphicsScenePrivate::dispatchHoverEvent (this=0x8071078, hoverEvent=0xbf7fcb28) at graphicsview/qgraphicsscene.cpp:3371
#8  0xb6d9ec75 in QGraphicsScene::mouseReleaseEvent (this=0x8064638, mouseEvent=0xbf7fcf74) at graphicsview/qgraphicsscene.cpp:3613
#9  0xb6d9ef67 in QGraphicsScene::event (this=0x8064638, event=0xbf7fcf74) at graphicsview/qgraphicsscene.cpp:2966
#10 0xb67fc8fc in QApplicationPrivate::notify_helper (this=0x806e7a0, receiver=0x8064638, e=0xbf7fcf74) at kernel/qapplication.cpp:3803
#11 0xb680475e in QApplication::notify (this=0x805f900, receiver=0x8064638, e=0xbf7fcf74) at kernel/qapplication.cpp:3393
#12 0xb75e292d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#13 0xb658c961 in QCoreApplication::notifyInternal (this=0x805f900, receiver=0x8064638, event=0xbf7fcf74) at kernel/qcoreapplication.cpp:587
#14 0xb6db3392 in QGraphicsView::mouseReleaseEvent (this=0x85791a8, event=0xbf7fd588) at ../../src/corelib/kernel/qcoreapplication.h:209
#15 0xb6854a62 in QWidget::event (this=0x85791a8, event=0xbf7fd588) at kernel/qwidget.cpp:7163
#16 0xb6b8aac3 in QFrame::event (this=0x85791a8, e=0xbf7fd588) at widgets/qframe.cpp:651
#17 0xb6c211ff in QAbstractScrollArea::viewportEvent (this=0x85791a8, e=0x8583d28) at widgets/qabstractscrollarea.cpp:943
#18 0xb6dae4df in QGraphicsView::viewportEvent (this=0x85791a8, event=0xbf7fd588) at graphicsview/qgraphicsview.cpp:2337
#19 0xb6c237a5 in QAbstractScrollAreaFilter::eventFilter (this=0x8598ed8, o=0x8583d28, e=0xbf7fd588) at widgets/qabstractscrollarea_p.h:96
#20 0xb658bb3a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x806e7a0, receiver=0x8583d28, event=0xbf7fd588) at kernel/qcoreapplication.cpp:694
#21 0xb67fc8da in QApplicationPrivate::notify_helper (this=0x806e7a0, receiver=0x8583d28, e=0xbf7fd588) at kernel/qapplication.cpp:3799
#22 0xb6805111 in QApplication::notify (this=0x805f900, receiver=0x8583d28, e=0xbf7fd588) at kernel/qapplication.cpp:3528
#23 0xb75e292d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#24 0xb658c961 in QCoreApplication::notifyInternal (this=0x805f900, receiver=0x8583d28, event=0xbf7fd588) at kernel/qcoreapplication.cpp:587
#25 0xb680439e in QApplicationPrivate::sendMouseEvent (receiver=0x8583d28, event=0xbf7fd588, alienWidget=0x8583d28, nativeWidget=0x85791a8, buttonDown=0xb6fc8cb0, lastMouseReceiver=@0xb6fc8cb4)
    at ../../src/corelib/kernel/qcoreapplication.h:212
#26 0xb686e746 in QETWidget::translateMouseEvent (this=0x85791a8, event=0xbf7fdb6c) at kernel/qapplication_x11.cpp:4042
#27 0xb686daf5 in QApplication::x11ProcessEvent (this=0x805f900, event=0xbf7fdb6c) at kernel/qapplication_x11.cpp:3038
#28 0xb68960ba in x11EventSourceDispatch (s=0x8071ae8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#29 0xb55739a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0xb5577063 in ?? () from /usr/lib/libglib-2.0.so.0
#31 0xb5577221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#32 0xb65b6fb8 in QEventDispatcherGlib::processEvents (this=0x8061a18, flags={i = -1082139352}) at kernel/qeventdispatcher_glib.cpp:319
#33 0xb68957b5 in QGuiEventDispatcherGlib::processEvents (this=0x8061a18, flags={i = -1082139304}) at kernel/qguieventdispatcher_glib.cpp:198
#34 0xb658b01a in QEventLoop::processEvents (this=0xbf7fddd0, flags={i = -1082139240}) at kernel/qeventloop.cpp:143
#35 0xb658b1da in QEventLoop::exec (this=0xbf7fddd0, flags={i = -1082139176}) at kernel/qeventloop.cpp:194
#36 0xb658d895 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#37 0xb67fc777 in QApplication::exec () at kernel/qapplication.cpp:3331
#38 0xb7e83296 in kdemain (argc=1, argv=0xbf7fdf84) at /usr/src/debug/kdebase-workspace-4.1.87/plasma/shells/desktop/main.cpp:54
#39 0x08048782 in main (argc=6644797, argv=0xa4) at /usr/src/debug/kdebase-workspace-4.1.87/build/plasma/shells/desktop/plasma_qgv_dummy.cpp:3
Comment 12 Alec Moskvin 2009-01-16 21:04:20 UTC
This still happens in RC1 if the widgets are unlocked (if you use the steps I described in Bug 178777)
Comment 13 Dario Andres 2009-01-17 00:53:21 UTC
Also reproducible using:

Qt: 4.4.3 + qt-copy-patches-910240
KDE: 4.2.60 (KDE 4.2.60 (KDE 4.3 >= 20090106))
kdelibs svn rev. 911862 / kdebase svn rev. 911862
on ArchLinux x86_64 - Kernel 2.6.28
Comment 14 Dario Andres 2009-02-21 02:11:55 UTC
*** Bug 181786 has been marked as a duplicate of this bug. ***
Comment 15 Dario Andres 2009-02-21 02:12:05 UTC
*** Bug 180653 has been marked as a duplicate of this bug. ***
Comment 16 Aaron J. Seigo 2009-02-24 09:25:17 UTC
this is fixed in trunk as Rob changed how the dragging is done now.
Comment 17 Albert Astals Cid 2009-02-24 12:26:36 UTC
Any chance to get it into stable? Or at least make them non movable, that titlebar makes me want to move it each time i see it.
Comment 18 Rob Scheepmaker 2009-02-24 17:12:34 UTC
The change in behavior is quite invasive: it's a huge patch, so I don't feel comfortable backporting to stable. As for making them non movable: it's a corner case in which this crash occurs (only when moving the LAST item over another window), it wouldn't be fair to completely remove this functionality for the people who use this feature without problems.
Comment 19 Aaron J. Seigo 2009-02-24 19:44:39 UTC
+1 to Rob's analysis.
Comment 20 Albert Astals Cid 2009-02-24 23:28:08 UTC
I disagree with it being a corner case, each and every time i've tried to move a notification my plasma has crashed.
Comment 21 Rob Scheepmaker 2009-02-24 23:59:09 UTC
@Albert: then you are suffering from a different problem then this bug. This is about the item losing mouse events when moving over another window after the popup has hidden, and crashing if you click them again after having lost those events. Do you by any change not have qt-copy with patches applied? Could you else open up a new bugreport with the backtrace?
Comment 22 Albert Astals Cid 2009-02-25 00:16:46 UTC
My backtrace is on comment #4 of bug 181786 that someone closed as duplicate of this one
Comment 23 Dario Andres 2009-02-25 00:33:22 UTC
Oops, my fault
Comment 24 Jonathan Thomas 2009-05-14 20:58:41 UTC
*** Bug 192626 has been marked as a duplicate of this bug. ***
Comment 25 Aaron J. Seigo 2009-05-14 22:28:54 UTC
*** Bug 181786 has been marked as a duplicate of this bug. ***
Comment 26 Dario Andres 2009-05-22 14:44:55 UTC
*** Bug 193629 has been marked as a duplicate of this bug. ***