Bug 121430 - kicker crash after logout
Summary: kicker crash after logout
Status: RESOLVED FIXED
Alias: None
Product: kicker
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR crash
Target Milestone: ---
Assignee: Aaron J. Seigo
URL:
Keywords:
: 121679 121906 122560 122734 123999 159092 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-02-05 18:02 UTC by Robert Gomułka
Modified: 2008-06-28 18:00 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace saved (2.73 KB, text/plain)
2006-02-05 18:02 UTC, Robert Gomułka
Details
Backtrace (Toni's) (7.84 KB, text/plain)
2006-02-07 13:12 UTC, Toni Helenius
Details
kde351/SuSE, kicker crash on logout backtrace (8.82 KB, text/plain)
2006-02-16 13:55 UTC, Martin Schlander
Details
~/.kde/share/config/kickerrc (1.32 KB, application/x-bzip2)
2006-02-21 18:35 UTC, Robert Gomułka
Details
Kickerrc (2.45 KB, text/plain)
2006-02-23 22:34 UTC, David Hubner
Details
backtrace(raju's) Debian Sid KDE 3.5.1 (4.26 KB, text/plain)
2006-02-23 22:59 UTC, Kamaraju Kusumanchi
Details
backtrace of kicker generated on the time of logout (4.26 KB, application/octet-stream)
2006-02-24 00:52 UTC, Xun Chen
Details
My crash-log (1.68 KB, text/plain)
2006-02-25 16:59 UTC, Klaus Dimde
Details
Backtrace (824 bytes, text/plain)
2006-02-25 23:41 UTC, David Hubner
Details
Kicker crash on suse 10.0 (8.30 KB, text/plain)
2006-03-08 13:28 UTC, Tamás Hornos
Details
bactrace-3.5.2 (2.51 KB, text/plain)
2006-08-25 07:33 UTC, lwilpan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Gomułka 2006-02-05 18:02:27 UTC
Version:            (using KDE KDE 3.5.1)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Today when I logged out myself from KDE (selecting "Turn off the computer" from logout menu selected from panel), kicker crashed. It crashed for the second time after upgrading to 3.5.1 packages (first time I didn't save backtrace, sorry). But it doesn't occur always - it happened twice, while I turned off the computer for about 5 times (more or less).
Backtrace will be attached.
After closing the crash window system shuts down properly, however it wouldn't allow users to rely on shutdown-after-an-hour behaviour.
Comment 1 Robert Gomułka 2006-02-05 18:02:58 UTC
Created attachment 14562 [details]
Backtrace saved
Comment 2 Aaron J. Seigo 2006-02-05 19:07:33 UTC
that backtrace is certainly odd, one i've never seen before. nor does it make a lot of sense. (it's crashing when the taskbar settings object is deleted) wonder what is triggering it.
Comment 3 Robert Gomułka 2006-02-05 20:29:27 UTC
I don't pretend to be a skilled programmer, however for me it looks like double freeing memory in QImage stored in TaskBarSettings. I have tried to find sources of this class, however found nothing (just for some investigation). Does it mean that source for this class is generated somehow automatically?
Comment 4 Aaron J. Seigo 2006-02-05 21:04:48 UTC
yes, it's generated from kdebase/kicker/taskbar/taskbar.kcfg (it's a KConfigXT generated class). as for the QImage double free, there are no QImage members of this class (or it's super classes). looks like memory corruption somewhere else. often annoying to find.

one option is to run your kicker through valgrind.
another is to remove applets / configurations one by one from your kickerrc until the crashes stop. however, since the crash isn't easily reproducable for you this may be tricky (typical of memory corruption bugs).

note that you don't need to log out to quit kicker. just do `dcopquit kicker` from a konsole.
Comment 5 Robert Gomułka 2006-02-05 21:09:41 UTC
Oops, I did it - dcopquit kicker crashed it again. Could you tell me how can I start kicker under valgrind? Or even start it - dcopstart kicker told me that there is no service kicker.
Comment 6 Robert Gomułka 2006-02-05 21:22:20 UTC
Unfortunately it did it only once afterwards :\ But crashed in the same place. Then I did several times dcopquit kicker/kicker (or valgrind kicker) and it didn't want to crash :\ I tried to restart computer, but even this was not enough.
Comment 7 Toni Helenius 2006-02-06 13:40:33 UTC
Yes, happens to me in Kubuntu every time I shut down. Kicker crashing, still. The same as in 3.5. It only worked one time, just after the upgrade from 3.5 to 3.5.1.
Comment 8 Robert Gomułka 2006-02-06 18:28:42 UTC
Toni, can you reproduce this bug easily? If so, could you check/paste here the backtrace? And afterwards can you try to run it under valgrind (valgrind --log-file log.txt kicker; dcopquit kicker)? I think it would help a lot.
Comment 9 Aaron J. Seigo 2006-02-06 18:33:39 UTC
Toni: when you say "the same as in 3.5" does that mean the exact same backtrace? because there a few reasons why kicker could be crashing and the backtrace that robert posted is completely different from the 3.5.0 reports which were quite reliably in KMenu -> KDirLister code. as you are both using kubuntu/debian packages, i wonder if it isn't something else and perhaps even related to those specific builds.
Comment 10 Toni Helenius 2006-02-07 13:12:50 UTC
Created attachment 14588 [details]
Backtrace (Toni's)
Comment 11 Toni Helenius 2006-02-07 13:16:58 UTC
There, I hope it helps. In KDE 3.5 I think the signal was 11 (anyway the same as the infamous bug you fixed). Now it's signal 6.

This is not the same. In 3.5 I'd get the crash dialog and the few error messages "Can't talk to kxxxx". Now in 3.5.1 I only get the crash dialog.
Comment 12 Martin Schlander 2006-02-15 16:15:10 UTC
#9
I have the problem with Kicker crashing on logout too (KDE 3.5.1, SuSE 10.0), so I don't think it's a problem with the Kubuntu-packages.

It happens for me at least every other time I logout - I'll be sure to save the backtraces in the future and attach them here. Since I have a Desktop on my TV-out as well - in "leftof"-mode - sometimes Kicker crashes on that too when I logout..

It's a nasty little bug.. have tried different Kicker setups with regards to applets, panels etc. - but haven't been able to isolate the problem..
Comment 13 Martin Schlander 2006-02-16 13:55:05 UTC
Created attachment 14720 [details]
kde351/SuSE, kicker crash on logout backtrace
Comment 14 Aaron J. Seigo 2006-02-16 23:30:41 UTC
*** Bug 121679 has been marked as a duplicate of this bug. ***
Comment 15 Aaron J. Seigo 2006-02-16 23:31:00 UTC
*** Bug 121906 has been marked as a duplicate of this bug. ***
Comment 16 Aaron J. Seigo 2006-02-16 23:34:12 UTC
martin: your problem is with libqxim. this is known bug, but not one in kde. you need to either get rid of libqxim on your system, upgrade to a version without the bug (if it exists for your platform) or endure the crashes.

toni: your bug is NOT the same as the one in 3.5.0. this is the new crash in 3.5.1. i'm not sure where it is coming from, however. i'll be spending some time tracking it down shortly, however.
Comment 17 Philipp W 2006-02-21 12:47:24 UTC
*** This bug has been confirmed by popular vote. ***
Comment 18 Peter Faasse 2006-02-21 14:33:05 UTC
I have been running a 'minimal' version of kde for some time now: only kdelibs-3.5.1 & kdebase-3.5.1, compiled --without-arts, using qt-3.3.5.
The crashes are noticably lacking in using this minimal set ;-) 

Before, i used a full set of kde packages ('missing' only kdebindings and kdevelop), and did have the crashes... I'm just hoping that this may reduce the 'search-area' for memory corruption somewhat.
Comment 19 Aaron J. Seigo 2006-02-21 16:44:31 UTC
can people please post their kicker configs as attachments to this bug report? thank you.
Comment 20 Robert Gomułka 2006-02-21 18:35:18 UTC
Created attachment 14798 [details]
~/.kde/share/config/kickerrc
Comment 21 Aaron J. Seigo 2006-02-23 17:28:57 UTC
*** Bug 122560 has been marked as a duplicate of this bug. ***
Comment 22 David Hubner 2006-02-23 22:34:23 UTC
Created attachment 14835 [details]
Kickerrc

Kickerrc file as requested
Comment 23 Kamaraju Kusumanchi 2006-02-23 22:59:07 UTC
Created attachment 14838 [details]
backtrace(raju's) Debian Sid KDE 3.5.1

I have attached the backtrace when kicker crashed on my Debian Unstable box
running KDE 3.5.1 on Feb 23, 2006. The crash seem to happen at random times and
I am unable to reproduce it. The backtrace it produces does not seem to be the
same from one crash to another. Please let me know, if attaching the backtrace
everytime kicker crashes would be of any help for debugging this problem.

raju
Comment 24 Xun Chen 2006-02-24 00:52:50 UTC
Created attachment 14843 [details]
backtrace of kicker generated on the time of logout
Comment 25 Xun Chen 2006-02-24 00:55:28 UTC
My kicker crashes every time when I logout.
I use kde3.5.1 and debian testing.
Comment 26 Aaron J. Seigo 2006-02-24 02:30:38 UTC
Xun Chen: your problem is not the same as the one in this BR. it is in libqxim and is not a kde bug.
Comment 27 Matt Broadstone 2006-02-24 18:06:31 UTC
I can't reproduce this bug either, I've tried a number of things (opening many instances and then shutting down, just logging out instead of shutting down, etc.) but can't seem to get it to crash. Is there a way you could possibly build from SVN and see if it still happens for you? 
Comment 28 Xun Chen 2006-02-25 00:25:25 UTC
Hi Aaron,
Thanks for your reply.
But I can't find libqxim in my system. 
The command  
  find /usr/lib -name "libqxim*"
gives nothing in my system.
It's strange.
Comment 29 David Hubner 2006-02-25 16:35:43 UTC
libqxim is part of qt.. check the qt libs..
Comment 30 Klaus Dimde 2006-02-25 16:59:37 UTC
Created attachment 14870 [details]
My crash-log
Comment 31 David Hubner 2006-02-25 23:41:07 UTC
Created attachment 14875 [details]
Backtrace

hubnerd@hubnerd.org backtrace
Comment 32 Aaron J. Seigo 2006-02-27 01:29:09 UTC
*** Bug 122734 has been marked as a duplicate of this bug. ***
Comment 33 Peter Faasse 2006-03-06 14:00:53 UTC
With my apologies for the mis-information: with my minimal kde-set: kdebase & kdelibs the problem does also occur (i had mentioned that it was missing..). It just takes more logout/login cycles before i saw it happen.
Comment 34 Tamás Hornos 2006-03-08 13:28:06 UTC
I still have the problem on SuSE 10.0 after upgrading from 3.5.0. However with a clean install from 3.4 to 3.5.1 the kicker krash does not come up.
Comment 35 Tamás Hornos 2006-03-08 13:28:58 UTC
Created attachment 15009 [details]
Kicker crash on suse 10.0
Comment 36 Aaron J. Seigo 2006-03-08 17:42:33 UTC
Tamas: you have the XIM crash. this is not the same crash that this BR is about and it is not a problem in KDE; rather it is a Qt problem (and SUSE claims to have an updated package out that fixes it?)
Comment 37 David Hubner 2006-03-08 18:01:48 UTC
Is the XIM crash fixed in one of the patches in QTCOPY in the KDE SVN?
Comment 38 Maksim Orlovich 2006-03-08 18:23:36 UTC
No, since qt-copy doesn't apply the broken immethod patch that causes the bug in the first place.
Comment 39 Dirk Mueller 2006-03-08 18:43:34 UTC
SUSE has released a Qt3 update that fixes the XIM related crashes. Please close all related bugreports as invalid
Comment 40 Aaron J. Seigo 2006-03-08 22:17:51 UTC
SVN commit 516846 by aseigo:

seems some are having issues with this static member being auto-deleted
on log out, so make it a member of taskbar. means a tiny bit more
overhead if you run multiple taskbars.

people commenting on BR#121430: could someone who can actually reproduce
this bug update to this rev and see if it fixes it? (and remember: 
if your crash contained XIM symbols in the backtrace, don't bother that
was another issue altogether)

CCBUG:121430


 M  +40 -6     taskbar.cpp  
 M  +3 -0      taskbar.h  
 M  +1 -31     taskcontainer.cpp  
 M  +0 -1      taskcontainer.h  


--- branches/KDE/3.5/kdebase/kicker/taskbar/taskbar.cpp #516845:516846
@@ -37,6 +37,7 @@
 #include <kdebug.h>
 #include <kglobal.h>
 #include <kglobalaccel.h>
+#include <kimageeffect.h>
 #include <klocale.h>
 #include <kstandarddirs.h>
 
@@ -53,14 +54,14 @@
 
 TaskBar::TaskBar( QWidget *parent, const char *name )
     : Panner( parent, name ),
+      m_showAllWindows(false),
       m_currentScreen(-1),
       m_showOnlyCurrentScreen(false),
-      m_textShadowEngine(0),
-      m_ignoreUpdates(false),
-      m_showAllWindows(false),
       m_sortByDesktop(false),
       m_showIcon(false),
-      m_showOnlyIconified(false)
+      m_showOnlyIconified(false),
+      m_textShadowEngine(0),
+      m_ignoreUpdates(false)
 {
     setBackgroundOrigin( AncestorOrigin );
 
@@ -1138,6 +1139,39 @@
     p.drawText(tr, tf, str, len, brect, internal);
 }
 
+QImage* TaskBar::blendGradient(const QSize& size)
+{
+    if (m_blendGradient.isNull() || m_blendGradient.size() != size)
+    {
+        QPixmap bgpm(size);
+        QPainter bgp(&bgpm);
+        bgpm.fill(black);
+
+        if (QApplication::reverseLayout())
+        {
+            QImage gradient = KImageEffect::gradient(
+                    QSize(30, size.height()),
+                    QColor(255,255,255),
+                    QColor(0,0,0),
+                    KImageEffect::HorizontalGradient);
+            bgp.drawImage(0, 0, gradient);
+        }
+        else
+        {
+            QImage gradient = KImageEffect::gradient(
+                    QSize(30, size.height()),
+                    QColor(0,0,0),
+                    QColor(255,255,255),
+                    KImageEffect::HorizontalGradient);
+            bgp.drawImage(size.width() - 30, 0, gradient);
+        }
+
+        m_blendGradient = bgpm.convertToImage();
+    }
+
+    return &m_blendGradient;
+}
+
 void TaskBar::sortContainersByDesktop(TaskContainer::List& list)
 {
     typedef QValueVector<QPair<int, QPair<int, TaskContainer*> > > SortVector;
@@ -1147,8 +1181,8 @@
 
     TaskContainer::List::ConstIterator lastUnsorted(list.constEnd());
     for (TaskContainer::List::ConstIterator it = list.constBegin();
-         it != lastUnsorted;
-         ++it)
+            it != lastUnsorted;
+            ++it)
     {
         sorted[i] = qMakePair((*it)->desktop(), qMakePair(i, *it));
         ++i;
--- branches/KDE/3.5/kdebase/kicker/taskbar/taskbar.h #516845:516846
@@ -64,6 +64,8 @@
     void drawShadowText(QPainter  &p, QRect tr, int tf, const QString & str,
                         int len = -1, QRect* brect = 0, QTextParag** internal = 0);
 
+    QImage* blendGradient(const QSize& size);
+
 public slots:
     void configure();
 
@@ -124,6 +126,7 @@
     KShadowEngine* m_textShadowEngine;
     QTimer m_relayoutTimer;
     bool m_ignoreUpdates;
+    QImage m_blendGradient;
 };
 
 #endif
--- branches/KDE/3.5/kdebase/kicker/taskbar/taskcontainer.cpp #516845:516846
@@ -54,8 +54,6 @@
 #include "taskcontainer.h"
 #include "taskcontainer.moc"
 
-QImage TaskContainer::blendGradient = QImage();
-
 TaskContainer::TaskContainer(Task::Ptr task, TaskBar* bar,
                              QWidget *parent, const char *name)
     : QToolButton(parent, name),
@@ -658,34 +656,6 @@
 
         if (QFontMetrics(font).width(text) > availableWidth)
         {
-            if (blendGradient.isNull() || blendGradient.size() != size())
-            {
-                QPixmap bgpm(size());
-                QPainter bgp(&bgpm);
-                bgpm.fill(black);
-
-                if (reverse)
-                {
-                    QImage gradient = KImageEffect::gradient(
-                                            QSize(30, height()),
-                                            QColor(255,255,255),
-                                            QColor(0,0,0),
-                                            KImageEffect::HorizontalGradient);
-                    bgp.drawImage(0, 0, gradient);
-                }
-                else
-                {
-                    QImage gradient = KImageEffect::gradient(
-                                            QSize(30, height()),
-                                            QColor(0,0,0),
-                                            QColor(255,255,255),
-                                            KImageEffect::HorizontalGradient);
-                    bgp.drawImage(width() - 30, 0, gradient);
-                }
-
-                blendGradient = bgpm.convertToImage();
-            }
-
             // draw text into overlay pixmap
             QPixmap tpm(*pm);
             QPainter tp(&tpm);
@@ -710,7 +680,7 @@
             // blend text into background image
             QImage img = pm->convertToImage();
             QImage timg = tpm.convertToImage();
-            KImageEffect::blend(img, timg, blendGradient, KImageEffect::Red);
+            KImageEffect::blend(img, timg, *taskBar->blendGradient(size()), KImageEffect::Red);
             pm->convertFromImage(img);
         }
         else
--- branches/KDE/3.5/kdebase/kicker/taskbar/taskcontainer.h #516845:516846
@@ -138,7 +138,6 @@
     bool                        aboutToActivate;
     bool                        m_mouseOver;
     enum                        { ATTENTION_BLINK_TIMEOUT = 4 };
-    static QImage               blendGradient;
     QPoint                      m_dragStartPos;
 };
 
Comment 41 David Hubner 2006-03-09 06:32:58 UTC
Hate to disapoint.... still crashes!

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1230096720 (LWP 2329)]
[KCrash handler]
#9  0xffffe410 in ?? ()
#10 0xbfee92f4 in ?? ()
#11 0x00000006 in ?? ()
#12 0x00000919 in ?? ()
#13 0xb6b0e1e1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#14 0xb6b0f989 in *__GI_abort () at ../sysdeps/generic/abort.c:88
#15 0xb6b41a2a in __libc_message (do_abort=2, 
    fmt=0xb6bf16a0 "*** glibc detected *** %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:145
#16 0xb6b478f6 in malloc_printerr (action=2, 
    str=0xb6beee24 "corrupted double-linked list", ptr=0x0) at malloc.c:5523
#17 0xb6b480b7 in _int_free (av=0xb6bfd800, mem=0x80dbbd8) at malloc.c:4327
#18 0xb6b483bb in *__GI___libc_free (mem=0x80dbbd8) at malloc.c:3404
#19 0xb6cd2341 in operator delete (ptr=0x0)
    at ../../../../../gcc-3.4.3/libstdc++-v3/libsupc++/del_op.cc:40
#20 0xb69b30b7 in Kicker::~Kicker () from /usr//lib/libkdeinit_kicker.so
#21 0xb69b29bc in kdemain () from /usr//lib/libkdeinit_kicker.so
#22 0xb769d764 in kdeinitmain () from /usr/lib/kde3/kicker.so
#23 0x0804e396 in launch ()
#24 0x0804eabb in handle_launcher_request ()
#25 0x0804efed in handle_requests ()
#26 0x0804f784 in main ()
Comment 42 Aaron J. Seigo 2006-03-09 08:21:17 UTC
David Hubner: aha! this looks like a clearer backtrace compared to what we were getting earlier with the odd ~TaskbarSettings -> ~QImage bt... so we're making progress in any case... could you recompile kicker with debug symbols for me so we can get a line number in kicker? thanks.. =)

hm.. there's only one line in Kicker::~Kicker() (though there will be a lot of other automated cleanup there as well) and i've noticed a possible problem there that i've just committed a fix for... so before you test, can you svn up one more time (just in case that was the problem =)
Comment 43 Arabian 2006-03-09 14:55:27 UTC
Hello,

It crahs on OSS 10.1 Beta 6 too.

Here is the crash log

System configuration startup check disabled.

(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1230693536 (LWP 3420)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#6  0xffffe410 in __kernel_vsyscall ()
#7  0xb6fe98b0 in raise () from /lib/libc.so.6
#8  0xb6feaf83 in abort () from /lib/libc.so.6
#9  0xb701ef9b in __libc_message () from /lib/libc.so.6
#10 0xb7024921 in malloc_printerr () from /lib/libc.so.6
#11 0xb7025b80 in _int_free () from /lib/libc.so.6
#12 0xb7025f94 in free () from /lib/libc.so.6
#13 0xb71936c1 in operator delete () from /usr/lib/libstdc++.so.6
#14 0xb67c0827 in Kicker::~Kicker () from /opt/kde3/lib/libkdeinit_kicker.so
#15 0xb67da7e4 in kdemain () from /opt/kde3/lib/libkdeinit_kicker.so
#16 0xb7f81524 in kdeinitmain () from /opt/kde3/lib/kde3/kicker.so
#17 0x0804e39f in ?? ()
#18 0x00000001 in ?? ()
#19 0x08072228 in ?? ()
#20 0x00000001 in ?? ()
#21 0x00000000 in ?? ()
Comment 44 David Hubner 2006-03-09 19:28:33 UTC
Well here is the debug enabled kicker crash... i am checking SVN now!

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1230813520 (LWP 2329)]
[KCrash handler]
#9  0xffffe410 in ?? ()
#10 0xbfc3c884 in ?? ()
#11 0x00000006 in ?? ()
#12 0x00000919 in ?? ()
#13 0xb6a5f1e1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#14 0xb6a60989 in *__GI_abort () at ../sysdeps/generic/abort.c:88
#15 0xb6a92a2a in __libc_message (do_abort=2, 
    fmt=0xb6b426a0 "*** glibc detected *** %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:145
#16 0xb6a988f6 in malloc_printerr (action=2, 
    str=0xb6b3fe24 "corrupted double-linked list", ptr=0x0) at malloc.c:5523
#17 0xb6a990b7 in _int_free (av=0xb6b4e800, mem=0x80dbbd8) at malloc.c:4327
#18 0xb6a993bb in *__GI___libc_free (mem=0x80dbbd8) at malloc.c:3404
#19 0xb6c23341 in operator delete (ptr=0x0)
    at ../../../../../gcc-3.4.3/libstdc++-v3/libsupc++/del_op.cc:40
#20 0xb690a7b7 in ~Kicker (this=0x80dbbd8) at kicker.cpp:159
#21 0xb6909b3c in kdemain (argc=0, argv=0x80d7e38) at main.cpp:147
#22 0xb75ee764 in kdeinitmain (argc=0, argv=0x0) at kicker_dummy.cpp:3
#23 0x0804e396 in launch ()
#24 0x0804eabb in handle_launcher_request ()
#25 0x0804efed in handle_requests ()
#26 0x0804f784 in main ()
Comment 45 David Hubner 2006-03-09 19:43:43 UTC
Nope.. sorry still crashes :( 

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1230920016 (LWP 2329)]
[KCrash handler]
#9  0xffffe410 in ?? ()
#10 0xbf923034 in ?? ()
#11 0x00000006 in ?? ()
#12 0x00000919 in ?? ()
#13 0xb6a451e1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#14 0xb6a46989 in *__GI_abort () at ../sysdeps/generic/abort.c:88
#15 0xb6a78a2a in __libc_message (do_abort=2, 
    fmt=0xb6b286a0 "*** glibc detected *** %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:145
#16 0xb6a7e8f6 in malloc_printerr (action=2, 
    str=0xb6b25e24 "corrupted double-linked list", ptr=0x0) at malloc.c:5523
#17 0xb6a7f0b7 in _int_free (av=0xb6b34800, mem=0x80dbaa8) at malloc.c:4327
#18 0xb6a7f3bb in *__GI___libc_free (mem=0x80dbaa8) at malloc.c:3404
#19 0xb6c09341 in operator delete (ptr=0x0)
    at ../../../../../gcc-3.4.3/libstdc++-v3/libsupc++/del_op.cc:40
#20 0xb68f07b7 in ~Kicker (this=0x80dbaa8) at kicker.cpp:159
#21 0xb68efb3c in kdemain (argc=0, argv=0x80d7e38) at main.cpp:147
#22 0xb75d4764 in kdeinitmain (argc=0, argv=0x0) at kicker_dummy.cpp:3
#23 0x0804e396 in launch ()
#24 0x0804eabb in handle_launcher_request ()
#25 0x0804efed in handle_requests ()
#26 0x0804f784 in main ()
Comment 46 David Hubner 2006-03-09 22:04:36 UTC
Commenting out the contents of ExtensionManager::~ExtensionManager() does not help . 
Comment 47 Aaron J. Seigo 2006-03-09 22:31:25 UTC
SVN commit 517086 by aseigo:

tighter control over deletion prevents a crash when kicker is quit and
the kmenu is open

for people on BR#: i'm really not sure what is causing the crashes you
are seeing, and the backtraces are completely mucked up (note how in the
last few backtraces it claims to be delete()ing a null pointer, but then
free has an actual address and then the printerr has null again. gah.).
so we've gone from nonsensical backtrace to more nonsense ;)

in any case, i'm running with the kickerrc's posted and trying
everything i can think of to get this puppy to crash on quit. i did
discover that if the kmenu is open during shutdown things would go boom.
that's fixed with this commit. whether that's bug#121430 or not i really
can't say. i'm going to guess "no" because it would be pretty odd to
have the menu active while kicker is quitting (i had to do "sleep 3;
dcopquit kicker;" and then run and open the kmenu =)

anyways.. just to let you know i'm still banging on this one

CCBUG:121430


 M  +2 -0      kicker.cpp  
 M  +2 -1      menumanager.cpp  
 M  +1 -1      menumanager.h  


--- branches/KDE/3.5/kdebase/kicker/kicker/core/kicker.cpp #517085:517086
@@ -155,7 +155,9 @@
 
 Kicker::~Kicker()
 {
+    // order of deletion here is critical to avoid crashes
     delete ExtensionManager::the();
+    delete MenuManager::the();
 }
 
 void Kicker::setCrashHandler()
--- branches/KDE/3.5/kdebase/kicker/kicker/core/menumanager.cpp #517085:517086
@@ -53,7 +53,7 @@
 {
     if (!m_self)
     {
-        m_self = new MenuManager(Kicker::the());
+        m_self = new MenuManager();
     }
 
     return m_self;
@@ -70,6 +70,7 @@
 
 MenuManager::~MenuManager()
 {
+kdDebug() << "deleting menu manager!" << endl;
     delete m_kmenu;
 }
 
--- branches/KDE/3.5/kdebase/kicker/kicker/core/menumanager.h #517085:517086
@@ -57,6 +57,7 @@
     void registerKButton(PanelPopupButton *button);
     void unregisterKButton(PanelPopupButton *button);
     PanelPopupButton* findKButtonFor(QPopupMenu* menu);
+    ~MenuManager();
 
 public slots:
     void slotSetKMenuItemActive();
@@ -72,7 +73,6 @@
 
 private:
     MenuManager(QObject *parent = 0);
-    ~MenuManager();
 
     static MenuManager* m_self;
     KButtonList m_kbuttons;
Comment 48 David Hubner 2006-03-10 03:48:07 UTC
The bug is in g++/libstd++ not kde, i upgraded to gcc 3.4.5 from gcc 3.4.3 and i get no crashes so far, 18 restarts and counting! 
Comment 49 Aaron J. Seigo 2006-03-10 04:37:51 UTC
what versions of gcc are other who reported on this bug (not XIM related ;) using?

and if nothing else, at least this caused me to spend some time sweeping through the code again looking for loose ends, a few of which i did find. so it wasn't a complete waste even if it does turn out to be a gcc issue.
Comment 50 Kamaraju Kusumanchi 2006-03-10 05:01:53 UTC
I previously attached a backtrace for this problem and my previous comment number is 23. I have upgraded my gcc recently. I do not remember the original gcc version when I posted comment 23. My current gcc version is

$gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 20060304 (prerelease) (Debian 4.0.2-10)


The random crashes are still occuring on my machine and I am using Debian Sid

$kicker --version
Qt: 3.3.5
KDE: 3.5.1
KDE Panel: 3.5.1
Comment 51 David Hubner 2006-03-10 05:56:11 UTC
Kamaraju Kusumanchi: Do you still have the old libstd++ libs installed?? If so kicker might be linked to them and still crashing. Did you install from SVN?
Comment 52 Kamaraju Kusumanchi 2006-03-10 06:20:34 UTC
I have libstdc++2.10-glibc2.2 version 1:2.95.4-22 and libstdc++5 1:3.3.6-7 installed. I see that there are updates available for these packages. I will update my packages and report back if the crashes happen again. For me the crashes are occuring at random times. So I will not immediately know whether the update solved the problem or not.

I have installed everything from Debian repositories. I have not installed anything from SVN.
Comment 53 David Hubner 2006-03-10 13:48:34 UTC
Kamaraju Kusumanchi: Could you do ldd <path to kicker> and paste the contents here?
Comment 54 Kamaraju Kusumanchi 2006-03-10 14:12:17 UTC
$ldd `which kicker`
        linux-gate.so.1 =>  (0xffffe000)
        libkdeinit_kicker.so => /usr/lib/libkdeinit_kicker.so (0x40034000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4010d000)
        libm.so.6 => /lib/tls/libm.so.6 (0x401ea000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40210000)
        libc.so.6 => /lib/tls/libc.so.6 (0x4021b000)
        libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x40354000)
        libkonq.so.4 => /usr/lib/libkonq.so.4 (0x40359000)
        libkparts.so.2 => /usr/lib/libkparts.so.2 (0x403db000)
        libkdeui.so.4 => /usr/lib/libkdeui.so.4 (0x40420000)
        libkdesu.so.4 => /usr/lib/libkdesu.so.4 (0x406fd000)
        libkwalletclient.so.1 => /usr/lib/libkwalletclient.so.1 (0x40713000)
        libfam.so.0 => /usr/lib/libfam.so.0 (0x40725000)
        libacl.so.1 => /lib/libacl.so.1 (0x4072e000)
        libattr.so.1 => /lib/libattr.so.1 (0x40734000)
        libkdecore.so.4 => /usr/lib/libkdecore.so.4 (0x40738000)
        libDCOP.so.4 => /usr/lib/libDCOP.so.4 (0x40975000)
        libresolv.so.2 => /lib/tls/libresolv.so.2 (0x409a8000)
        libutil.so.1 => /lib/tls/libutil.so.1 (0x409bc000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x409c0000)
        libidn.so.11 => /usr/lib/libidn.so.11 (0x409d6000)
        libkdefx.so.4 => /usr/lib/libkdefx.so.4 (0x40a06000)
        libqt-mt.so.3 => /usr/lib/libqt-mt.so.3 (0x40a33000)
        libaudio.so.2 => /usr/lib/libaudio.so.2 (0x41214000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4122a000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x4127a000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x4129a000)
        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x412a2000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x41734000)
        libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x412a6000)
        libXft.so.2 => /usr/lib/libXft.so.2 (0x412aa000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4249e000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x412bd000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0x412ec000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x412f0000)
        libz.so.1 => /usr/lib/libz.so.1 (0x41315000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4132a000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x41338000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x41341000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x41359000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x4136b000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x41374000)
        libXau.so.6 => /usr/X11R6/lib/libXau.so.6 (0x41440000)
        libkickermain.so.1 => /usr/lib/libkickermain.so.1 (0x41443000)
        libkio.so.4 => /usr/lib/libkio.so.4 (0x4173d000)
        libkutils.so.1 => /usr/lib/libkutils.so.1 (0x41477000)
        /lib/ld-linux.so.2 (0x40000000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x414da000)


These are the corresponding libstdc++ packages on my system. ii stands for that package is currently installed and pn tells that the package is purged. 

$dpkg -l libstdc++\* | grep -v ^un
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                      Version        Description
+++-=========================-==============-============================================
pn  libstdc++2.10-dbg         <none>         (no description available)
pn  libstdc++2.10-dev         <none>         (no description available)
ii  libstdc++2.10-glibc2.2    2.95.4-24      The GNU stdc++ library
ii  libstdc++5                3.3.6-12       The GNU Standard C++ Library v3
pn  libstdc++5-3.3-dev        <none>         (no description available)
ii  libstdc++6                4.0.2-10       The GNU Standard C++ Library v3
ii  libstdc++6-4.0-dev        4.0.2-10       The GNU Standard C++ Library v3 (development
pn  libstdc++6-dev            <none>         (no description available)
Comment 55 Klaus Dimde 2006-03-10 15:03:01 UTC
My backtrace is comment #30. My gcc -v is:
Reading specs from /usr/lib/gcc/x86_64-unknown-linux-gnu/3.4.1/specs
Configured with: ../gcc-3.4.1/configure --prefix=/usr --libexecdir=/usr/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++ --disable-multilib --without-multilib
Thread model: posix
gcc version 3.4.1
Comment 56 Christian 2006-03-15 14:33:20 UTC
Hi
On my Slackware-current with KDE 3.5.1 and Qt 3.3.5 kicker crashes some times at logout.
This is the log:
(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1240622848 (LWP 5447)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#5  0xb69563fb in malloc_consolidate () from /lib/tls/libc.so.6
#6  0xb6956b00 in _int_free () from /lib/tls/libc.so.6
#7  0xb69570fa in free () from /lib/tls/libc.so.6
#8  0xb70a00e8 in QImage::freeBits () from /usr/lib/qt/lib/libqt-mt.so.3
#9  0xb70a29fa in QImage::reset () from /usr/lib/qt/lib/libqt-mt.so.3
#10 0xb70a517b in QImage::~QImage () from /usr/lib/qt/lib/libqt-mt.so.3
#11 0xb5bf1990 in TaskContainer::updateKickerTip ()
   from /opt/kde/lib/libtaskbar.so.1
#12 0xb691f417 in exit () from /lib/tls/libc.so.6
#13 0x0804e416 in ?? ()
#14 0x00000000 in ?? ()

bye, Christian
Comment 57 Aaron J. Seigo 2006-03-20 21:33:12 UTC
*** Bug 123999 has been marked as a duplicate of this bug. ***
Comment 58 Klaus Dimde 2006-03-28 17:25:07 UTC
After rebuilding the system (using (C)LFS) I can't reproduce this bug. I've ended KDE a 20+ Times and still no error. Perhaps is really was a gcc problem (now upgraded to 4.0.2)...
Comment 59 Aaron J. Seigo 2006-03-28 20:09:33 UTC
> Perhaps is really was a gcc problem

certainly looking that way =/

you're now at least the second person for whom this bug has gone away due to  rebuilding with a newer gcc

one more confirmation to that effect and i'll close the bug
Comment 60 Christian 2006-03-28 22:07:12 UTC
I saw that if I leave a non KDE app like amsn or licq in the system tray at logout, kicker crashes
Comment 61 Robert Gomułka 2006-03-30 10:37:13 UTC
Christian,
would you be so kind and provide answers to few questions?
1. Is the bug highly reproducible on your platform?
2. If so, would it be possible to run kicker under valgrind and provide the results whrn crash occurs?
3. Would it happen after upgrading either KDE to 3.5.2, QT to 3.3.6 or gcc (I don't know which version you have).

In any case, I couldn't also reproduce this bug for a few weeks, which may confirm Aaron's opinion of compilator bug.
Comment 62 Pieter Deelen 2006-04-01 12:10:41 UTC
I'm using KDE on a gentoo system, and I started seeing these crashes when I upgraded from KDE 3.5.0 to 3.5.1. Both versions were compiled using GCC 3.4.4. I recently upgraded GCC from 3.4.4 to 3.4.5. A few days ago I upgraded to KDE 3.5.2, using GCC 3.4.5, and I haven't seen any kicker crashes since then.

Now this might be due to either the KDE or the GCC upgrade, but I'm happy that it seems to be fixed.
Comment 63 Philipp W 2006-04-01 12:19:13 UTC
The problem seems to be gone.
I also updated to KDE 3.5.2. What happened with my GCC I cant say. Used apt-get upgrade.

Well however: very cool, that we got rid off this bug!
Comment 64 Aaron J. Seigo 2006-06-16 17:40:39 UTC
*** Bug has been marked as fixed ***.
Comment 65 lwilpan 2006-08-25 07:33:08 UTC
Created attachment 17497 [details]
bactrace-3.5.2

Are you sure this is fixed?  I recently had kicker crash on logout, and I'm
using kde 3.5.2, compiled with gcc 3.4.6-r1.  I've only experienced this once,
and I don't remember anything unusual I was doing at the time, so I don't know
how to replicate it.  Backtrace attached.
Comment 66 FiNeX 2008-06-28 18:00:57 UTC
*** Bug 159092 has been marked as a duplicate of this bug. ***