Summary: | Kdesktop crashes when running Esetroot | ||
---|---|---|---|
Product: | [Unmaintained] kdesktop | Reporter: | martin |
Component: | general | Assignee: | David Faure <faure> |
Status: | CLOSED NOT A BUG | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | RedHat Enterprise Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
martin
2001-08-26 15:28:25 UTC
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. |