--- Begin Message ---
Subject: |
24.4.50; Too large fringe width causes hang in redisplay |
Date: |
Wed, 16 Jul 2014 21:47:09 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
Recently I erroneously set left-fringe-width to some large number
(don't remember an exact value), and got infloop in redisplay afterwards:
#0 0x000000000045578a in move_it_to (it=0x7fff7386b590, to_charpos=192,
to_x=-1, to_y=-1, to_vpos=-1, op=8)
at ../../trunk/src/xdisp.c:9319
#1 0x0000000000455af0 in move_it_vertically_backward (it=0x7fff7386d090,
dy=306) at ../../trunk/src/xdisp.c:9400
#2 0x000000000046bdf2 in redisplay_window (window=..., just_this_one_p=false)
at ../../trunk/src/xdisp.c:16475
#3 0x0000000000462d28 in redisplay_window_0 (window=...) at
../../trunk/src/xdisp.c:14247
#4 0x0000000000609711 in internal_condition_case_1 (bfun=0x462ce6
<redisplay_window_0>, arg=..., handlers=...,
hfun=0x462cb5 <redisplay_window_error>) at ../../trunk/src/eval.c:1373
#5 0x0000000000462c93 in redisplay_windows (window=...) at
../../trunk/src/xdisp.c:14227
#6 0x0000000000461aed in redisplay_internal () at ../../trunk/src/xdisp.c:13826
#7 0x000000000045f830 in redisplay () at ../../trunk/src/xdisp.c:13112
#8 0x000000000056af5c in read_char (commandflag=1, map=..., prev_event=...,
used_mouse_menu=0x7fff7386f4bf, end_time=0x0)
at ../../trunk/src/keyboard.c:2560
#9 0x000000000057a593 in read_key_sequence (keybuf=0x7fff7386f6a0, bufsize=30,
prompt=..., dont_downcase_last=false,
can_return_switch_frame=true, fix_current_buffer=true,
prevent_redisplay=false) at ../../trunk/src/keyboard.c:9084
#10 0x0000000000567f1e in command_loop_1 () at ../../trunk/src/keyboard.c:1438
#11 0x00000000006095a0 in internal_condition_case (bfun=0x567b5c <command_loop_1>,
handlers=..., hfun=0x56732c <cmd_error>)
at ../../trunk/src/eval.c:1349
#12 0x00000000005677fa in command_loop_2 (ignore=...) at
../../trunk/src/keyboard.c:1169
#13 0x0000000000608a23 in internal_catch (tag=..., func=0x5677d7
<command_loop_2>, arg=...) at ../../trunk/src/eval.c:1113
#14 0x00000000005677ae in command_loop () at ../../trunk/src/keyboard.c:1148
#15 0x0000000000566e58 in recursive_edit_1 () at ../../trunk/src/keyboard.c:769
#16 0x0000000000567028 in Frecursive_edit () at ../../trunk/src/keyboard.c:840
#17 0x0000000000564f2f in main (argc=4, argv=0x7fff7386fb28) at
../../trunk/src/emacs.c:1650
Recipe to reproduce is very simple:
./src/emacs -Q --eval '(progn (setq left-fringe-width 1000) (switch-to-buffer
"test") (kill-buffer))'
This recipe works for all X-aware configurations on GNU/Linux.
Dmitry
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#18036: 24.4.50; Too large fringe width causes hang in redisplay |
Date: |
Wed, 16 Jul 2014 21:42:49 +0300 |
> Date: Wed, 16 Jul 2014 21:47:09 +0400
> From: Dmitry Antipov <address@hidden>
>
> Recently I erroneously set left-fringe-width to some large number
> (don't remember an exact value), and got infloop in redisplay afterwards:
>
> #0 0x000000000045578a in move_it_to (it=0x7fff7386b590, to_charpos=192,
> to_x=-1, to_y=-1, to_vpos=-1, op=8)
> at ../../trunk/src/xdisp.c:9319
> #1 0x0000000000455af0 in move_it_vertically_backward (it=0x7fff7386d090,
> dy=306) at ../../trunk/src/xdisp.c:9400
> #2 0x000000000046bdf2 in redisplay_window (window=...,
> just_this_one_p=false) at ../../trunk/src/xdisp.c:16475
> #3 0x0000000000462d28 in redisplay_window_0 (window=...) at
> ../../trunk/src/xdisp.c:14247
> #4 0x0000000000609711 in internal_condition_case_1 (bfun=0x462ce6
> <redisplay_window_0>, arg=..., handlers=...,
> hfun=0x462cb5 <redisplay_window_error>) at ../../trunk/src/eval.c:1373
> #5 0x0000000000462c93 in redisplay_windows (window=...) at
> ../../trunk/src/xdisp.c:14227
> #6 0x0000000000461aed in redisplay_internal () at
> ../../trunk/src/xdisp.c:13826
> #7 0x000000000045f830 in redisplay () at ../../trunk/src/xdisp.c:13112
> #8 0x000000000056af5c in read_char (commandflag=1, map=..., prev_event=...,
> used_mouse_menu=0x7fff7386f4bf, end_time=0x0)
> at ../../trunk/src/keyboard.c:2560
> #9 0x000000000057a593 in read_key_sequence (keybuf=0x7fff7386f6a0,
> bufsize=30, prompt=..., dont_downcase_last=false,
> can_return_switch_frame=true, fix_current_buffer=true,
> prevent_redisplay=false) at ../../trunk/src/keyboard.c:9084
> #10 0x0000000000567f1e in command_loop_1 () at ../../trunk/src/keyboard.c:1438
> #11 0x00000000006095a0 in internal_condition_case (bfun=0x567b5c
> <command_loop_1>, handlers=..., hfun=0x56732c <cmd_error>)
> at ../../trunk/src/eval.c:1349
> #12 0x00000000005677fa in command_loop_2 (ignore=...) at
> ../../trunk/src/keyboard.c:1169
> #13 0x0000000000608a23 in internal_catch (tag=..., func=0x5677d7
> <command_loop_2>, arg=...) at ../../trunk/src/eval.c:1113
> #14 0x00000000005677ae in command_loop () at ../../trunk/src/keyboard.c:1148
> #15 0x0000000000566e58 in recursive_edit_1 () at
> ../../trunk/src/keyboard.c:769
> #16 0x0000000000567028 in Frecursive_edit () at ../../trunk/src/keyboard.c:840
> #17 0x0000000000564f2f in main (argc=4, argv=0x7fff7386fb28) at
> ../../trunk/src/emacs.c:1650
>
> Recipe to reproduce is very simple:
>
> ./src/emacs -Q --eval '(progn (setq left-fringe-width 1000) (switch-to-buffer
> "test") (kill-buffer))'
Thanks, this is now fixed in the emacs-24 branch (r117381).
--- End Message ---