Subject: bug#2892: Crash in update_frame

From: Eric Hanchrow <[email-masked]>
Date: Sun, 5 Apr 2009 08:09:33 -0700

I'm not sure what I was doing when it crashed; all I know is that I
ran "emacsclient  --no-wait --create-frame" to connect, and that
program didn't appear to do anything; I looked at the debugger and
found this.

SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not
from terminal]
DISPLAY = :0.0
TERM = screen-bce
Breakpoint 1 at 0x8124736: file emacs.c, line 432.
Breakpoint 2 at 0x8141f09: file sysdep.c, line 1146.
Starting program: /usr/local/src/emacs/src/emacs -nw
[Thread debugging using libthread_db enabled]
[New Thread 0xb7162b10 (LWP 8063)]
[Switching to Thread 0xb7162b10 (LWP 8063)]

Program received signal SIGSEGV, Segmentation fault.
0x0805ed14 in update_frame (f=0x9d71928, force_p=0,
inhibit_hairy_id_p=0) at dispnew.c:2695
2695	  for (i = FRAME_TOP_MARGIN (f); i < f->desired_matrix->nrows; ++i)
#0  0x0805ed14 in update_frame (f=0x9d71928, force_p=0,
inhibit_hairy_id_p=0) at dispnew.c:2695
	paused_p = <value optimized out>
	root_window = (struct window *) 0xa4f8a88
#1  0x0808bd0b in redisplay_internal (preserve_echo_area=<value
optimized out>) at xdisp.c:11925
	mini_window = <value optimized out>
	mini_frame = <value optimized out>
	w = (struct window *) 0xa4f8a88
	pause = 0
	must_finish = 0
	number_of_visible_frames = 2
	polling_stopped_here = 0
	old_frame = 165091628
	consider_all_windows_p = 0
#2  0x0808c212 in redisplay_preserve_echo_area (from_where=8) at xdisp.c:12077
No locals.
#3  0x08131472 in detect_input_pending_run_timers (do_display=1) at
keyboard.c:10649
	old_timers_run = 116917
#4  0x081d0be3 in wait_reading_process_output (time_limit=30,
microsecs=0, read_kbd=-1, do_display=1,
    wait_for_cell=137973017, wait_proc=0x0, just_wait_proc=0) at process.c:4892
	old_timers_run = 116917
	old_buffer = (struct buffer *) 0x9d76738
	old_window = 172984972
	leave = 2
	timeout_reduced_for_timers = 1
	channel = 1
	nfds = 2
	Available = {
  fds_bits = {98304, 0 <repeats 31 times>}
}
	Connecting = {
  fds_bits = {0 <repeats 32 times>}
}
	check_connect = 0
	check_delay = 3
	no_avail = 0
	xerrno = 0
	proc = 116868
	timeout = {
  tv_sec = 0,
  tv_usec = 0
}
	end_time = {
  tv_sec = 1238909845,
  tv_usec = 681352
}
	wait_channel = -1
	got_some_input = 0
#5  0x080582c8 in sit_for (timeout=240, reading=1, do_display=1) at
dispnew.c:6644
	sec = 30
	usec = 0
#6  0x08132dc7 in read_char (commandflag=1, nmaps=5, maps=0xbfdcaa70,
prev_event=137973017, used_mouse_menu=0xbfdcab30,
    end_time=0x0) at keyboard.c:2948
	tem0 = <value optimized out>
	delay_level = 30
	buffer_size = <value optimized out>
	c = 137973017
	local_getcjmp = {{
    __jmpbuf = {5, 137973017, 1, -1076057576, -1502625293, 962717852},
    __mask_was_saved = 0,
    __saved_mask = {
      __val = {165111612, 3218909528, 136202978, 137973017, 138192369,
165111612, 40, 3218909552, 245912, 0, 4294967295,
        3218909548, 165111608, 3218909768, 135849561, 138002369,
245920, 165111612, 139181317, 138092312, 138924553,
        3218909608, 135809800, 138924553, 137973017, 137973017, 0,
3218909672, 137973017, 3218909640, 138924553, 138924553}
    }
  }}
	save_jump = {{
    __jmpbuf = {4, 137973017, 1, -1076060568, -1508351501, 962717852},
    __mask_was_saved = 0,
    __saved_mask = {
      __val = {138002369, 1, 4294967295, 3218906524, 4294967295,
3218906744, 135849664, 137973017, 138002369, 164164468,
        138006193, 3218906648, 138006193, 3218906568, 135807474,
138006193, 0, 3218906600, 135914262, 14, 14, 36, 164164468,
        0, 170057880, 3218906600, 136176775, 14, 138192369,
3218906632, 136178143, 14}
    }
  }}
	key_already_recorded = 0
	tem = 0
	save = <value optimized out>
	previous_echo_area_message = 137973017
	also_record = 137973017
	reread = 0
	polling_stopped_here = <value optimized out>
	orig_kboard = (struct kboard *) 0xabf72c8
#7  0x08134382 in read_key_sequence (keybuf=0xbfdcabe4, bufsize=30,
prompt=137973017, dont_downcase_last=0,
    can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:9456
	interrupted_kboard = (KBOARD *) 0xabf72c8
	key = 165111612
	used_mouse_menu = 0
	echo_local_start = 0
	last_real_key_start = 0
	keys_local_start = 0
	local_first_binding = 0
	from_string = 137973017
	count = 2
	t = 0
	echo_start = 0
	keys_start = 0
	nmaps = 5
	nmaps_allocated = 5
	defs = (Lisp_Object * volatile) 0xbfdcaa40
	submaps = (Lisp_Object * volatile) 0xbfdcaa70
	orig_local_map = 164754141
	orig_keymap = 137973017
	localized_local_map = 0
	first_binding = 0
	first_unbound = 31
	mock_input = 0
	fkey = {
  parent = 181429453,
  map = 181429453,
  start = 0,
  end = 0
}
	keytran = {
  parent = 137966461,
  map = 137966461,
  start = 0,
  end = 0
}
	indec = {
  parent = 181429461,
  map = 181429461,
  start = 0,
  end = 0
}
	shift_translated = 0
	delayed_switch_frame = 137973017
	original_uppercase = 137973017
	original_uppercase_position = -1
	starting_buffer = (struct buffer *) 0x9d76738
	fake_prefixed_keys = 137973017
#8  0x08135fe3 in command_loop_1 () at keyboard.c:1642
	cmd = <value optimized out>
	lose = 169331568
	nonundocount = 0
	keybuf = {104, 376, 137973017, 808, 137973017, -1076056984,
135461256, 172559517, -1076057050, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, -1076057020, -1076057184, 0, -65536, 137973017, 138955001,
1175425024, 0, 138500280, 138500264, 1175425024}
	i = 169331568
	prev_modiff = 10367
	prev_buffer = (struct buffer *) 0x9d76738
	already_adjusted = 0
#9  0x081940c0 in internal_condition_case (bfun=0x8135e00
<command_loop_1>, handlers=138016153, hfun=0x812f8a0 <cmd_error>)
    at eval.c:1512
	val = <value optimized out>
	c = {
  tag = 137973017,
  val = 137973017,
  next = 0xbfdcad90,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 138500280, 138500264, -1076056744, -1502027277,
765526684},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {3087839220, 3071689064, 31, 3218910164, 3087761565,
139532536, 3218910076, 3075217675, 3076186100,
          3076190528, 3087821756, 3218910112, 3075232950, 276967387,
3077659272, 8655230, 58, 3218910768, 3218910476,
          3218910768, 3218910616, 135532772, 2, 3218910628,
3218910476, 0, 0, 0, 0, 0, 0, 0}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
	h = {
  handler = 138016153,
  var = 137973017,
  chosen_clause = 137973065,
  tag = 0xbfdcac7c,
  next = 0x0
}
#10 0x0812ecf5 in command_loop_2 () at keyboard.c:1359
	val = 0
#11 0x0819419a in internal_catch (tag=138012177, func=0x812ecd0
<command_loop_2>, arg=137973017) at eval.c:1248
	c = {
  tag = 138012177,
  val = 137973017,
  next = 0x0,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 138500280, 138500264, -1076056488, -1501888013,
765663900},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {0, 0, 0, 0, 0, 139469152, 3076076215, 3076083008,
3076070449, 3076070239, 0, 0, 0, 3076190584, 176, 22, 0,
          1, 140614864, 0, 138212248, 138212650, 137998872,
3218910792, 135811691, 138212249, 138212650, 137973017,
          137998872, 137973041, 138212648, 0}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
#12 0x0812f6ef in command_loop () at keyboard.c:1338
No locals.
#13 0x0812faab in recursive_edit_1 () at keyboard.c:953
	val = <value optimized out>
#14 0x0812fbf4 in Frecursive_edit () at keyboard.c:1015
	buffer = 137973017
#15 0x08125757 in main (argc=2, argv=0xbfdcb264) at emacs.c:1852
	dummy = 140228128
	stack_bottom_variable = 8 '\b'
	do_initial_setlocale = 1
	skip_args = 1
	rlim = {
  rlim_cur = 8388608,
  rlim_max = 18446744073709551615
}
	no_loadup = 0
	junk = 0x0
	dname_arg = 0x0
quit
The program is running.  Exit anyway? (y or n)