(*** This bug was imported into bugs.kde.org ***) Package: kdesktop Version: kdebase 2.2-3 (using KDE 2.2.0 ) Severity: normal Installed from: RedHat RPMs Compiler: Not Specified OS: Linux OS/Compiler notes: glibc 2.2.4-5 Running Esetroot causes Kdesktop to crash/shut down. Esetroot sets the bagground image for applications such as Eterm which depends on a Enlightment compliant window manager to run in transparent mode. The crash occurs with probably all types of images (tested is png bmp and jpg) and is probably caused by Esetroot actually changing the bagground image which kdesktop won't accept. A workaround is to simply restart kdesktop and everything is back to normal with the settings of Esetroot still active. Would it be possible to correct this error by providing the functionality of Esetroot in kdesktop? (Submitted via bugs.kde.org)
Please provide a backtrace of kdesktop The easiest way is kdesktop --nofork gdb kdesktop core bt but you'll probably need to recompile kdesktop from sources first... This looks related to #47644...
Hi.. Can reproduce with HEAD and Eterm-0.9.1-6mdk Nasty bt, not a crash but an abort due to an XIO error(!), will try with XSYnchronize shortly: Breakpoint 3, 0x40932526 in QApplication::exit(int) () from /usr/lib/libqt-mt.so.3 (gdb) bt #0 0x40932526 in QApplication::exit(int) () from /usr/lib/libqt-mt.so.3 #1 0x405fc53b in KApplication::xioErrhandler() () from /opt/kde3/lib/libkdecore.so.4 #2 0x405faf18 in kde_xio_errhandler () from /opt/kde3/lib/libkdecore.so.4 #3 0x40ddad05 in _XIOError () from /usr/X11R6/lib/libX11.so.6 #4 0x40dd904c in _XRead () from /usr/X11R6/lib/libX11.so.6 #5 0x40dd86c9 in _XEventsQueued () from /usr/X11R6/lib/libX11.so.6 #6 0x40dcbb58 in XPending () from /usr/X11R6/lib/libX11.so.6 #7 0x408e872f in QEventLoop::processEvents(unsigned) (this=0x808a188, flags=4) at kernel/qeventloop_x11.cpp:146 #8 0x4094631b in QEventLoop::enterLoop() (this=0x808a188) at kernel/qeventloop.cpp:188 #9 0x4094625e in QEventLoop::exec() (this=0x808a188) at kernel/qeventloop.cpp:138 #10 0x40932511 in QApplication::exec() () from /usr/lib/libqt-mt.so.3 #11 0x4003ae10 in main () from /opt/kde3/lib/kdesktop.so #12 0x40fea082 in __libc_start_main () from /lib/i686/libc.so.6
OK, I think this is not a kdesktop bug at all -- it's Esetroot being a horrible citizen, and killing kdesktop. From its sources - note the XKillClient line; if it gets removed, kdesktop keeps on running (ironically, kdesktop gets killed because it provides ESETROOT_PMAP_ID): prop_root = XInternAtom(Xdisplay, "_XROOTPMAP_ID", True); prop_esetroot = XInternAtom(Xdisplay, "ESETROOT_PMAP_ID", True); if (debug) { fprintf(stderr, "%s:%d: set_pixmap_property(0x%08x): prop_root == 0x%08x, prop_esetroot == 0x%08x\n", __FILE__, __LINE__, (unsigned int) p, (unsigned int) prop_root, (unsigned int) prop_esetroot); } if (prop_root != None && prop_esetroot != None) { XGetWindowProperty(Xdisplay, Xroot, prop_root, 0L, 1L, False, AnyPropertyType, &type, &format, &length, &after, &data_root); if (type == XA_PIXMAP) { XGetWindowProperty(Xdisplay, Xroot, prop_esetroot, 0L, 1L, False, AnyPropertyType, &type, &format, &length, &after, &data_esetroot); if (data_root && data_esetroot) { if (debug) { fprintf(stderr, "%s:%d: set_pixmap_property(0x%08x): data_root == 0x%08x, data_esetroot == 0x%08x\n", __FILE__, __LINE__, (unsigned int) p, (unsigned int) *((Pixmap *) data_root), (unsigned int) *((Pixmap *) data_esetroot)); } if (type == XA_PIXMAP && *((Pixmap *) data_root) == *((Pixmap *) data_esetroot)) { if (debug) { fprintf(stderr, "%s:%d: set_pixmap_property(0x%08x): XKillClient() is being called.\n", __FILE__, __LINE__, (unsigned int) p); } XKillClient(Xdisplay, *((Pixmap *) data_root)); } } } }
This was kdesktop bug - it's not supposed to export ESETROOT_PMAP_ID when it can't cope with being XKillClient()-ed. Fixed. Note that Esetroot won't have any visual effect with kdesktop anyway.