Subject: bug#106: 23.0.50; (pos-visible-in-window-p) returns error with 'before-string overlay

From: Yoshiaki Kasahara <[email-masked]>
Date: Thu, 03 Apr 2008 12:14:34 +0900 (JST)

On Wed, 02 Apr 2008 02:17:17 +0900 (JST),
	Yoshiaki Kasahara <[email-masked]> said:

> In some cases the emacs process starts to consume 100% CPU and doesn't
> respond to keyboard-quit after the error.  I have to kill the process.
> But I cannot reliably reproduce the lock-up.  Nexttime I'll try to
> attach GDB to get a backtrace.

I found a reliable way to reproduce the lock-up (an infinite loop
somewhere).  The lock-up always happens when I have both X and tty
frames (I'm a fan of the multi-tty functionality).  Even the lock-up
occurs when I connect to the emacs-server from a tty using
'emacsclient -t' *after* the "args-out-of-range" error.

I tried to collect the backtrace, but I'm not sure if it is really
meaningful or not.

[Switching to Thread 0xb23000 (LWP 100485)]
0x0000000000432693 in move_it_in_display_line_to (it=0x7fffffffaa60, 
    to_charpos=18001, to_x=-1, op=Variable "op" is not available.
) at xdisp.c:6675
6675                  else if (BUFFER_POS_REACHED_P ())
DISPLAY = :0.0
TERM = rxvt
Breakpoint 1 at 0x4aed40: file emacs.c, line 431.
Breakpoint 2 at 0x4c9770: file sysdep.c, line 1320.
(gdb) xbacktrace
(gdb) bt full
#0  0x0000000000432693 in move_it_in_display_line_to (it=0x7fffffffaa60, 
    to_charpos=18001, to_x=-1, op=Variable "op" is not available.
) at xdisp.c:6675
        new_x = 71
        hpos_before_this_char = 69
        x = 70
        i = 1
        ascent = 0
        descent = 0
        result = Variable "result" is not available.
(gdb) bt
#0  0x0000000000432693 in move_it_in_display_line_to (it=0x7fffffffaa60, 
    to_charpos=18001, to_x=-1, op=Variable "op" is not available.
) at xdisp.c:6675
#1  0x0000000000434c8f in move_it_to (it=0x7fffffffaa60, to_charpos=18001, 
    to_x=-1, to_y=-1, to_vpos=-1, op=8) at xdisp.c:6897
#2  0x000000000043bd4d in move_it_vertically_backward (it=0x7fffffffc270, 
    dy=10) at xdisp.c:7004
#3  0x00000000004401f1 in redisplay_window (window=38673412, just_this_one_p=0)
    at xdisp.c:13404
#4  0x00000000004431e1 in redisplay_window_0 (window=1) at xdisp.c:11901
#5  0x000000000051a1c8 in internal_condition_case_1 (
    bfun=0x4431c0 <redisplay_window_0>, arg=38673412, handlers=9474869, 
    hfun=0x41f330 <redisplay_window_error>) at eval.c:1542
#6  0x000000000042f015 in redisplay_windows (window=Variable "window" is not available.
) at xdisp.c:11880
#7  0x00000000004437f5 in redisplay_internal (preserve_echo_area=Variable "preserve_echo_area" is not available.
)
    at xdisp.c:11437
#8  0x00000000004bb729 in read_char (commandflag=1, nmaps=4, 
    maps=0x7fffffffd7b0, prev_event=9496577, used_mouse_menu=0x7fffffffd8f0, 
    end_time=0x0) at keyboard.c:2724
#9  0x00000000004be135 in read_key_sequence (keybuf=0x7fffffffd960, 
    bufsize=30, prompt=9496577, dont_downcase_last=0, 
    can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:9460
#10 0x00000000004bff8b in command_loop_1 () at keyboard.c:1655
#11 0x000000000051a45f in internal_condition_case (
    bfun=0x4bfde0 <command_loop_1>, handlers=9635105, 
    hfun=0x4b9d00 <cmd_error>) at eval.c:1494
#12 0x00000000004b90ea in command_loop_2 () at keyboard.c:1370
#13 0x000000000051a577 in internal_catch (tag=Variable "tag" is not available.
) at eval.c:1230
#14 0x00000000004b9b43 in command_loop () at keyboard.c:1349
#15 0x00000000004b9edc in recursive_edit_1 () at keyboard.c:958
#16 0x00000000004ba041 in Frecursive_edit () at keyboard.c:1020
#17 0x00000000004afa4a in main (argc=7, argv=0x7fffffffdde0) at emacs.c:1743
(gdb)

-- 
Yoshiaki Kasahara
Research Institute for Information Technology, Kyushu University
[email-masked]