Subject: Re: bug#19606: 24.4; Emacs hangs when editing a 5-line Org file

From: Fabrice Niessen <[email-masked]>
Date: Fri, 30 Jan 2015 17:07:13 +0100

Eli Zaretskii wrote:
>> From: Fabrice Niessen <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Fri, 16 Jan 2015 13:04:00 +0100
>> 
>> (gdb) thread 1
>> [Switching to thread 1 (Thread 17252.0x44f0)]
>> #0  0x01142191 in Fnext_single_property_change (position=position@entry=540,
>>     prop=62947906, object=118795585, limit=limit@entry=1356)
>>     at ../../emacs-24.4/src/textprop.c:1034
>> 1034    ../../emacs-24.4/src/textprop.c: No such file or directory.
>> (gdb) backtrace
>> #0  0x01142191 in Fnext_single_property_change (position=position@entry=540,
>>     prop=62947906, object=118795585, limit=limit@entry=1356)
>>     at ../../emacs-24.4/src/textprop.c:1034
>> #1  0x0102e54f in handle_invisible_prop (it=0x889a14)
>>     at ../../emacs-24.4/src/xdisp.c:4379
>> #2  0x01022e18 in handle_stop (it=it@entry=0x889a14)
>>     at ../../emacs-24.4/src/xdisp.c:3478
>> #3  0x010231e9 in next_element_from_string (it=0x889a14)
>>     at ../../emacs-24.4/src/xdisp.c:7915
>> #4  0x01025e1c in get_next_display_element (it=it@entry=0x889a14)
>>     at ../../emacs-24.4/src/xdisp.c:6925
>> #5  0x0102b00f in display_line (it=<optimized out>)
>>     at ../../emacs-24.4/src/xdisp.c:20183
>> #6  0x00000000 in ?? ()
>
> Looks like an infloop due to display or overlay strings with text
> properties.  Can you reproduce this in an unoptimized build?

Here it is (with GNU Emacs 25.0.50.1 (i686-pc-mingw32) of 2015-01-28 on
LEG570):

--8<---------------cut here---------------start------------->8---
$ gdb -p 8340
GNU gdb (GDB) 7.8
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
/cygdrive/d/Users/fni/.gdbinit:19: Error in sourced command file:
No symbol table is loaded.  Use the "file" command.
Attaching to process 8340
[New Thread 8340.0x2568]
[New Thread 8340.0x32f0]
[New Thread 8340.0x1b00]
[New Thread 8340.0x2860]
[New Thread 8340.0x2244]
[New Thread 8340.0xfdc]
[New Thread 8340.0x2d04]
[New Thread 8340.0x2288]
[New Thread 8340.0x4fc]
[New Thread 8340.0x29a8]
[New Thread 8340.0x1980]
[New Thread 8340.0x3b68]
[New Thread 8340.0x1030]
[New Thread 8340.0x36b0]
Reading symbols from /cygdrive/c/Program Files (x86)/emacs-trunk/bin/emacs.exe...done.
0x7758f925 in ntdll!DbgBreakPoint () from /cygdrive/c/Windows/SYSTEM32/ntdll.dll
(gdb) thread 1
[Switching to thread 1 (Thread 8340.0x2568)]
#0  0x01101915 in XSTRING (a=168379948) at C:/emacs/repo/src/lisp.h:974
(gdb) 974       C:/emacs/repo/src/lisp.h: No such file or directory.
backtrace
#0  0x01101915 in XSTRING (a=168379948) at C:/emacs/repo/src/lisp.h:974
#1  0x01103beb in set_string_intervals (s=168379948, i=0xe3f8b54) at C:/emacs/repo/src/lisp.h:3419
#2  0x01200220 in balance_possible_root_interval (interval=0xe3f8b54) at C:/emacs/repo/src/intervals.c:492
#3  0x01200726 in find_interval (tree=0xe3f8b54, position=135) at C:/emacs/repo/src/intervals.c:676
#4  0x01205d13 in validate_interval_range (object=168379948, begin=0x88b320, end=0x88b320, force=false) at C:/emacs/repo/src/textprop.c:194
#5  0x0120881d in Fnext_single_property_change (position=542, prop=18880, object=168379948, limit=1358) at C:/emacs/repo/src/textprop.c:1029
#6  0x01031bdf in handle_invisible_prop (it=0x88c0b0) at C:/emacs/repo/src/xdisp.c:4280
#7  0x0102fa80 in handle_stop (it=0x88c0b0) at C:/emacs/repo/src/xdisp.c:3377
#8  0x0103b998 in next_element_from_string (it=0x88c0b0) at C:/emacs/repo/src/xdisp.c:7803
#9  0x01039412 in get_next_display_element (it=0x88c0b0) at C:/emacs/repo/src/xdisp.c:6835
#10 0x01063121 in display_line (it=0x88c0b0) at C:/emacs/repo/src/xdisp.c:20151
#11 0x01057332 in try_window (window=24604037, pos=..., flags=1) at C:/emacs/repo/src/xdisp.c:16911
#12 0x010540b3 in redisplay_window (window=24604037, just_this_one_p=true) at C:/emacs/repo/src/xdisp.c:16384
#13 0x0104c66b in redisplay_window_1 (window=24604037) at C:/emacs/repo/src/xdisp.c:14216
#14 0x0119e4c4 in internal_condition_case_1 (bfun=0x104c635 <redisplay_window_1>, arg=24604037, handlers=22582667, hfun=0x104c5c3 <redisplay_window_error>) at C:/emacs/repo/src/eval.c:1359
#15 0x0104b9c8 in redisplay_internal () at C:/emacs/repo/src/xdisp.c:13859
#16 0x0104bfb1 in redisplay_preserve_echo_area (from_where=2) at C:/emacs/repo/src/xdisp.c:14045
#17 0x0100faf8 in Fredisplay (force=0) at C:/emacs/repo/src/dispnew.c:5796
#18 0x011a18ba in Ffuncall (nargs=1, args=0x88edd0) at C:/emacs/repo/src/eval.c:2705
#19 0x011e55cf in exec_byte_code (bytestr=19592252, vector=19592269, maxdepth=30, args_template=3078, nargs=1, args=0x88f0fc) at C:/emacs/repo/src/bytecode.c:919
#20 0x011a21b2 in funcall_lambda (fun=19592229, nargs=1, arg_vector=0x88f0f8) at C:/emacs/repo/src/eval.c:2872
#21 0x011a1b4d in Ffuncall (nargs=2, args=0x88f0f4) at C:/emacs/repo/src/eval.c:2754
#22 0x011e55cf in exec_byte_code (bytestr=158475268, vector=165805669, maxdepth=10, args_template=0, nargs=0, args=0x0) at C:/emacs/repo/src/bytecode.c:919
#23 0x011a25dd in funcall_lambda (fun=165805749, nargs=0, arg_vector=0x9e1fe65) at C:/emacs/repo/src/eval.c:2938
#24 0x011a1b4d in Ffuncall (nargs=1, args=0x88f414) at C:/emacs/repo/src/eval.c:2754
#25 0x011e55cf in exec_byte_code (bytestr=158488652, vector=165806149, maxdepth=18, args_template=0, nargs=0, args=0x0) at C:/emacs/repo/src/bytecode.c:919
#26 0x011a25dd in funcall_lambda (fun=165806269, nargs=0, arg_vector=0x9e20045) at C:/emacs/repo/src/eval.c:2938
#27 0x011a1b4d in Ffuncall (nargs=1, args=0x88f750) at C:/emacs/repo/src/eval.c:2754
#28 0x011a1389 in call0 (fn=161383744) at C:/emacs/repo/src/eval.c:2552
#29 0x0110bde6 in safe_run_hooks_1 (nargs=2, args=0x88f7c8) at C:/emacs/repo/src/keyboard.c:1834
#30 0x0119e712 in internal_condition_case_n (bfun=0x110bda1 <safe_run_hooks_1>, nargs=2, args=0x88f7c8, handlers=30496, hfun=0x110bde8 <safe_run_hooks_error>) at C:/emacs/repo/src/eval.c:1417
#31 0x0110c1af in safe_run_hook_funcall (nargs=2, args=0x88f864) at C:/emacs/repo/src/keyboard.c:1882
#32 0x011a1269 in run_hook_with_args (nargs=2, args=0x88f864, funcall=0x110c136 <safe_run_hook_funcall>) at C:/emacs/repo/src/eval.c:2516
#33 0x0110c219 in safe_run_hooks (hook=25408) at C:/emacs/repo/src/keyboard.c:1900
#34 0x0110ad73 in command_loop_1 () at C:/emacs/repo/src/keyboard.c:1535
#35 0x0119e3ab in internal_condition_case (bfun=0x110a4eb <command_loop_1>, handlers=12064, hfun=0x1109be5 <cmd_error>) at C:/emacs/repo/src/eval.c:1335
#36 0x0110a126 in command_loop_2 (ignore=0) at C:/emacs/repo/src/keyboard.c:1139
#37 0x0119d8e6 in internal_catch (tag=31584, func=0x110a0fb <command_loop_2>, arg=0) at C:/emacs/repo/src/eval.c:1095
#38 0x0110a0c5 in command_loop () at C:/emacs/repo/src/keyboard.c:1118
#39 0x01109745 in recursive_edit_1 () at C:/emacs/repo/src/keyboard.c:728
#40 0x01109937 in Frecursive_edit () at C:/emacs/repo/src/keyboard.c:799
#41 0x011078a1 in main (argc=1, argv=0xc515a0) at C:/emacs/repo/src/emacs.c:1607
(gdb)
--8<---------------cut here---------------end--------------->8---

Is that what you need?