Subject: 24.4.50; crash when setting face background in terminal frame

From: Nicolas Avrutin <[email-masked]>
Date: Tue, 05 Aug 2014 04:12:20 -0400

Starting emacs with -nw and setting a face background (only tested with
the 'default face) causes emacs to crash.

Steps to reproduce:
1. build emacs from trunk (the crash does not occur on the emacs-24
branch)
2. emacs -Q -nw
3. M-: (set-face-attribute 'default nil :background "blue")

Backtrace:
(gdb) bt full
#0  terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=40) at emacs.c:359
No locals.
#1  0x00000000004f4e77 in emacs_abort () at sysdep.c:2198
No locals.
#2  0x000000000049ea53 in cmcheckmagic (tty=0x6, tty@entry=0x13c6ce0) at cm.c:120
No locals.
#3  0x00000000004a4a48 in tty_write_glyphs (f=<optimized out>, string=0xe35a50, len=<optimized out>) at term.c:802
        conversion_buffer = <optimized out>
        coding = 0x13c6a70
        n = <optimized out>
        stringlen = 0
        tty = 0x13c6ce0
#4  0x00000000004a6ee8 in write_glyphs (f=f@entry=0xbe4e38, string=string@entry=0xe34130, len=len@entry=134) at terminal.c:162
No locals.
#5  0x000000000041b01c in update_frame_line (f=f@entry=0xbe4e38, vpos=<optimized out>) at dispnew.c:4854
        obody = 0x0
        nbody = 0xe34130
        op1 = <optimized out>
        op2 = <optimized out>
        np1 = <optimized out>
        nend = 0xe35a50
        tem = <optimized out>
        osp = <optimized out>
        nsp = <optimized out>
        begmatch = <optimized out>
        endmatch = <optimized out>
        olen = 0
        nlen = 134
        current_matrix = <optimized out>
        desired_matrix = <optimized out>
        current_row = <optimized out>
        desired_row = <optimized out>
        must_write_whole_line_p = <optimized out>
        write_spaces_p = <optimized out>
        colored_spaces_p = true
#6  0x000000000041caf3 in update_frame_1 (f=f@entry=0xbe4e38, force_p=force_p@entry=true, inhibit_id_p=inhibit_id_p@entry=false, 
    set_cursor_p=set_cursor_p@entry=true) at dispnew.c:4515
        current_matrix = 0xbe8420
        desired_matrix = 0xbe83b0
        i = <optimized out>
        pause_p = <optimized out>
        preempt_count = 17
#7  0x000000000041dbf0 in update_frame (f=f@entry=0xbe4e38, force_p=true, force_p@entry=false, 
    inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3116
        paused_p = <optimized out>
#8  0x00000000004512a4 in redisplay_internal () at xdisp.c:13869
        gcscrollbars = <optimized out>
        w = <optimized out>
        sw = <optimized out>
        pending = <optimized out>
        must_finish = <optimized out>
        match_p = <optimized out>
        tlbufpos = <optimized out>
        tlendpos = <optimized out>
        number_of_visible_frames = <optimized out>
        polling_stopped_here = 1
        tail = 12362998
        consider_all_windows_p = <optimized out>
        update_miniwindow_p = <optimized out>
#9  0x00000000004517fd in redisplay () at xdisp.c:13115
No locals.
#10 0x00000000004e838b in read_char (commandflag=1, map=map@entry=19795862, prev_event=12390578, 
    used_mouse_menu=used_mouse_menu@entry=0x7fffffffc25b, end_time=end_time@entry=0x0) at keyboard.c:2563
        echo_current = false
        c = <optimized out>
        jmpcount = <optimized out>
        local_getcjmp = {{
            __jmpbuf = {16752048, 5179671, 12390578, 0, 12417413, 12423154, 192, 0}, 
            __mask_was_saved = -16040, 
            __saved_mask = {
              __val = {12390578, 12390578, 16752054, 0, 2, 19795878, 4294967295, 12390578, 12390626, 12390578, 5181284, 19584758, 
                12390578, 12390626, 0, 12390578}
            }
          }}
        save_jump = {{
---Type <return> to continue, or q <return> to quit---
            __jmpbuf = {0, 0, 0, -1, 4294967297, 4, 0, 0}, 
            __mask_was_saved = 0, 
            __saved_mask = {
              __val = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5488403, 0, 5468688, 2, 15884032, 16910658}
            }
          }}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = 12390578
        also_record = 12390578
        reread = false
        polling_stopped_here = false
        orig_kboard = 0x13c92d0
#11 0x00000000004e99a9 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffc320, bufsize=bufsize@entry=30, prompt=<optimized out>, 
    dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, 
    fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=false) at keyboard.c:9125
        interrupted_kboard = 0x13c92d0
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = <optimized out>
        new_binding = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = 19795862
        first_event = 12390578
        first_unbound = 31
        mock_input = 0
        fkey = {
          parent = 15725926, 
          map = 15725926, 
          start = 0, 
          end = 0
        }
        keytran = {
          parent = 12370502, 
          map = 12370502, 
          start = 0, 
          end = 0
        }
        indec = {
          parent = 15725942, 
          map = 15725942, 
          start = 0, 
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = 12390578
        original_uppercase = 12581826
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0xbd7980
        fake_prefixed_keys = 12390578
#12 0x00000000004eb2b8 in command_loop_1 () at keyboard.c:1438
        cmd = <optimized out>
        keybuf = {108, 232, 11995584, 12390400, 0, 5470196, 140737488339968, 5535579, 12515824, 12390578, 12390578, 12390578, 
          20586736, 12390578, 0, 5470239, 12515826, 5470566, 12515824, 2, 12625046, 5533128, 0, 2, 15899862, 4000, 1, 0, 0, 5541270}
        i = <optimized out>
        prev_modiff = 10
        prev_buffer = 0xbd7980
#13 0x0000000000546570 in internal_condition_case (bfun=bfun@entry=0x4eafbc <command_loop_1>, handlers=12442482, 
    hfun=hfun@entry=0x4e22f6 <cmd_error>) at eval.c:1347
        val = <optimized out>
        c = <optimized out>
#14 0x00000000004de295 in command_loop_2 (ignore=ignore@entry=12390578) at keyboard.c:1169
        val = <optimized out>
#15 0x0000000000546451 in internal_catch (tag=12438450, func=func@entry=0x4de27b <command_loop_2>, arg=12390578) at eval.c:1111
        val = <optimized out>
        c = <optimized out>
#16 0x00000000004de22d in command_loop () at keyboard.c:1148
No locals.
#17 0x00000000004e1f58 in recursive_edit_1 () at keyboard.c:769
        val = <optimized out>
---Type <return> to continue, or q <return> to quit---
#18 0x00000000004e2228 in Frecursive_edit () at keyboard.c:840
        buffer = <optimized out>
#19 0x00000000004ddce4 in main (argc=<optimized out>, argv=0x7fffffffc638) at emacs.c:1650
        dummy = 6031885
        stack_bottom_variable = 0 '\000'
        do_initial_setlocale = <optimized out>
        dumping = false
        skip_args = 1
        rlim = {
          rlim_cur = 8720000, 
          rlim_max = 18446744073709551615
        }
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0

Lisp Backtrace:
"redisplay_internal (C function)" (0xb99298)

In GNU Emacs 24.4.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2)
 of 2014-08-05 on gateway
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Arch Linux

Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-sound=alsa
 --without-gconf --with-x-toolkit=gtk3 --without-toolkit-scroll-bars
 --with-xft 'CFLAGS=-Og -g3' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-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

Recent input:
M-x r e p o r t - e m <tab> <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 dired 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 help-fns mail-prsvr mail-utils time-date tooltip
electric uniquify 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 prog-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 nadvice 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 gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 75917 8244)
 (symbols 48 17987 0)
 (miscs 40 38 91)
 (strings 32 10685 4040)
 (string-bytes 1 302814)
 (vectors 16 9357)
 (vector-slots 8 386642 15148)
 (floats 8 70 190)
 (intervals 56 185 0)
 (buffers 976 11)
 (heap 1024 15888 917))
 
-- 
Nicolas Avrutin