Crashes running emacs or xemacs: segmentation fault

Stephen J. Turnbull stephen at xemacs.org
Wed Mar 9 10:07:00 EST 2005


>>>>> "Matthew" == Matthew Johnson <mjohnson at lightsurf.com> writes:

    Matthew> Lisp backtrace follows:

    Matthew>   kill-emacs()

>From your Installation:

    Matthew> '--with-modules=no' '--with-dialogs=motif' '--with-widgets=motif'

    Matthew>   Compiling in support for Motif.
    Matthew>     - Using LessTif implementation.
    Matthew>   *WARNING*  Many versions of Motif are buggy, requiring workarounds.
    Matthew>              You are likely to experience slow redisplay.
    Matthew>              You may need to install vendor patches to Motif.
    Matthew>              See PROBLEMS for more information.

    Matthew> Finally, no, alas, I don't remember what I was doing when the error occured.

You were exiting, it looks like.  If so, you can maybe just live with
it; AFAIK it doesn't actually happen until well after all user data is
safely tucked away in files.

We are _not_ kidding with that warning.  There are many known bugs in
various versions of Motif, here are two of them:

** Motif

Motif is the X11 version of the Gnus torture test: if there's a way to
crash, Motif will find it.  With the open source release of Motif, it
seems like a good idea to collect all Motif-related issues in one
place.

You should also look in your OS's section, as it may not be Motif's
fault.

*** XEmacs crashes on exit (#1).

The backtrace is something like:

    (gdb) where
    #0  0xfeb9a480 in _libc_kill () from /usr/lib/libc.so.1
    #1  0x000b0388 in fatal_error_signal ()
    #2  <signal handler called>
    #3  YowIter (ht=0xb, id=0x0, v=0x74682074, client=0x47e3c0)
        at ImageCache.c:1159
    #4  0xff26cc5c in _LTHashTableForEachItem (ht=0x4725e8,
        iter=0xff26dda0 <YowIter>, ClientData=0x47e3c0) at Hash.c:671
    #5  0xff2a4664 in destroy (w=0x496550) at Screen.c:352
    #6  0xfef92118 in Phase2Destroy () from /usr/openwin/lib/libXt.so.4
    #7  0xfef91940 in Recursive () from /usr/openwin/lib/libXt.so.4
    #8  0xfef91e44 in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4
    #9  0xfef91ae8 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4
    #10 0xfef918cc in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4
    #11 0xfef91438 in CloseDisplay () from /usr/openwin/lib/libXt.so.4
    #12 0xfef91394 in XtCloseDisplay () from /usr/openwin/lib/libXt.so.4
    #13 0x0025b8b0 in x_delete_device ()
    #14 0x000940b0 in delete_device_internal ()
    #15 0x000806a0 in delete_console_internal ()

This is known to happen with Lesstif version 0.93.36.  Similar
backtraces have also been observed on HP/UX and Solaris.  There is a
patch for Lesstif.  (This is not a solution; it just stops the crash.
It may or may not be harmless, but "it works for the author".)

Note that this backtrace looks a lot like the one in the next item.
However, this one is invulnerable to the Solaris patches mentioned there.

Frank McIngvale <frankm at hiwaay.net> says:

    Ok, 0.93.34 works, and I tracked down the crash to a section
    marked "experimental" in 0.93.36. Patch attached, "works for me".

diff -u -r lesstif-0.93.36/lib/Xm/ImageCache.c lesstif-0.93.36-mod/lib/Xm/ImageCache.c
--- lesstif-0.93.36/lib/Xm/ImageCache.c	2002-08-05 14:53:24.000000000 -0500
+++ lesstif-0.93.36-mod/lib/Xm/ImageCache.c	2002-11-11 11:13:12.000000000 -0600
@@ -1166,5 +1166,4 @@
 	DEBUGOUT(_LtDebug0(__FILE__, NULL, "_LtImageCacheScreenDestroy (XmGetPixmapByDepth) %p\n",
 		s));
 
-	(void) _LTHashTableForEachItem(PixmapCache, YowIter, (XtPointer)s);
 }

*** XEmacs crashes on exit (#2)

Especially frequent with multiple frames.  Crashes that produce C
backtraces like this:

#0  0xfec9a118 in _libc_kill () from /usr/lib/libc.so.1
#1  0x77f48 in fatal_error_signal (sig=11)
    at /codes/rpluim/xemacs-21.4/src/emacs.c:539
#2  <signal handler called>
#3  0xfee929f4 in XFindContext () from /usr/openwin/lib/libX11.so.4
#4  0xfee92930 in XFindContext () from /usr/openwin/lib/libX11.so.4
#5  0xff297e54 in DisplayDestroy () from /usr/dt/lib/libXm.so.4
#6  0xfefbece0 in XtCallCallbackList () from /usr/openwin/lib/libXt.so.4
#7  0xfefc486c in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4
#8  0xfefc45d0 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4
#9  0xfefc43b4 in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4
#10 0x15cf9c in x_delete_device (d=0x523f00)

are caused by buggy Motif libraries.  Installing the following patches
has been reported to solve the problem on Solaris 2.7:

107081-40 107656-07

For information (although they have not been confirmed to work), the
equivalent patches for Solaris 2.8 are:

108940-33 108652-25



-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.




More information about the XEmacs-Beta mailing list