emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.50; Emacs seg fault


From: Kim F. Storm
Subject: Re: 23.0.50; Emacs seg fault
Date: Mon, 08 Oct 2007 15:01:46 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Leo <address@hidden> writes:

> On 2007-10-07 22:35 +0100, Kim F. Storm wrote:
>> Leo <address@hidden> writes:
>>
>>> On 2007-10-06 23:41 +0100, Kim F. Storm wrote:
>>>> Just a wild guess - could you try to change "AIX" to "1" in the above
>>>> code and see if that makes any difference...
>>>
>>> I wasn't able to compile. See:
>>>
>>> ......
>>> make[1]: Entering directory `/home/emacs/src'
>>> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H -DUSE_GTK
>>> -I. -I/home/emacs/src -D_BSD_SOURCE -I/usr/include/gtk-2.0
>>> -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
>>> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
>>> -I/usr/lib/glib-2.0/include -I/usr/include/freetype2
>>> -I/usr/include/alsa -I/usr/include/librsvg-2 -I/usr/include/glib-2.0
>>> -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -g -O0 process.c
>>> process.c:4641:8: error: macro names must be identifiers
>>> make[1]: *** [process.o] Error 1
>>> make[1]: Leaving directory `/home/emacs/src'
>>> make: *** [src] Error 2
>>
>> Sorry, I meant replace
>>
>> #ifdef AIX
>>
>> by 
>>
>> #if 1
>
> Now emacs doesn't CRASH.

Thanks for testing.  Does anybody know anything about this?

The relevant code is this:

          else if (xerrno == EBADF)
            {
#ifdef AIX
              /* AIX doesn't handle PTY closure the same way BSD does.  On AIX,
                 the child's closure of the pts gives the parent a SIGHUP, and
                 the ptc file descriptor is automatically closed,
                 yielding EBADF here or at select() call above.
                 So, SIGHUP is ignored (see def of PTY_TTY_NAME_SPRINTF
                 in m/ibmrt-aix.h), and here we just ignore the select error.
                 Cleanup occurs c/o status_notify after SIGCLD. */
              no_avail = 1; /* Cannot depend on values returned */
#else
              abort ();
#endif
            }


For some reason this happens to Leo on

In GNU Emacs 23.0.50.4 (i686-pc-linux-gnu, GTK+ Version 2.10.14)
 of 2007-09-29 on Fedora
configured using `configure  '--prefix=/usr/local/packages/emacs' 
'--enable-locallisppath=/usr/local/share/emacs/site-lisp' 
'--without-toolkit-scroll-bars''

Maybe Linux behaviour here is more like AIX than BSD here,
Or it is timing related - although I cannot see where it happens.

My previous patch moving suspicious code before setting up the fd-sets
didn't help  [Leo, are you absolutely sure you applied the first patch 
correctly]?

In any case, if we believe this is a temporary situation (since we
abort otherwise), always setting no_avail = 1 in this case could be
a solution (if nobody can find out what's wrong -- I CAN'T).

To reproduce:
    1. emacs -nw -q in screen
    2. M-x server-start
    3. switch to Linux console (Ctrl + Alt + F1)
    4. emacsclient -t



-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]