Bug 165051

Summary: Locking Plasmoids Causes Them To Not Be Saved
Product: [Unmaintained] plasma4 Reporter: Jay LaCroix <jay>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: alex.merry, jay
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jay LaCroix 2008-06-26 23:08:26 UTC
Version:            (using KDE 4.0.83)
Installed from:    Ubuntu Packages
OS:                Linux

In KDE 4.1 Beta 2, locking the plasmoids on the desktop causes them to not be remembered the next time you log in.

For example, say I have a folder view plasmoid and I add another one. I then lock the plasmoids so I don't accidentally move them. The next time I log in, it doesn't remember that I added another folder view and it's gone.

However, if I were to add the second folder view and NOT lock the plasmoids, the next time I log in, my configuration would be remembered and I'd still have the second folder view plasmoid. After I log in again, if I lock the plasmoids, it won't affect anything.

Steps to reproduce:

1.) Add a plasmoid to the desktop, for example a clock.
2.) Right click the desktop and lock the widgets.
3.) Log out and back in, the clock is removed from your desktop.

Steps to NOT reproduce:

1.) Add the clock or whatever other plasmoid to your desktop.
2.) Log out and back in WITHOUT locking your widgets.
3.) The clock or whatever widget you added is still there as intended.
4.) From this point forward you can lock your widgets and you're existing ones won't go away until you add another one then this all repeats.
Comment 1 Aaron J. Seigo 2008-06-26 23:34:03 UTC
hm.. this works here.

can you duplicate your steps, but instead of logging out call `kquitapp plasma` from a konsole window?
Comment 2 Jay LaCroix 2008-06-27 01:22:08 UTC
I did as you asked and it did not reproduce the problem.

However, I deleted my .kde and .kde4 folders to start a vanilla
configuration, then I added some plasmoids to my desktop. Then, I locked the
widgets and chose shut down instead of log off, and that did reproduce the
problem. However, this time I got a message that Plasma had crashed. (I
didn't get that message before).

I did the steps above again and was able to reproduce it the second time.

That was on my Desktop. I'm going to do this on my laptop and see if it has
the same issue.

On Thu, Jun 26, 2008 at 5:34 PM, Aaron J. Seigo <aseigo@kde.org> wrote:

[bugs.kde.org quoted mail]
I did as you asked and it did not reproduce the problem.<br><br>However, I deleted my .kde and .kde4 folders to start a vanilla configuration, then I added some plasmoids to my desktop. Then, I locked the widgets and chose shut down instead of log off, and that did reproduce the problem. However, this time I got a message that Plasma had crashed. (I didn&#39;t get that message before).<br>
<br>I did the steps above again and was able to reproduce it the second time.<br><br>That was on my Desktop. I&#39;m going to do this on my laptop and see if it has the same issue.<br><br><div class="gmail_quote">On Thu, Jun 26, 2008 at 5:34 PM, Aaron J. Seigo &lt;<a href="mailto:aseigo@kde.org">aseigo@kde.org</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">------- You are receiving this mail because: -------<br>
You reported the bug, or are watching the reporter.<br>
<br>
<a href="http://bugs.kde.org/show_bug.cgi?id=165051" target="_blank">http://bugs.kde.org/show_bug.cgi?id=165051</a><br>
<br>
<br>
<br>
<br>
------- Additional Comments From aseigo kde org &nbsp;2008-06-26 23:34 -------<br>
hm.. this works here.<br>
<br>
can you duplicate your steps, but instead of logging out call `kquitapp plasma` from a konsole window?<br>
</blockquote></div><br>
Comment 3 Jay LaCroix 2008-06-27 01:37:17 UTC
I did the same thing on my laptop and wasn't able to reproduce it.

What I think is going on is on exiting KDE4.1 when it's supposed to be
saving your desktop configuration plasma crashes instead.

To summarize, this happens all the time on my desktop and my laptop it
happened yesterday (just once) but I never seen a crash message until today.


On Thu, Jun 26, 2008 at 5:34 PM, Aaron J. Seigo <aseigo@kde.org> wrote:

[bugs.kde.org quoted mail]
I did the same thing on my laptop and wasn&#39;t able to reproduce it.<br><br>What I think is going on is on exiting KDE4.1 when it&#39;s supposed to be saving your desktop configuration plasma crashes instead.<br><br>To summarize, this happens all the time on my desktop and my laptop it happened yesterday (just once) but I never seen a crash message until today. <br>
<br><div class="gmail_quote">On Thu, Jun 26, 2008 at 5:34 PM, Aaron J. Seigo &lt;<a href="mailto:aseigo@kde.org">aseigo@kde.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
------- You are receiving this mail because: -------<br>
You reported the bug, or are watching the reporter.<br>
<br>
<a href="http://bugs.kde.org/show_bug.cgi?id=165051" target="_blank">http://bugs.kde.org/show_bug.cgi?id=165051</a><br>
<br>
<br>
<br>
<br>
------- Additional Comments From aseigo kde org &nbsp;2008-06-26 23:34 -------<br>
hm.. this works here.<br>
<br>
can you duplicate your steps, but instead of logging out call `kquitapp plasma` from a konsole window?<br>
</blockquote></div><br>
Comment 4 Alex Merry 2008-08-08 18:22:07 UTC
Do you still get this with 4.1 final?
Comment 5 Jay LaCroix 2008-08-08 20:57:46 UTC
Yes, I still get this problem in 4.1. It seems to only happen the first 
few times logging in and logging out.

Alex Merry wrote:
[bugs.kde.org quoted mail]
Comment 6 Alex Merry 2008-08-21 00:56:15 UTC
There's not much we can do without a backtrace, I'm afraid.

You can get this by switching to a VT (CTRL+ALT+F1) and logging in, then running
gdb --pid=`pidof plasma` | tee plasma-gdb.log
(assuming you have only one KDE 4 session running - otherwise you'll have to find out the PID of the right plasma desktop and replace `pidof plasma` with it).

Now try to reproduce the problem (you can switch back with CTRL+ALT+F7), and if plasma is crashing, then the crash should register in gdb, and you can use the "bt" command to get a backtrace.
Comment 7 Alex Merry 2008-08-22 13:49:10 UTC
Jeremy sent this directly to me, rather than to the bug, by mistake:


Sorry for the late reply.

I added and switched around the plasmoids and didn't lock the widgets. I
logged out and back in and everything was fine.

Then, I logged back in and added and removed random plasmoids and this time
I did lock the widgets. I logged out, and plasma crashed and gave me a
backtrace which I hope is the one you need. The backtrace I got didn't
register with the commands you had me execute though.

I've attached the backtrace to this message and I hope you find it helpful.


[KCrash handler]
#5  0x0000000000700a10 in ?? ()
#6  0x00007fc8d64a7339 in QGraphicsWidget::event ()
   from /usr/lib/libQtGui.so.4
#7  0x00007fc8d5f5e54f in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#8  0x00007fc8d5f63125 in QApplication::notify () from /usr/lib/libQtGui.so.4
#9  0x00007fc8d7ad1bd1 in KApplication::notify ()
   from /usr/lib/kde4/lib/libkdeui.so.5
#10 0x00007fc8d71bb109 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#11 0x00007fc8d64a863f in QGraphicsWidget::sceneEvent ()
   from /usr/lib/libQtGui.so.4
#12 0x00007fc8d64823d1 in ?? () from /usr/lib/libQtGui.so.4
#13 0x00007fc8d6482d51 in QGraphicsScene::setFocusItem ()
   from /usr/lib/libQtGui.so.4
#14 0x00007fc8d64a5dc8 in QGraphicsWidget::~QGraphicsWidget ()
   from /usr/lib/libQtGui.so.4
#15 0x00007fc8cbb480e9 in ?? ()
   from /usr/lib/kde4/lib/kde4/plasma_containment_panel.so
#16 0x00007fc8d7f76a56 in ?? () from /usr/lib/kde4/lib/libplasma.so.2
#17 0x00007fc8d7f76b5c in ?? () from /usr/lib/kde4/lib/libplasma.so.2
#18 0x00007fc8d7f772ad in ?? () from /usr/lib/kde4/lib/libplasma.so.2
#19 0x00007fc8d7f767f0 in Plasma::Corona::~Corona ()
   from /usr/lib/kde4/lib/libplasma.so.2
#20 0x00007fc8d85ecef7 in ?? () from /usr/lib/kde4/lib/libkdeinit4_plasma.so
#21 0x00007fc8d85fa26c in ?? () from /usr/lib/kde4/lib/libkdeinit4_plasma.so
#22 0x00007fc8d85fa34e in ?? () from /usr/lib/kde4/lib/libkdeinit4_plasma.so
#23 0x00007fc8d71cf286 in QMetaObject::activate ()
   from /usr/lib/libQtCore.so.4
#24 0x00007fc8d71bc748 in QCoreApplication::exec ()
   from /usr/lib/libQtCore.so.4
#25 0x00007fc8d85f023b in kdemain ()
   from /usr/lib/kde4/lib/libkdeinit4_plasma.so
#26 0x00007fc8d82901c4 in __libc_start_main () from /lib/libc.so.6
#27 0x0000000000400649 in _start ()
#0  0x00007fc8d830fb81 in nanosleep () from /lib/libc.so.6


It's a bit hard to figure out exactly what's going on, because of the lack of debugging symbols, but it looks like a crash-on-exit problem where an event is being sent to a widget that is being or has already been deleted.

Jeremy: it would be immensely useful if you could repeat this with debugging symbols installed.  In particular, it would be great if you could install
kdelibs-dbg
kdebase-workspace-dbg
kdeplasma-addons-dbg
and then generate the backtrace again.
Comment 8 Jay LaCroix 2008-08-22 22:13:07 UTC
I installed all the packages that you asked me to, and now I cannot reproduce this again. This is extremely weird. I was able to make it crash several times. I did the same thing as I did before and no crashes, no problems at all.

If you guys have any ideas on that please let me know. I'm trying to be as helpful as I can but after I put the debug packages on there everything is fine.
Comment 9 Alex Merry 2008-08-24 00:01:21 UTC
I have a suspicion this might be the focus bug that Plasma::View works around with a clearFocus() in the destructor.

I don't know why locking the desktop should affect things, but I can see why logout out rather than using kquitapp might make a different - you'll be clicking the application launcher icon, transferring focus, and then when the panel is destroyed it will try to transfer focus back to something that doesn't exist any more.

I've put the same fix in Plasma::Corona.