Bug 92025

Summary: Kicker crashes on startup.
Product: [Unmaintained] kicker Reporter: Dylan Griffiths <dylang>
Component: generalAssignee: Aaron J. Seigo <aseigo>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Slackware   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Kicker strace of its crash.
The config file that caused the crashes.

Description Dylan Griffiths 2004-10-24 20:08:00 UTC
Version:            (using KDE KDE 3.3.1)
Installed from:    Slackware Packages
OS:                Linux

I recently upgraded from KDE 3.2.3 to 3.3.1.  At the same time, I've been changing my multiple desktop layout from a Xinerama one to a non-xinerama one.  Now when I start kicker, it crashes like so:

dylang@shadowgate:~$ kicker
X Error: BadValue (integer parameter out of range for operation) 2
  Major opcode:  102
  Minor opcode:  0
  Resource id:  0x0
ERROR: Communication problem with kicker, it probably crashed.

The KDE bugtrace gives me this:
Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 6974)]
[KCrash handler]
#5  0x4093f732 in KCmdLineArgs::isSet () from /opt/kde/lib/libkdecore.so.4
#6  0x420c15da in MapWidget::load () from /opt/kde/lib/kde3/ww_panelapplet.so
#7  0x420bc1a7 in KWWApplet::KWWApplet ()
   from /opt/kde/lib/kde3/ww_panelapplet.so
#8  0x420bbeca in init () from /opt/kde/lib/kde3/ww_panelapplet.so
#9  0x401ae228 in PluginLoader::loadApplet ()
   from /opt/kde/lib/libkickermain.so.1
#10 0x400812de in InternalAppletContainer::InternalAppletContainer ()
   from /opt/kde/lib/libkdeinit_kicker.so
#11 0x4008c628 in PluginManager::createAppletContainer ()
   from /opt/kde/lib/libkdeinit_kicker.so
#12 0x4006e8f6 in ContainerArea::loadContainerConfig ()
   from /opt/kde/lib/libkdeinit_kicker.so
#13 0x4006cf4d in ContainerArea::initialize ()
   from /opt/kde/lib/libkdeinit_kicker.so
#14 0x42021514 in ChildPanelExtension::ChildPanelExtension ()
   from /opt/kde/lib/kde3/childpanel_panelextension.so
#15 0x42020ef4 in init () from /opt/kde/lib/kde3/childpanel_panelextension.so
#16 0x401ae8f8 in PluginLoader::loadExtension ()
   from /opt/kde/lib/libkickermain.so.1
#17 0x40086ed3 in InternalExtensionContainer::InternalExtensionContainer ()
   from /opt/kde/lib/libkdeinit_kicker.so
#18 0x4008c9b7 in PluginManager::createExtensionContainer ()
   from /opt/kde/lib/libkdeinit_kicker.so
#19 0x4008a212 in ExtensionManager::loadContainerConfig ()
   from /opt/kde/lib/libkdeinit_kicker.so
#20 0x40089e6c in ExtensionManager::initialize ()
   from /opt/kde/lib/libkdeinit_kicker.so
#21 0x40068455 in Kicker::Kicker () from /opt/kde/lib/libkdeinit_kicker.so
#22 0x00000000 in ?? ()
#23 0xbfffef40 in ?? ()
#24 0x4118e2d8 in QString::shared_null () from /usr/lib/qt/lib/libqt-mt.so.3
#25 0xbfffeee0 in ?? ()
#26 0xbfffee80 in ?? ()
#27 0xbffff030 in ?? ()
#28 0x400cc4a6 in typeinfo name for QGList ()
   from /opt/kde/lib/libkdeinit_kicker.so
#29 0x00000001 in ?? ()
#30 0x00000001 in ?? ()
#31 0x00000000 in ?? ()
#32 0x00000000 in ?? ()
#33 0x00000000 in ?? ()
#34 0x00000000 in ?? ()
#35 0x400cc139 in ?? () from /opt/kde/lib/libkdeinit_kicker.so
#36 0xbfffee80 in ?? ()
#37 0xbfffeee0 in ?? ()
#38 0x08118be8 in ?? ()
#39 0xbfffef50 in ?? ()
#40 0xbfffef70 in ?? ()
#41 0xbfffef80 in ?? ()
#42 0xbfffefb0 in ?? ()
#43 0xbffff078 in ?? ()
#44 0xbffff030 in ?? ()
#45 0x00000001 in ?? ()
#46 0xbfff0001 in ?? ()
#47 0x00000064 in ?? ()
#48 0x0000000a in ?? ()
#49 0x00000000 in ?? ()
#50 0x00000000 in ?? ()
#51 0x00000000 in ?? ()
#52 0x00000000 in ?? ()
#53 0x00000000 in ?? ()
#54 0x00000000 in ?? ()
#55 0x00000001 in ?? ()
#56 0x00000000 in ?? ()
#57 0x00000000 in ?? ()
#58 0x00000000 in ?? ()
#59 0x00000000 in ?? ()
#60 0x00000000 in ?? ()
#61 0x00000000 in ?? ()
#62 0x00000000 in ?? ()
#63 0x00000000 in ?? ()
#64 0x00000000 in ?? ()
#65 0x00000000 in ?? ()
#66 0x400146b0 in ?? () from /lib/ld-linux.so.2
#67 0x40015240 in ?? ()
#68 0x00000000 in ?? ()
#69 0x00000001 in ?? ()
#70 0x40000001 in ?? ()
#71 0x00000064 in ?? ()
#72 0x00000006 in ?? ()
#73 0x00000000 in ?? ()
#74 0x00000000 in ?? ()
#75 0x00000000 in ?? ()
#76 0x00000000 in ?? ()
#77 0x00000000 in ?? ()
#78 0x00000000 in ?? ()
#79 0x00000000 in ?? ()
#80 0x00000000 in ?? ()
#81 0x00000000 in ?? ()
#82 0x00000000 in ?? ()
#83 0x00000000 in ?? ()
#84 0x00000000 in ?? ()
#85 0x00000000 in ?? ()
#86 0x00000000 in ?? ()
#87 0x00000000 in ?? ()
#88 0x00000000 in ?? ()
#89 0x400150a0 in ?? ()
#90 0x400289ea in ?? () from /opt/kde/lib/libkdeinit_kicker.so
#91 0xbfffef68 in ?? ()
#92 0x40066110 in ?? () from /opt/kde/lib/libkdeinit_kicker.so
#93 0x08125a68 in ?? ()
#94 0x400150a0 in ?? ()
#95 0x00000000 in ?? ()
#96 0x00000000 in ?? ()
#97 0x08125b70 in ?? ()
#98 0x00000000 in ?? ()
#99 0x00000000 in ?? ()
#100 0x00000000 in ?? ()
#101 0x411612c0 in vtable for QGArray () from /usr/lib/qt/lib/libqt-mt.so.3
#102 0x00000000 in ?? ()
#103 0x00000000 in ?? ()
#104 0x00000000 in ?? ()
#105 0x411612c0 in vtable for QGArray () from /usr/lib/qt/lib/libqt-mt.so.3
#106 0x00000000 in ?? ()
#107 0x400146b0 in ?? () from /lib/ld-linux.so.2
#108 0x00000001 in ?? ()
#109 0x08112658 in ?? ()
#110 0xbfffefc0 in ?? ()
#111 0x4000a0f9 in fixup () from /lib/ld-linux.so.2

I'll also be attaching an strace of the crash.
Comment 1 Dylan Griffiths 2004-10-24 20:10:24 UTC
Created attachment 8017 [details]
Kicker strace of its crash.

Here is the strace listing of kicker's death throes.  It looks like some
communication problem occurs, making it crash.	I've tried (via kcontrol) to
delete and reset the panels (since I have a main panel and 2 child panels; 1
for each Xinerama monitor), but KDE doesn't seem to be smart enough to
self-repair bad values (bad design! :() or allow reseting panels without the
kicker actually running and providing an implementation of a config dialog.
Comment 2 Dylan Griffiths 2004-10-24 20:13:26 UTC
Created attachment 8018 [details]
The config file that caused the crashes.

Here's the config file that caused the crashes.  By renaming this and running
Kicker again, I triggered another kicker crash, but this time it "healed"
itself and actually started a fresh kicker with a default config.

Perhaps you can figure out what code path is not handling an error condition
correctly and fix it.
Comment 3 Aaron J. Seigo 2004-10-24 21:28:04 UTC
first, thanks for the thoroughness. i do appreciate that as the person who gets to deal with these things.

now for the bad news ;-)

the crash was actually due to the WorldWatch applet on one of the childpanels. when this happens after an upgrade it's usually because that applet didn't get updated properly. there is, really, nothing that kicker can do about applets that are "trusted" that crash.

that said, the strace you attach is KUniqueApplication fork'ing and pinging via dcop the actual process. it isn't the crashing application however (which had previously been fork()'d)

and the config file included isn't the one causing the problem. it would be the childpanel config.

as for switching from Xinerama to non-Xinerama, i've actually Q/A'd _exactly_ that (with 2 screens and four panels down to a non-Xinerama X set up) and it works just fine. but then, that wasn't where the bug was =)

as for the "other kicker crash" that occured when you mv'd kickerrc, did you happen to grab a backtrace for that? is it reproducable?

if you add the WorldWatch applet back to the panel, do you experience further crashes? if so, can you provide a backtrace? loading it via appletproxy from the command line is the easiest way to get a good backtrace on an applet. also, did you update the kdetoys package when upgrading?
Comment 4 Jakob Schröter 2004-10-25 00:58:31 UTC
The above backtrace looks similar to one I recently fixed in HEAD and BRANCH. Should be in 3.3.2
Comment 5 Dylan Griffiths 2004-10-26 03:38:09 UTC
"if you add the WorldWatch applet back to the panel, do you experience further crashes? if so, can you provide a backtrace? loading it via appletproxy from the command line is the easiest way to get a good backtrace on an applet. also, did you update the kdetoys package when upgrading?"

I did upgrade the KDE toys package.  All KDE stuff is 3.3.1 from Slackware -current as of Oct 23rd.  Loading the WorldWatch applet nets me a nice empty space on the kicker panel with a handle, but no rendered client data.  I don't know what's going on there :-/

Why are child applets trusted?  Wouldn't it be possible to design kicker such that no child applets could crash kicker?
Comment 6 Aaron J. Seigo 2004-10-26 04:30:22 UTC
ok, so the WorldWatch applet is broken. that's the problem here. if you wish to find out more information run `appletproxy kwwapplet` from a konsole window.

> Why are child applets trusted?

lower overhead and easier management...

> Wouldn't it be possible to design kicker such that no child applets could
> crash kicker? 

yes, we could run every applet in the appletproxy at all times. i'll seriously consider this.

for now, can you try running the wwapplet through appletproxy and let me know what it says? thanks =)
Comment 7 Dylan Griffiths 2004-10-26 04:47:00 UTC
dylang@shadowgate:~$ appletproxy kwwapplet


FAILURE (KCmdLineArgs):
Application requests for isSet("theme") but the "theme" option
has never been specified via addCmdLineOptions( ... )


dylang@shadowgate:~$ echo $?
255

I really do not know anything about the internal design of the applet framework or kicker; I've only programmed Gnome panel applets, and then only a few years back as a lark (because C is fun to debug, especially when the stupid Gnome interfaces are not document :))...
Comment 8 Jakob Schröter 2004-10-26 12:30:48 UTC
As mentioned before, the worldwatch applet is fixed. Was bug #88802.
Dylan, any news from that other crash without config file? Maybe this should go into a new bug report if you can reproduce it. 
So this one can be closed, I think.

*** This bug has been marked as a duplicate of 88802 ***