Subject: bug#13969: 24.3; crash when increasing font size in HELLO buffer

From: Peter Dyballa <[email-masked]>
Date: Sat, 16 Mar 2013 00:33:30 +0100

Hello!

Sorry, I had no time to test the RC releases, a new XeTeX version was out for testing. This error is easy to reproduce:

	src/emacs -Q --no-desktop -fn 'Lucida Sans Typewriter:autohint=true:antialias=true:size=9' &
	C-h H
	*while* the window is being filled with text enlarge frame "diagonally" in X and Y direction (right and down from lower right corner)
	with the mouse S-mouse-1 click and select "Increase Buffer Text Size" from pmenu
	in echo area appears: <S-drag-mouse-1> is undefined
		in shell:
	Backtrace:
	0   emacs                               0x0010d3d5 emacs_backtrace + 95^@
		or that:
	0   emacs                               0x0010d43f emacs_backtrace + 95^@
	
	[5]    Bus error                     ./emacs -Q --no-desktop -fn  ... (core dumped)

Mac OS X 10.6.8 intel x86_64, but configured for 32-bit i386 --with-wide-int.

(gdb) set args -Q --no-desktop -fn 'Lucida Sans Typewriter:autohint=true:antialias=true:size=9'
(gdb) run
Starting program: ..../emacs-24.3/src/emacs -Q --no-desktop -fn 'Lucida Sans Typewriter:autohint=true:antialias=true:size=9'
Im Emacs
Reading symbols for shared libraries .. done
Fontconfig warning: "/sw/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000010
0x00cdbec2 in OTF_drive_gsub_internal ()
(gdb) bt full
#0  0x00cdbec2 in OTF_drive_gsub_internal ()
No symbol table info available.
#1  0x00206844 in ftfont_drive_otf (font=0xbfff5800, spec=0x4b0e6b4, in=0xbfff55c8, from=1, to=4, out=0xbfff5738, adjustment=0xbfff45a0) at ftfont.c:1872
	ft_face = (FT_Face) 0x4af2800
	otf = (OTF *) 0x32be850
	len = 3
	i = <value temporarily unavailable, due to optimizations>
	j = <value temporarily unavailable, due to optimizations>
	gidx = 1
	otfg = <value temporarily unavailable, due to optimizations>
	script = "deva"
	langsys = 0x0
	gsub_features = 0xbfff43d0 "nukt,vatu,pres,abvs,blws,psts,haln"
	gpos_features = 0x0
	features = <value temporarily unavailable, due to optimizations>
#2  0x00ce55c9 in run_otf ()
No symbol table info available.
#3  0x00ce7e8d in run_rule ()
No symbol table info available.
#4  0x00ce7e8d in run_rule ()
No symbol table info available.
#5  0x00ce5c38 in run_command ()
No symbol table info available.
#6  0x00ce7e8d in run_rule ()
No symbol table info available.
#7  0x00ce692a in run_stages ()
No symbol table info available.
#8  0x00ce76d5 in mflt_run ()
No symbol table info available.
#9  0x00206296 in ftfont_shape_by_flt [inlined] () at ..../emacs-24.3/src/ftfont.c:2520
	matrix = (FT_Matrix *) #10 0x00206296 in ftfont_shape (lgstring=<value temporarily unavailable, due to optimizations>) at ftfont.c:2584
	result = <value temporarily unavailable, due to optimizations>
	len = 3
	i = 0
	flt_font_ft = {
  flt_font = {
    family = 0x40303b0, 
    x_ppem = 11, 
    y_ppem = 11, 
    get_glyph_id = 0x20203a <ftfont_get_glyph_id>, 
    get_metrics = 0x201e69 <ftfont_get_metrics>, 
    check_otf = 0x201bca <ftfont_check_otf>, 
    drive_otf = 0x2065a7 <ftfont_drive_otf>, 
    internal = 0x323b090
  }, 
  font = 0x22f2c50, 
  ft_face = 0x4af2800, 
  otf = 0x32be850, 
  matrix = 0x0
}
	flt = (MFLT *) 0x0
	with_variation_selector = false
	matrix = (FT_Matrix *) #11 0x0000000b in ?? ()
No symbol table info available.

Lisp Backtrace:
warning: value truncated
warning: value truncated
"font-shape-gstring" (0xbfff5ac0)
warning: value truncated
warning: value truncated
"auto-compose-chars" (0xbfff6028)
warning: value truncated
warning: value truncated
"redisplay_internal (C function)" (0x496f00)
(gdb) xbacktrace
warning: value truncated
warning: value truncated
"font-shape-gstring" (0xbfff5ac0)
warning: value truncated
warning: value truncated
"auto-compose-chars" (0xbfff6028)
warning: value truncated
warning: value truncated
"redisplay_internal (C function)" (0x496f00)
(gdb) quit
The program is running.  Exit anyway? (y or n) y

Debugger finished

I see that optimisation is being a problem, so I'm going to try a build without… When I change -Os to -O0 all runs OK. When I change -Os to -O1 then the crash happens interactively, but I could not trigger it in GDB. With -O2 everything is OK (though I did not try in GDB). With -O3 GNU Emacs crashes only seldomly, and it cannot be reproduced. The same with -O4.

Repeated re-configurations and re-compilations with -Os do not bring back the original behaviour.

I tested:

./emacs -Q --no-desktop -fn 'Latin Modern Mono Light:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Latin Modern Mono Light Cond:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Latin Modern Mono:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'FreeMono:autohint=true:antialias=true:size=9'
./emacs -Q --no-desktop -fn 'DejaVu Sans Mono:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Bitstream Vera Sans Mono:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Monospace:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Linux Libertine Mono O:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Linux Libertine Mono T:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Droid Sans Mono:autohint=true:antialias=true:size=9' &
./emacs -Q --no-desktop -fn 'Lucida Sans Typewriter:autohint=true:antialias=true:size=9' &

Lucida Sans Typewriter comes with Java, the other fonts are in TeX Live 2012.

In GNU Emacs 24.3.1 (i386-apple-darwin10.8.0, X toolkit, Xaw3d scroll bars)
 of 2013-03-15 on sumac.fritz.box
Windowing system distributor `The X.Org Foundation', version 11.0.11302000
Configured using:
 `configure '--build=x86_64-apple-darwin10.8.0'
 '--host=i386-apple-darwin10.8.0' '--target=i386-apple-darwin10.8.0'
 '--without-pop' '--without-sound' '--without-gpm' '--without-dbus'
 '--without-selinux' '--with-wide-int' '--with-x-toolkit=athena'
 '--disable-ns-self-contained' '--without-imagemagick'
 '--x-libraries=/usr/X11/lib' '--x-includes=/usr/X11/include'
 '--enable-locallisppath=/Library/Application
 Support/Emacs/calendar24:/Library/Application Support/Emacs'
 'CFLAGS=-g3 -H -pipe -fPIC -fno-common -Os -march=core2 -mtune=core2
 -m32 -fomit-frame-pointer -msse4.2' 'LDFLAGS=-m32
 -Wl,-dead_strip_dylibs -Wl,-bind_at_load -Wl,-t -L/sw/lib'
 'CPPFLAGS=-I/sw/include' 'CC=gcc-4.2' 'CXX=g++-4.2' 'LD=g++-4.2'
 'PKG_CONFIG_PATH=/sw/lib/xft2/lib/pkgconfig:/sw/share/pkgconfig:/sw/lib/pkgconfig:/usr/X11/lib/pkgconfig:/usr/X11/share/pkgconfig:/usr/lib/pkgconfig'
 'build_alias=x86_64-apple-darwin10.8.0'
 'host_alias=i386-apple-darwin10.8.0'
 'target_alias=i386-apple-darwin10.8.0''

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

Major mode: Lisp Interaction

Minor modes in effect:
  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> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <se
nd-emacs-bug-report>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
"--no-desktop" ignored because the Desktop package is not loaded

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 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 dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)

--
Mit friedvollen Grüßen

  Pete

Isn't vi that text editor with two modes... one that beeps and one that corrupts your file?
				– Dan Jacobson, on comp.os.linux.advocacy