emacs21 aborts while typing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
emacs21 (Ubuntu) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Binary package hint: emacs21
A few times per day, when I'm typing or scrolling with the keyboard, emacs aborts and dumps core.
I rebuilt a not-stripped emacs21 on to get a stack trace. Here it is:
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7b7aba6 in kill () from /lib/tls/
#2 0x080de909 in fatal_error_signal (sig=6)
at /home/czapszys/
#3 <signal handler called>
#4 0xffffe410 in __kernel_vsyscall ()
#5 0xb7b7aba6 in kill () from /lib/tls/
#6 0x080dd13b in abort () at /home/czapszys/
#7 0x0806c559 in try_window_id (w=0x84d1ae8)
at /home/czapszys/
#8 0x080712db in redisplay_window (window=1213012712, just_this_one_p=1)
at /home/czapszys/
#9 0x0807370b in redisplay_internal (preserve_
at /home/czapszys/
#10 0x080e8506 in read_char (commandflag=1, nmaps=2, maps=0xbfdfc680, prev_event=
used_
#11 0x080e9c2d in read_key_sequence (keybuf=0xbfdfc7c8, bufsize=30, prompt=405320748,
dont_
at /home/czapszys/
#12 0x080ebb5d in command_loop_1 () at /home/czapszys/
#13 0x08139b7d in internal_
handlers=
at /home/czapszys/
#14 0x080e57b3 in command_loop_2 () at /home/czapszys/
#15 0x08139c32 in internal_catch (tag=405378676, func=0x80e5790 <command_loop_2>,
arg=405320748) at /home/czapszys/
#16 0x080e58f7 in command_loop () at /home/czapszys/
#17 0x080e599e in recursive_edit_1 ()
at /home/czapszys/
#18 0x080e5abb in Frecursive_edit ()
at /home/czapszys/
#19 0x080ddc65 in main (argc=2, argv=0xbfdfcf04, envp=Cannot access memory at address 0xe
)
at /home/czapszys/
The failure seems to be in frame 7.
Changed in emacs21: | |
importance: | Undecided → Medium |
status: | Unconfirmed → Confirmed |
Notes from the backtrace: The crash is due to a call to abort() at xdisp.c:12026 (which emacs then catches and rethrows, in fatal_error_ signal( ) in emacs). It is a deliberate abortion (fall-through assertion) in try_window_id, at the final else clause of:
if (first_ unchanged_ at_end_ row _at_end_ row->y < it.last_visible_y row_at_ end) row_at_ end) unchanged_ at_end_ row == NULL row_at_ end == NULL)
&& first_unchanged
&& !last_text_
...
else if (last_text_
...
else if (last_text_row)
...
else if (first_
&& last_text_row == NULL
&& last_text_
...
else
abort(); // <<=============
try_window_id() has been passed the value "selected_window"; so there must be something wrong with that value or the state of the currently selected window (I'd guess the latter).