Subject: bug#10159: auto-complete causes crash in emacs HEAD

From: Christopher Monsanto <[email-masked]>
Date: Sat, 22 Sep 2012 07:11:01 -0400

I'm one of the auto-complete maintainers. AC is a really popular
package, and for me at least, this bug makes Emacs near-unusable.
Fixing this bug is my top priority as far as FOSS stuff goes, so any
help from those who know the C source would be appreciated.

I can reproduce this pretty much every time with optimizations
disabled, using the attached init-ac.el. Before running this test,
make sure you have auto-complete installed: execute

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)

and then M-x package-install auto-complete.

Now, exit that emacs, and use gdb -ex run --args emacs -Q --load
init-ac.el and type "def " as fast as you can. It should crash with
SIGSEGV.

Starting program: /usr/local/bin/emacs -Q --load init-ac.el
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffee19d700 (LWP 3987)]
[New Thread 0x7fffec92b700 (LWP 3988)]

Program received signal SIGSEGV, Segmentation fault.
0x00000000004da993 in char_table_ref (table=12919621, c=4194433) at
chartab.c:234
234	      if (SUB_CHAR_TABLE_P (val))

Attached is the result of bt full in gdb.txt. I left GDB open in case
I should run some more commands.

And here is output from report-emacs-bug:

In GNU Emacs 24.2.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2012-09-22 on linuxpimpbox
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
Configured using:
 `configure 'CFLAGS=-g''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  global-auto-complete-mode: t
  auto-complete-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <down-mouse-1>
<mouse-1> <down-mouse-1> <mouse-1> M-x r e p o r t
- e m a c s - b u g <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils advice help-fns advice-preload
auto-complete-config auto-complete edmacro kmacro cl-macs gv popup cl
cl-lib auto-complete-autoloads popup-autoloads package time-date tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)

Christopher Monsanto
[email-masked]  --  http://monsan.to/