Bug 72466 - Kicker doesn't start up/crashs
Summary: Kicker doesn't start up/crashs
Status: RESOLVED FIXED
Alias: None
Product: kicker
Classification: Plasma
Component: general (show other bugs)
Version: 3.2-beta
Platform: unspecified Linux
: NOR grave
Target Milestone: ---
Assignee: John Firebaugh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-12 08:52 UTC by Malte S. Stretz
Modified: 2004-02-10 17:47 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
kicker.strace (42.83 KB, text/plain)
2004-01-12 09:49 UTC, Malte S. Stretz
Details
kicker.strace.16622 (616.39 KB, text/x-diff)
2004-01-12 09:51 UTC, Malte S. Stretz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Malte S. Stretz 2004-01-12 08:52:28 UTC
Version:           unknown (using KDE 3.1.94 (CVS >= 20031206), Gentoo)
Compiler:          gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r3, propolice)
OS:          Linux (i686) release 2.4.20-gentoo-r8

Since I recompiled kdelibs and kdebase last umm... Friday I think, Kicker doesn't start up anymore. I recompiled again tonight, and it still doesn't come up.

Judging from my ~/.xsession-errors it seems like it crashs, but Dr. Konqi doesn't appear. This are the relevant parts of the log:

kio (KLauncher): kicker (pid 18181) up and running.
kdeinit: Got EXEC_NEW 'kio_file' from launcher.
kio (KLauncher): kio_file (pid 20283) up and running.
DCOP: register 'kicker' -> number of clients is now 6
DCOP: register 'anonymous-18181' -> number of clients is now 7
kio_file: Starting 20283
kdeinit: Got EXEC_NEW 'kio_devices' from launcher.
kio (KLauncher): kio_devices (pid 14357) up and running.
DCOP: register 'anonymous-14357' -> number of clients is now 8
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
kio_file: ========= LIST file:/home/mss/.kde/Desktop =========
kio_file: ============= COMPLETED LIST ============
kio_file: =============== BYE ===========
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
kded: Successfully loaded module 'mountwatcher'
imwheel: no process killed
WARNING: imwheel is not checking/writing a pid file, BE CAREFUL!
  An imwheel may be running already.
  Two or more imwheel processes on the same X display,
  or simultaneously using a wheel fifo,
  will not operate as expected!
INFO: imwheel started (pid=9350)
kio (Scheduler): Scheduler: killing slave 14357
kio (Slave): killing slave pid=14357 (devices://)
kio (kioslave):  dispatchLoop() slave was killed, returning
DCOP: unregister 'anonymous-14357'
kdeinit: PID 14357 terminated.
kio (KIOJob): Job::kill this=0x8150b50 m_progressId=0 quietly=true
kdeinit: Got EXEC_NEW 'kio_devices' from launcher.
kio (KLauncher): kio_devices (pid 15329) up and running.
DCOP: register 'anonymous-15329' -> number of clients is now 8
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
kio (Scheduler): Scheduler: killing slave 15329
kio (Slave): killing slave pid=15329 (devices://)
kio (kioslave):  dispatchLoop() slave was killed, returning
DCOP: unregister 'anonymous-15329'
kdeinit: PID 15329 terminated.
kio (KIOJob): Job::kill this=0x8150b50 m_progressId=0 quietly=true
kdeinit: Got EXEC_NEW 'kio_devices' from launcher.
DCOP: register 'anonymous-25575' -> number of clients is now 8
kio (KLauncher): kio_devices (pid 25575) up and running.
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-mss/ksycoca
DCOP: register 'knewsticker' -> number of clients is now 9
kded: Successfully loaded module 'favicons'
knewsticker: slotUpdateNews()
knewsticker: m_pendingNewsUpdates = Kuro5hin,Linux Weekly News,Slashdot,dot.kde.org,heise online news,news.spamassassin.org,Fine Party Art,Localfeeds: 20 miles around,Craigalog,Jeremy Zawodny's blog,Syndic8,The Old JMason Distillery,TheRegister,carmina,msquadrat,tagesschau.de,Telepolis News
kdecore (KConfigSkeleton): Creating KConfigSkeleton (0x81d6ef8)
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
kdecore (KConfigSkeleton): Creating KConfigSkeleton (0x82034a0)
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
DCOP: register 'klipper' -> number of clients is now 10
DCOP aborting (delayed) call from 'anonymous-18181' to 'kicker'
DCOP: unregister 'kicker'
DCOP: unregister 'knewsticker'
DCOP: unregister 'klipper'
ERROR: Communication problem with kicker, it probably crashed.
DCOP: unregister 'anonymous-18181'
kdeinit: PID 18181 terminated.
Comment 1 Malte S. Stretz 2004-01-12 08:53:38 UTC
KDE without Kicker is pretty useless :-/
Comment 2 Malte S. Stretz 2004-01-12 09:49:27 UTC
Created attachment 4115 [details]
kicker.strace

I strace'd kicker on startup, this is the main app. The child (next attachment)
seems to crash.
Comment 3 Malte S. Stretz 2004-01-12 09:51:14 UTC
Created attachment 4116 [details]
kicker.strace.16622

strace -t -ff -o kicker.strace kicker
Comment 4 Stephan Kulow 2004-01-12 16:21:42 UTC
how about gdb kicker
> run --nofork
> bt
? Does that give you anything useful?
Comment 5 Malte S. Stretz 2004-01-12 19:13:13 UTC
I don't know if this is useful but it gives me the following backtrace. How do I tell gdb where the sources are so that it can show line numbers? (The HOWTO on DKO doesn't work for me.)

#0  0x409a161d in mALLOc () from /usr/kde/cvs/lib/libkdecore.so.4
#1  0x409a108b in malloc () from /usr/kde/cvs/lib/libkdecore.so.4
#2  0x41615c0c in operator new(unsigned) ()
   from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libstdc++.so.5
#3  0x41615db9 in operator new[](unsigned) ()
   from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libstdc++.so.5
#4  0x4091ae4a in lazy_encode(QString const&) () from /usr/kde/cvs/lib/libkdecore.so.4
#5  0x409224d6 in KURL::prettyURL(int) const () from /usr/kde/cvs/lib/libkdecore.so.4
#6  0x41cc58c0 in QuickButton::QuickButton(QString const&, QWidget*, char const*) ()
   from /usr/kde/cvs/lib/kde3/launcher_panelapplet.so.0
#7  0x41cc154b in QuickLauncher::QuickLauncher(QString const&, KPanelApplet::Type, int, QWidget*, char const*) () from /usr/kde/cvs/lib/kde3/launcher_panelapplet.so.0
#8  0x41cc0d50 in init () from /usr/kde/cvs/lib/kde3/launcher_panelapplet.so.0
#9  0x401cdfd5 in PluginLoader::loadApplet(AppletInfo const&, QWidget*) ()
   from /usr/kde/cvs/lib/libkickermain.so.1
#10 0x40091484 in InternalAppletContainer::InternalAppletContainer(AppletInfo const&, QPopupMenu*, QWidget*) () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#11 0x4009ac83 in PluginManager::createAppletContainer(QString const&, bool, QString const&, QPopupMenu*, QWidget*) () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#12 0x4007c0be in ContainerArea::loadContainerConfig() ()
   from /usr/kde/cvs/lib/libkdeinit_kicker.so
#13 0x4007ac9d in ContainerArea::initialize(PanelContainer*, bool) ()
   from /usr/kde/cvs/lib/libkdeinit_kicker.so
#14 0x41aae162 in ChildPanelExtension::ChildPanelExtension(QString const&, KPanelExtension::Type, int, QWidget*, char const*) () from /usr/kde/cvs/lib/kde3/childpanel_panelextension.so.0
#15 0x41aadb15 in init () from /usr/kde/cvs/lib/kde3/childpanel_panelextension.so.0
#16 0x401ce295 in PluginLoader::loadExtension(AppletInfo const&, QWidget*) ()
   from /usr/kde/cvs/lib/libkickermain.so.1
#17 0x40095b75 in InternalExtensionContainer::InternalExtensionContainer(AppletInfo const&, QWidget*) () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#18 0x4009ae25 in PluginManager::createExtensionContainer(QString const&, bool, QString const&)
    () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#19 0x400988f7 in ExtensionManager::loadContainerConfig() ()
   from /usr/kde/cvs/lib/libkdeinit_kicker.so
#20 0x400985fc in ExtensionManager::initialize() () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#21 0x40075b37 in Kicker::Kicker() () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#22 0x40073f35 in kdemain () from /usr/kde/cvs/lib/libkdeinit_kicker.so
#23 0x0804863b in kdemain ()
#24 0x4168a90c in __libc_start_main () from /lib/libc.so.6
Comment 6 Stephan Kulow 2004-01-13 14:11:37 UTC
I usually call configure as $PWD/configure, this way you have absolute paths in there and don't need to worry.
Comment 7 Malte S. Stretz 2004-01-13 17:02:50 UTC
I use Gentoo's portage in combination wath Caleb Tennis' live CVS ebuilds. Gentoo copies the source to a temprorary directory, so even absolue paths wouldn't help. And even if I specify the source directory with gdb -d ... it doesn't find the sources :-/

Whatever, I'm currently recompiling kicker from another place, this time hopefully with line numbers...
Comment 8 Malte S. Stretz 2004-01-13 18:16:50 UTC
Ok, built it all with line numbers enabled. Seems like this crash is actually in launcher_panelapplet?

#0  0x409b11ca in mALLOc (bytes=266) at malloc.c:3674
#1  0x409b0823 in malloc (bytes=266) at malloc.c:5514
#2  0x4162bc0c in operator new(unsigned) () from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libstdc++.so.5
#3  0x4162bdb9 in operator new[](unsigned) () from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libstdc++.so.5
#4  0x4092459d in lazy_encode (segment=@0x825e8ac) at kurl.cpp:154
#5  0x4092bb1e in KURL::prettyURL(int) const (this=0x825e89c, _trailing=0) at kurl.cpp:1513
#6  0x41cdb5de in QuickButton (this=0x825e808, u=@0x824c238, parent=0x8243a58, name=0x0) at quickbutton.cpp:108
#7  0x41cd75ea in QuickLauncher (this=0x8243a58, configFile=@0xbfffebe0, type=Normal, actions=1, parent=0x8240de0,
    name=0x41d3c4e0 "quicklauncher") at quicklauncher.cpp:67
#8  0x41cd6d79 in init (parent=0x8240de0, configFile=@0xbfffebe0) at quicklauncher.cpp:46
#9  0x401d1fd5 in PluginLoader::loadApplet(AppletInfo const&, QWidget*) () from /usr/kde/cvs/lib/libkickermain.so.1
#10 0x40092032 in InternalAppletContainer (this=0x8241748, info=@0xbfffecc0, opMenu=0x820dfd8, parent=0x820ed78) at container_applet.cpp:246
#11 0x4009ba5f in PluginManager::createAppletContainer(QString const&, bool, QString const&, QPopupMenu*, QWidget*) (this=0x400e9a20,
    desktopFile=@0xbfffed50, isStartup=true, configFile=@0xbfffed60, opMenu=0x820dfd8, parent=0x820ed78) at pluginmanager.cpp:136
#12 0x4007bfd3 in ContainerArea::loadContainerConfig() (this=0x820de98) at containerarea.cpp:306
#13 0x4007aaef in ContainerArea::initialize(PanelContainer*, bool) (this=0x820de98, panel=0x0, useDefaultConfig=false)
    at containerarea.cpp:96
#14 0x41ac4162 in ChildPanelExtension::ChildPanelExtension(QString const&, KPanelExtension::Type, int, QWidget*, char const*) ()
   from /usr/kde/cvs/lib/kde3/childpanel_panelextension.so.0
#15 0x41ac3b15 in init () from /usr/kde/cvs/lib/kde3/childpanel_panelextension.so.0
#16 0x401d2295 in PluginLoader::loadExtension(AppletInfo const&, QWidget*) () from /usr/kde/cvs/lib/libkickermain.so.1
#17 0x400969c5 in InternalExtensionContainer (this=0x82022d8, info=@0xbffff020, parent=0x0) at container_extension.cpp:163
#18 0x4009bbcc in PluginManager::createExtensionContainer(QString const&, bool, QString const&) (this=0x400e9a20, desktopFile=@0xbffff080,
    isStartup=true, configFile=@0xbffff090) at pluginmanager.cpp:159
#19 0x40099610 in ExtensionManager::loadContainerConfig() (this=0x400e99a0) at extensionmanager.cpp:117
#20 0x40099310 in ExtensionManager::initialize() (this=0x400e99a0) at extensionmanager.cpp:56
#21 0x40075a0c in Kicker (this=0xbffff2e0) at kicker.cpp:109
#22 0x40074158 in kdemain (argc=2, argv=0xbffff4d4) at main.cpp:138
#23 0x0804863a in main (argc=2, argv=0xbffff4d4) at kicker.la.cpp:2
#24 0x416a090c in __libc_start_main () from /lib/libc.so.6
Comment 9 Malte S. Stretz 2004-01-13 18:50:41 UTC
I added some debug statements in QuickButton and got this:

kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/Home.desktop
kicker: serviceByDesktopName(Home) == 0x8250158
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/System/konsole.desktop
kicker: serviceByDesktopName(konsole) == 0x8256e08
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/Internet/KMail.desktop
kicker: serviceByDesktopName(KMail) == 0x8259668
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/Internet/KNode.desktop
kicker: serviceByDesktopName(KNode) == 0x825b658
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/Internet/konqbrowser.desktop
kicker: serviceByDesktopName(konqbrowser) == 0x825d9f0
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/kde/3.1/share/applnk/Utilities/kaddressbook.desktop
kicker: serviceByDesktopName(kaddressbook) == 0x825ffb0
kicker: *** leaving QuickButton::QuickButton ***
kicker: *** entering QuickButton::QuickButton ***
kicker: id == /usr/share/applnk/Development/gideon.desktop
kicker: serviceByDesktopName(gideon) == (nil)
kicker: new KService(/usr/share/applnk/Development/gideon.desktop) == 0x82625f8; isValid() == false

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 2103)]
0x409b11ca in mALLOc (bytes=266) at malloc.c:3674
3674          bck->fd = unsorted_chunks(av);


The file /usr/share/applnk/Development/gideon.desktop doesn't exist (anymore). So the later call to url.prettyURL() is called on a kurl which exists but has no value. It probably shouldn't do that but more important, prettyURL() should not crash in this case (IMO). So maybe the bug is even in KURL...?
Comment 10 Malte S. Stretz 2004-01-13 19:13:02 UTC
Ummm... I just fixed this. My fix:
--- /usr/portage/distfiles/cvs-src/kde/kdelibs/kdecore/kurl.cpp 2004-01-12 07:34:38.000000000 +0100
+++ /var/tmp/kdelibs/kdecore/kurl.cpp   2004-01-13 19:05:36.000000000 +0100
@@ -1510,6 +1510,7 @@
     }
   }

+  kdDebug() << "m_strPath == " << m_strPath << endl;
   u += trailingSlash( _trailing, lazy_encode( m_strPath ) );
   if (!m_strQuery_encoded.isNull())
       u += '?' + m_strQuery_encoded;


Don't laugh. It's actually working again. Really.
Comment 11 Waldo Bastian 2004-01-13 21:55:16 UTC
Looks like memory corruption. Can you run it in valgrind?
Comment 12 Malte S. Stretz 2004-01-13 23:55:06 UTC
Of course. If you tell me the correct/best way (ie. arguments etc.) of doing this :) 
Comment 13 Stephan Kulow 2004-01-14 11:16:54 UTC
valgrind --num-callers=42 kicker --nofork 
that should do
Comment 14 John Firebaugh 2004-02-09 18:58:40 UTC
CVS commit by firebaugh: 

Don't try to delete KSharedPtrs.

CCMAIL: 72466-done@bugs.kde.org


  M +1 -1      quickbutton.cpp   1.23


--- kdebase/kicker/applets/launcher/quickbutton.cpp  #1.22:1.23
@@ -72,5 +72,5 @@ QuickButton :: QuickButton(const QString
          if (!service->isValid())
          {
-           delete service;
+           // service is a KShared pointer, don't try to delete it!
            service = 0;
          }


Comment 15 Malte S. Stretz 2004-02-10 14:18:49 UTC
Shouldn't this be backported to the BRANCH?
Comment 16 John Firebaugh 2004-02-10 17:47:13 UTC
Yeah, I'm going to backport a bunch of my recent fixes in one batch when I get a chance.