Subject: Re: bug#15834: Crash during bootstrap

From: Eli Zaretskii <[email-masked]>
Date: Sun, 10 Nov 2013 20:24:27 +0200

> From: Andy Moreton <[email-masked]>
> Date: Sun, 10 Nov 2013 12:23:52 +0000
> 
> > Also, can you try reverting 115033, and see if that helps?
> 
> I tried bootstrapping on a different machine from r115032 without
> problems. Bootstrapping from a clean tree from r115053 gave the same
> crash in compiling tramp-smb.el.

Strange.  I've just bootstrapped r115054, both with and without
optimizations, and didn't see any crashes, neither in tramp-smb, nor
anywhere else.

> Backtrace is:
> 
> Thread 1 (Thread 3308.0x1994):
> #0  0x7c90120f in ntdll!DbgUiConnectToDbg () from C:\WINDOWS\system32\ntdll.dll
> No symbol table info available.
> #1  0x01196714 in emacs_abort () at ../../src/w32fns.c:7984
>         button = <optimized out>
> #2  0x010b5f24 in terminate_due_to_signal (sig=sig@entry=0xb, backtrace_limit=backtrace_limit@entry=0x28) at ../../src/emacs.c:377
> No locals.
> #3  0x010cef1d in handle_fatal_signal (sig=0xb) at ../../src/sysdep.c:1624
> No locals.
> #4  deliver_thread_signal (sig=0xb, handler=<optimized out>) at ../../src/sysdep.c:1598
>         handler = 0x10cedd2 <handle_fatal_signal>
> #5  deliver_fatal_thread_signal (sig=0xb) at ../../src/sysdep.c:1636
> No locals.
> #6  0x010011ea in _gnu_exception_handler@4 ()
> No symbol table info available.
> #7  0x7c864209 in UnhandledExceptionFilter () from C:\WINDOWS\system32\kernel32.dll
> No symbol table info available.
> #8  0x0082b0b4 in ?? ()
> No symbol table info available.
> #9  0x7c84396a in ValidateLocale () from C:\WINDOWS\system32\kernel32.dll
> No symbol table info available.
> #10 0x00000000 in ?? ()
> No symbol table info available.
> 
> Lisp Backtrace:
> "Automatic GC" (0x14b050c)
> "byte-optimize-form" (0x82b7cc)

Is this when running Emacs under GDB, or did you attach GDB when the
abort dialog appeared?  Because this shows that the MinGW startup code
caught some fatal exception, but doesn't give enough info about which
Emacs code triggered that exception.  If compiling tramp-smb
consistently triggers this crash, even if invoked manually outside of
the context of bootstrap, then please run the compilation command
under GDB, type "set debugexceptions 1" before typing "run", and see
if you get a better backtrace.  Alternatively, perhaps you could pause
the compilation (e.g., with "Ctrl-S") when it just begins, attach the
debugger then, type "set debugexceptions 1", then continue the program
-- this should also provide more info about the exception.  yet
another way is to hack lisp/Makefile such that compilation of
tramp-smb is invoked by running Emacs under GDB (using the --args
option of GDB).

Failing all that, please try figuring out why this happens to you and
(evidently) no one else, and why in tramp-smb?  Do you have some
SMB-related software or environment variables set up on that system,
per chance?  Perhaps see if removing some of the top-level forms from
tramp-smb makes the problem go away.

Also, what options do you pass to "configure" and "make", and which
optional packages (image libraries etc.) do you have installed?  Are
you using GCC and runtime from mingw.org or from some other
distribution?

The fact that the backtrace mentions ValidateLocale hints that it's
possible that the problem is specific to some locales.  Not sure what
that tells us, though.

In any case, I cannot for the life of me see what could
cache-long-scans have to do with fatal exceptions like this one.
Ideas are welcome.