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.
KDE without Kicker is pretty useless :-/
Created attachment 4115 [details] kicker.strace I strace'd kicker on startup, this is the main app. The child (next attachment) seems to crash.
Created attachment 4116 [details] kicker.strace.16622 strace -t -ff -o kicker.strace kicker
how about gdb kicker > run --nofork > bt ? Does that give you anything useful?
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
I usually call configure as $PWD/configure, this way you have absolute paths in there and don't need to worry.
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...
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
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...?
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.
Looks like memory corruption. Can you run it in valgrind?
Of course. If you tell me the correct/best way (ie. arguments etc.) of doing this :)
valgrind --num-callers=42 kicker --nofork that should do
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; }
Shouldn't this be backported to the BRANCH?
Yeah, I'm going to backport a bunch of my recent fixes in one batch when I get a chance.