Subject: bug#104: 23.0.60; Emacs core dumps on (load "non-existent-file" t t)

From: Reiner Steib <[email-masked]>
Date: Sun, 30 Mar 2008 23:07:46 +0200

> Please describe exactly what actions triggered the bug
> and the precise symptoms of the bug:

When I start Emacs (trunk, updated & bootstrapped today), it core
dumps during startup.  I cannot reproduce the crash...

- with `-Q'
- with `-nw'
- when starting it under gdb
- when starting it in ./src

I could trace it down (see strace output below) to
  (load rs-custom-file t t)
in an init file.  When I comment this line, Emacs starts correctly.
`rs-custom-file' is "~/.emacs-custom", but this file doesn't exist:

~$ ls .emacs-custom*
ls: cannot access .emacs-custom*: No such file or directory

> If Emacs crashed, and you have the Emacs process in the gdb debugger,
> please include the output from the following gdb commands:
>     `bt full' and `xbacktrace'.

As I can't reproduce it under gdb, I did:

cvs-HEAD/i686/src$ (cd ..; rm -vf core; ./src/emacs; ls -l core )
removed `core'
-rw------- 1 ste rein 16732160 2008-03-30 22:34 core

,----
| cvs-HEAD/i686/src$ gdb ./emacs ../core
| [...]
| (gdb) bt
| #0  0xb7ee9410 in ?? ()
| #1  0xbf8db208 in ?? ()
| #2  0x0000000b in ?? ()
| #3  0x0000000b in ?? ()
| #4  0xb7479386 in kill () from /lib/libc.so.6
| #5  0x081819d5 in fatal_error_signal (sig=11)
|     at [...]/cvs-HEAD/emacs/src/emacs.c:400
| #6  0xb7ee9420 in ?? ()
| #7  0x0000000b in ?? ()
| #8  0x00000033 in ?? ()
| #9  0x00000000 in ?? ()
| 
| Lisp Backtrace:
| "load" (0xbf8db960)
| "eval-buffer" (0xbf8dbb64)
| "load-with-code-conversion" (0xbf8dbe84)
| "load" (0xbf8dc0c0)
| "if" (0xbf8dc228)
| "when" (0xbf8dc318)
| "if" (0xbf8dc448)
| "unless" (0xbf8dc538)
| "eval-buffer" (0xbf8dc6e4)
| "load-with-code-conversion" (0xbf8dca04)
| "load" (0xbf8dccb4)
| 0x82ded6c PVEC_COMPILED
| "byte-code" (0xbf8dd240)
| "command-line" (0xbf8dd704)
| "normal-top-level" (0xbf8dd980)
`----

Here's the output of strace:

,----
| cvs-HEAD/i686$ strace -e trace=file ./src/emacs 
| [...]
| readlink("/Disks", 0x90750e0, 100)      = -1 EINVAL (Invalid argument)
| readlink("/Disks/local", 0x9035180, 100) = -1 EINVAL (Invalid argument)
| readlink("/Disks/local/share", 0x90180d8, 100) = -1 EINVAL (Invalid argument)
| readlink("/Disks/local/share/emacs", 0x9019018, 100) = -1 EINVAL (Invalid argument)
| readlink("/Disks/local/share/emacs/site-lisp", 0x90750e0, 100) = -1 EINVAL (Invalid argument)
| readlink("/Disks/local/share/emacs/site-lisp/www-setup.el", 0x9035180, 100) = -1 EINVAL (Invalid argument)
| --- SIGIO (I/O possible) @ 0 (0) ---
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.elc.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.el.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| stat64("/home/.../.emacs-custom.gz", 0xbfc8c9d4) = -1 ENOENT (No such file or directory)
| --- SIGSEGV (Segmentation fault) @ 0 (90c4ca9) ---
| --- SIGSEGV (Segmentation fault) @ 0 (5a5d) ---
| +++ killed by SIGSEGV (core dumped) +++
| Process 23133 detached
`----

> In GNU Emacs 23.0.60.2 (i686-pc-linux-gnu, GTK+ Version 2.10.6)
>  of 2008-03-30 on viandante
> Windowing system distributor `The X.Org Foundation', version 11.0.70199902
> configured using `configure  '--prefix=/import/xtra/emacs/HEAD' '--exec-prefix=/import/xtra/emacs/HEAD-i686' 'CFLAGS=-Wno-pointer-sign -O0 -fno-crossjumping -gdwarf-2 -g3''

> Important settings:
>   value of $LC_ALL: nil
>   value of $LC_COLLATE: nil
>   value of $LC_CTYPE: nil
>   value of $LC_MESSAGES: nil
>   value of $LC_MONETARY: nil
>   value of $LC_NUMERIC: nil
>   value of $LC_TIME: nil
>   value of $LANG: en_US.UTF-8
>   value of $XMODIFIERS: @im=local
>   locale-coding-system: utf-8-unix
>   default-enable-multibyte-characters: t

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/