Bug 219194

Summary: [steps] Removing from the desktop a empty extender-container (which was previously dragged from the panel) crashes Plasma [Plasma::ExtenderItem::returnToSource, ~ExtenderApplet, QObject::event]
Product: [Unmaintained] plasma4 Reporter: Carth Onasi <Carth_Onasi>
Component: notificationsAssignee: Rob Scheepmaker <rob>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, aseigo, benderamp, ComputerDruid, dima, johann-nikolaus, knopper67, notmart, patrick.noffke, plasma-bugs, shaunehunter, wike.svk, zac
Priority: NOR Keywords: testcase
Version: unspecified   
Target Milestone: ---   
Platform: Mandriva RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Carth Onasi 2009-12-18 15:54:38 UTC
Application: plasma-desktop (0.3)
KDE Platform Version: 4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1))
Qt Version: 4.6.0
Operating System: Linux 2.6.32.1-desktop-1mnb x86_64
Distribution: "Mandriva Linux 2010.0"

-- Information about the crash:
Click on clock, grab Calendar on Desktop, put widget under Notes widget and other widget (Now playing...), Calendar widget changed to Collection widget, close Collection widget ->Plasma crash. 

 -- Backtrace:
Application: Pracovní plocha Plasma (kdeinit4), signal: Segmentation fault
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f7b206d0720 (LWP 2927))]

Thread 2 (Thread 0x7f7afd102710 (LWP 2961)):
#0  0x00007f7b1fe6d0bc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f7b200f21db in QWaitCondition::wait (this=<value optimized out>, mutex=0x19f6ab8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f7b1c42b8bc in QHostInfoAgent::run (this=0x19f6aa0) at kernel/qhostinfo.cpp:252
#3  0x00007f7b200f1225 in QThreadPrivate::start (arg=0x19f6aa0) at thread/qthread_unix.cpp:244
#4  0x00007f7b1fe68a5d in start_thread () from /lib64/libpthread.so.0
#5  0x00007f7b1d72a0dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f7b206d0720 (LWP 2927)):
[KCrash Handler]
#5  0x00007f7b179763a1 in Plasma::ExtenderItem::returnToSource (this=0x1b9e930) at /usr/src/debug/kdelibs-4.3.80/plasma/extenders/extenderitem.cpp:463
#6  0x00007f7b17995215 in ~ExtenderApplet (this=0x28d8a00) at /usr/src/debug/kdelibs-4.3.80/plasma/private/extenderapplet.cpp:42
#7  0x00007f7b201f412d in QObject::event (this=0x28d8a00, e=0x2902a00) at kernel/qobject.cpp:1235
#8  0x00007f7b1e4af22b in QGraphicsWidget::event (this=0x28d8a00, event=0x2902a00) at graphicsview/qgraphicswidget.cpp:1362
#9  0x00007f7b1de7242c in QApplicationPrivate::notify_helper (this=0xba1a50, receiver=0x28d8a00, e=0x2902a00) at kernel/qapplication.cpp:4242
#10 0x00007f7b1de78a4d in QApplication::notify (this=0xb89fa0, receiver=0x28d8a00, e=0x2902a00) at kernel/qapplication.cpp:4125
#11 0x00007f7b1eb5c956 in KApplication::notify (this=0xb89fa0, receiver=0x28d8a00, event=0x2902a00) at /usr/src/debug/kdelibs-4.3.80/kdeui/kernel/kapplication.cpp:302
#12 0x00007f7b201e445c in QCoreApplication::notifyInternal (this=0xb89fa0, receiver=0x28d8a00, event=0x2902a00) at kernel/qcoreapplication.cpp:704
#13 0x00007f7b201e6bd7 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0xb1e850) at kernel/qcoreapplication.h:215
#14 0x00007f7b2020ded3 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:220
#15 0x00007f7b1cb9d65e in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#16 0x00007f7b1cba1028 in ?? () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f7b1cba1150 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f7b2020da13 in QEventDispatcherGlib::processEvents (this=0xba14a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:407
#19 0x00007f7b1df1f68e in QGuiEventDispatcherGlib::processEvents (this=0x1b9e930, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#20 0x00007f7b201e2d82 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#21 0x00007f7b201e315c in QEventLoop::exec (this=0x7fff9a4137d0, flags=) at kernel/qeventloop.cpp:201
#22 0x00007f7b201e6e9b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#23 0x00007f7b120059d2 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.80/plasma/desktop/shell/main.cpp:112
#24 0x0000000000406aa8 in launch (argc=1, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=0, envs=<value optimized out>, reset_env=false, tty=0x0, 
    avoid_loops=false, startup_id_str=0x40a005 "0") at /usr/src/debug/kdelibs-4.3.80/kinit/kinit.cpp:705
#25 0x00000000004077a0 in handle_launcher_request (sock=7, who=<value optimized out>) at /usr/src/debug/kdelibs-4.3.80/kinit/kinit.cpp:1197
#26 0x0000000000407d2f in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.3.80/kinit/kinit.cpp:1390
#27 0x000000000040893a in main (argc=2, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/kdelibs-4.3.80/kinit/kinit.cpp:1825

Possible duplicates by query: bug 210739.

Reported using DrKonqi
Comment 1 Dario Andres 2009-12-18 17:28:18 UTC
*** Bug 210739 has been marked as a duplicate of this bug. ***
Comment 2 Dario Andres 2009-12-18 18:02:48 UTC
- Can you reproduce this crash at will ?
I have been tried to reproduce it with your steps but I failed.

Here using:

Qt: 4.6.0 (kde-qt master commit 747ff8e6ef6f5a1163dfa75bc9ac4755ce7083d1
        Date:   Tue Dec 15 11:58:13 2009 +0100)
KDE Development Platform: 4.3.82 (KDE 4.3.82 (KDE 4.4 >= 20091211))
kdelibs svn rev. 1063229 / kdebase svn rev. 1063229
on ArchLinux i686 - Kernel 2.6.31.6

(Note that some of the times I got bug 210146 (same bt), but now that kde-qt includes the fix, I don't get crashes at all)
Comment 3 Carth Onasi 2009-12-18 21:35:15 UTC
Yes, it is crashed every time, when I tried and restart KDE.
After crash, Calendar is not available, until you delete Digital Clock widget and add new one.
But my version is Beta1 (4.3.80) from Mandriva repositories, so it can be already fixed in svn (I am waiting for Beta2 or RC to try).

Using:
Desktop View (not Folder View).
Comment 4 Dario Andres 2009-12-20 00:12:57 UTC
*** Bug 219371 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2009-12-20 00:17:59 UTC
I managed to reproduce the issue here using:

Qt: 4.6.0 (kde-qt master commit 747ff8e6ef6f5a1163dfa75bc9ac4755ce7083d1
        Date:   Tue Dec 15 11:58:13 2009 +0100)
KDE Development Platform: 4.3.82 (KDE 4.3.82 (KDE 4.4 >= 20091211))
kdelibs svn rev. 1063229 / kdebase svn rev. 1063229
on ArchLinux i686 - Kernel 2.6.31.6

Steps to reproduce:
---

- Unlock your Plasma widgets
- Run "kdialog --passivepopup foobar 20" from Konsole (or force any other "lengthy" passive notification to appear)
A notification appears in the systray
- Drag that notification (from its title) to the desktop
The notification appears into the desktop, no errors yet.
- Drag the same notification (using its title) to a different location into the desktop
The notification is moved but ~its content is erased~...
- Remove this empty extender container using the remove button in the applet handle.
Plasma crashes.

Backtrace:
---
#0  0xb79f6b41 in Plasma::ExtenderItem::returnToSource (this=0x8e802c8)
    at /home/kde-devel/kde/src/KDE/kdelibs/plasma/extenders/extenderitem.cpp:463
No locals.
#1  0xb7a18a6c in ~ExtenderApplet (this=0x8eb9e00, __in_chrg=<value optimized out>)
    at /home/kde-devel/kde/src/KDE/kdelibs/plasma/private/extenderapplet.cpp:42
        _container_ = {c = {{p = {static shared_null = {ref = {_q_value = 54574}, alloc = 0, begin = 0, end = 0,
                  sharable = 1, array = {0x0}}, d = 0x8ec8c90}, d = 0x8ec8c90}}, brk = 0, i = {i = 0x8ec8ca4}, e = {
            i = 0x8ec8ca8}}
#2  0xb5c490a8 in qDeleteInEventHandler (o=0x8eb9e00) at kernel/qobject.cpp:4021
No locals.
#3  0xb5c43b0c in QObject::event (this=0x8eb9e00, e=0x8eb8328) at kernel/qobject.cpp:1243
No locals.
Comment 6 Dario Andres 2009-12-20 00:21:25 UTC
It seems that this also happens if using other extenders (the Calendar in the clock widget, or the one in the Battery widget)
Comment 7 ComputerDruid 2010-01-03 23:13:34 UTC
Created attachment 39537 [details]
New crash information added by DrKonqi

Crashed when performing the "steps to reproduce". (Although I did this by accident and found this bug just now)
Comment 8 Aaron J. Seigo 2010-02-10 09:38:19 UTC
*** Bug 226008 has been marked as a duplicate of this bug. ***
Comment 9 Aaron J. Seigo 2010-02-10 09:38:22 UTC
*** Bug 225143 has been marked as a duplicate of this bug. ***
Comment 10 Aaron J. Seigo 2010-02-10 09:43:14 UTC
SVN commit 1088121 by aseigo:

catch extender deletion when they are still extender items
BUG:219194


 M  +2 -3      extenders/extender.cpp  
 M  +1 -1      extenders/extender.h  
 M  +1 -0      extenders/extenderitem.cpp  
 M  +7 -0      extenders/extenderitem.h  
 M  +1 -1      private/extender_p.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1088121
Comment 11 Dario Andres 2010-02-17 19:23:41 UTC
@Aaron: was this backported to 4.4 ? Regards
Comment 12 Aaron J. Seigo 2010-02-17 19:31:24 UTC
yes: http://websvn.kde.org/?revision=1088123&view=revision
Comment 13 Dario Andres 2010-02-19 14:25:47 UTC
*** Bug 227615 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2010-02-19 14:25:49 UTC
*** Bug 227297 has been marked as a duplicate of this bug. ***
Comment 15 Dario Andres 2010-02-22 13:12:20 UTC
*** Bug 228034 has been marked as a duplicate of this bug. ***
Comment 16 Dario Andres 2010-02-27 14:26:29 UTC
*** Bug 228681 has been marked as a duplicate of this bug. ***
Comment 17 Dario Andres 2010-02-27 14:41:55 UTC
*** Bug 228681 has been marked as a duplicate of this bug. ***
Comment 18 Dario Andres 2010-02-27 20:32:55 UTC
*** Bug 228794 has been marked as a duplicate of this bug. ***