Subject: 24.1.50; Infloop deleting overlays in the minibuffer

From: Nix <[email-masked]>
Date: Tue, 24 Apr 2012 19:18:35 +0100

With trunk emacs, I see a hang using the minibuffer after only a few
minutes of use, sometimes less.

xbacktrace:

"read-from-minibuffer" (0xb4ebdfd8)
"completing-read-default" (0xb4ebe148)
"read-buffer" (0xb4ebe2d8)
"persp-read-buffer" (0xb4ebe4a8)
"call-interactively" (0xb4ebe718)

Note that perspectives.el is not implicated here: control never returns
from delete_all_overlays(), and the value of `overlay' in the
overlays_before loop never changes. Inside Fdelete_overlay(),
Fmarker_buffer (OVERLAY_START (overlay)) is consistently returning Qnil,
so it never actually deletes anything and the deletion loop never
terminates.

Unfortunately further investigation is stymied by the fact that the
functions in src/.gdbinit still don't work for me, apparently because
I am too stupid to use them. e.g.:

(gdb) xpr overlay
Lisp_Misc
Lisp_Misc_Overlay
No symbol "Lisp_Int" in current context.

I'll try bisecting for the cause later if nobody can immediately think
of a cause.

C backtrace:

#0  0x0000000000512be0 in Fdelete_overlay (overlay=134171827) at buffer.c:3794
        buffer = <optimized out>
        b = <optimized out>
        count = <optimized out>
#1  0x0000000000513ac9 in delete_all_overlays (b=0x4f118e0) at buffer.c:690
        overlay = <optimized out>
#2  0x0000000000522724 in get_minibuffer (depth=1) at minibuf.c:810
        count = <optimized out>
        tail = <optimized out>
        num = 4
        buf = 82909413
        name = "\245R\266\006\000\000\000\000ч\201\005\000\000\000\000\322ٶ\000\000\000\000\000\214,W\000\000\000\000"
#3  0x0000000000522b1f in read_minibuf (map=13237846, initial=11983314, prompt=175042689, backup_n=<optimized out>, expflag=0, histvar=12148690, histpos=0, defalt=75650225, allow_props=0, inherit_input_method=0) at minibuf.c:559
        val = <optimized out>
        count = <optimized out>
        mini_frame = 112612005
        ambient_dir = 92374993
        minibuffer = <optimized out>
        input_method = 11983314
        enable_multibyte = 11983314
        pos = 0
        histstring = <optimized out>
        empty_minibuf = <optimized out>
        dummy = <optimized out>
        frame = <optimized out>
#4  0x0000000000523691 in Fread_from_minibuffer (prompt=175042689, initial_contents=11983314, keymap=13237846, read=11983314, hist=12148690, default_value=75650225, inherit_input_method=11983314) at minibuf.c:980
        histvar = <optimized out>
        histpos = <optimized out>
        val = <optimized out>
#5  0x00000000005688be in Ffuncall (nargs=<optimized out>, args=0x7fffb4ebdfd0) at eval.c:2961
        fun = <optimized out>
        original_fun = <optimized out>
        funcar = <optimized out>
        numargs = <optimized out>
        lisp_numargs = 28
        val = <optimized out>
        backtrace = {next = 0x7fffb4ebe0d0, function = 0x7fffb4ebdfd0, args = 0x7fffb4ebdfd8, nargs = 7, debug_on_exit = 0}
        internal_args = 0x7fffb4ebdfd8
        i = <optimized out>
#6  0x00000000005a0596 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:785
        count = 12
        op = <optimized out>
        vectorp = 0x90dd10
        stack = {pc = 0xa8f8f9 "\211˚\203Y", byte_string = 9493729, byte_string_start = 0xa8f8b7 "\003:\203\r", constants = 9493765, next = 0x7fffb4ebe320}
        top = 0x7fffb4ebdfd0
        result = <optimized out>
#7  0x000000000056879b in Ffuncall (nargs=9, args=0x7fffb4ebe140) at eval.c:2996
        fun = <optimized out>
        original_fun = 13702850
        funcar = <optimized out>
        numargs = 8
        lisp_numargs = 32
        val = <optimized out>
        backtrace = {next = 0x7fffb4ebe260, function = 0x7fffb4ebe140, args = 0x7fffb4ebe148, nargs = 8, debug_on_exit = 0}
        internal_args = <optimized out>
        i = <optimized out>
#8  0x0000000000520e42 in Fcompleting_read (prompt=175042689, collection=12150338, predicate=11983314, require_match=11983362, initial_input=11983314, hist=12148690, def=75650225, inherit_input_method=11983314) at minibuf.c:1726
        args = {13702850, 175042689, 12150338, 11983314, 11983362, 11983314, 12148690, 75650225, 11983314}
#9  0x0000000000521e58 in Fread_buffer (prompt=175042689, def=75650225, require_match=11983362) at minibuf.c:1176
        args = {175042721, 175042753, 75650225, 14456544}
        result = <optimized out>
        s = <optimized out>
        len = <optimized out>
        count = 11
#10 0x0000000000568941 in Ffuncall (nargs=<optimized out>, args=0x7fffb4ebe2d0) at eval.c:2942
        fun = <optimized out>
        original_fun = <optimized out>
        funcar = <optimized out>
        numargs = <optimized out>
        lisp_numargs = 12
        val = <optimized out>
        backtrace = {next = 0x7fffb4ebe420, function = 0x7fffb4ebe2d0, args = 0x7fffb4ebe2d8, nargs = 3, debug_on_exit = 0}
        internal_args = 0x7fffb4ebe2d8
        i = <optimized out>
#11 0x00000000005a0596 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:785
        count = 7
        op = <optimized out>
        vectorp = 0x45d82e0
        stack = {pc = 0x432ca83 "+)\207", byte_string = 66541025, byte_string_start = 0x432ca60 "\306\030\t\203\016", constants = 73237205, next = 0x0}
        top = 0x7fffb4ebe2d0
        result = <optimized out>
#12 0x0000000000568431 in funcall_lambda (fun=73237541, nargs=<optimized out>, arg_vector=0x7fffb4ebe4a8) at eval.c:3166
        val = <optimized out>
        syms_left = 11983314
        next = <optimized out>
        lexenv = 11983314
        count = 4
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#13 0x000000000056879b in Ffuncall (nargs=4, args=0x7fffb4ebe4a0) at eval.c:2996
        fun = <optimized out>
        original_fun = 73235010
        funcar = <optimized out>
        numargs = 3
        lisp_numargs = 12
        val = <optimized out>
        backtrace = {next = 0x7fffb4ebe6a0, function = 0x7fffb4ebe4a0, args = 0x7fffb4ebe4a8, nargs = 3, debug_on_exit = 0}
        internal_args = <optimized out>
        i = <optimized out>
#14 0x0000000000521da1 in Fread_buffer (prompt=175042785, def=75650225, require_match=11983362) at minibuf.c:1186
        args = {73235010, 175042785, 75650225, 11983362}
        result = <optimized out>
        s = <optimized out>
        len = <optimized out>
        count = 3
#15 0x00000000005651eb in Fcall_interactively (function=12121826, record_flag=11983314, keys=140736228746584) at callint.c:513
        args = 0x7fffb4ebe550
        visargs = 0x7fffb4ebe530
        specs = <optimized out>
        filter_specs = <optimized out>
        teml = <optimized out>
        up_event = 11983314
        enable = 12029632
        speccount = <optimized out>
        next_event = 2
        prefix_arg = 11983314
        string = <optimized out>
        tem = 0x7fffb4ebe570 "bKill buffer: "
        varies = 0x7fffb4ebe510 ""
        i = <optimized out>
        nargs = <optimized out>
        foo = <optimized out>
        arg_from_tty = <optimized out>
        key_count = 2
        record_then_fail = 0
        save_this_command = 12121826
        save_last_command = 12573810
        save_this_original_command = 12121826
        save_real_this_command = 12121826
#16 0x0000000000568941 in Ffuncall (nargs=<optimized out>, args=0x7fffb4ebe710) at eval.c:2942
        fun = <optimized out>
        original_fun = <optimized out>
        funcar = <optimized out>
        numargs = <optimized out>
        lisp_numargs = 12
        val = <optimized out>
        backtrace = {next = 0x0, function = 0x7fffb4ebe710, args = 0x7fffb4ebe718, nargs = 3, debug_on_exit = 0}
        internal_args = 0x7fffb4ebe718
        i = <optimized out>
#17 0x0000000000568ba4 in call3 (fn=<optimized out>, arg1=<optimized out>, arg2=<optimized out>, arg3=<optimized out>) at eval.c:2735
        ret_ungc_val = 3
        args = {12123538, 12121826, 11983314, 11983314}
#18 0x00000000005020a9 in command_loop_1 () at keyboard.c:1572
        scount = 2
        cmd = <optimized out>
        keybuf = {96, 428, 14456608, 11983362, 11983314, 11983314, 12036610, 2, 140736228747264, 5793748, 7237112172834486626, 140736228749157, 140736228747264, 5793375, 0, 8638097, 140092607576064, 185880422, 11983314, 11983314,
          4294967295, 140736228749216, 140736228747312, 5204785, 14456544, 185880422, 11983314, 5205116, 11983104, 5598978}
        i = <optimized out>
        prev_modiff = 34301
        prev_buffer = 0x4825980
#19 0x0000000000566c66 in internal_condition_case (bfun=0x501d10 <command_loop_1>, handlers=12035554, hfun=0x4f6b80 <cmd_error>) at eval.c:1448
        val = <optimized out>
        c = {tag = 11983314, val = 11983314, next = 0x7fffb4ebea30, gcpro = 0x0, jmp = {{__jmpbuf = {14456544, -8280186705055344401, 11983314, 140736228748936, 4294967295, 140736228749216, 8280349918095448303, -8280185561663825681},
              __mask_was_saved = 0, __saved_mask = {__val = {0, 110932256, 0, 0, 14456544, 8585672, 0, 4294967295, 140736228749216, 0, 140092691631972, 1, 0, 0, 140092607547024, 0}}}}, backlist = 0x0, handlerlist = 0x0,
          lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0}
        h = {handler = 12035554, var = 11983314, chosen_clause = 11983362, tag = 0x7fffb4ebe8c0, next = 0x0}
#20 0x00000000004f50ee in command_loop_2 (ignore=<optimized out>) at keyboard.c:1160
        val = 3
#21 0x0000000000566b48 in internal_catch (tag=-6931673145220792320, func=0x4f50d0 <command_loop_2>, arg=11983314) at eval.c:1205
        c = {tag = 12031298, val = 11983314, next = 0x0, gcpro = 0x0, jmp = {{__jmpbuf = {14456544, -8280186705055344401, 11983314, 140736228748936, 4294967295, 140736228749216, 8280349918045116655, -8280185561650718481},
              __mask_was_saved = 0, __saved_mask = {__val = {0, 0, 0, 0, 0, 0, 5957193, 17904128, 140736228748136, 384, 140736228748128, 6269430, 11983314, 12209458, 5677638, 14}}}}, backlist = 0x0, handlerlist = 0x0,
          lisp_eval_depth = 0, pdlcount = 2, poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0}
#22 0x00000000004f6657 in command_loop () at keyboard.c:1139
No locals.
#23 recursive_edit_1 () at keyboard.c:759
        count = 1
        val = 11983314
#24 0x00000000004f698c in Frecursive_edit () at keyboard.c:823
        count = 0
        buffer = 11983314
#25 0x0000000000411de8 in main (argc=2, argv=<optimized out>) at emacs.c:1711
        dummy = 0
        stack_bottom_variable = 0 '\000'
        do_initial_setlocale = <optimized out>
        skip_args = 1
        rlim = {rlim_cur = 33554432, rlim_max = 33554432}
        no_loadup = 0
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x7f69da1c2c48 "2'"

In GNU Emacs 24.1.50.2 (x86_64-unknown-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2012-04-24 on spindle
Bzr revision: 108019 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11003901
Configured using:
 `configure '--without-pop' '--without-kerberos' '--without-hesiod'
 '--without-mmdf' '--with-x-toolkit=lucid' '--with-wide-int'
 'NO_FAST_MATH=t''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Summary

Minor modes in effect:
  gnus-mailing-list-mode: t
  diff-auto-refine-mode: t
  iswitchb-mode: t
  global-cwarn-mode: t
  show-paren-mode: t
  global-semantic-mru-bookmark-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-idle-summary-mode: t
  global-semantic-decoration-mode: t
  global-auto-complete-mode: t
  compile-bookmarks-mode: t
  global-semantic-highlight-func-mode: t
  global-semantic-stickyfunc-mode: t
  semantic-mode: t
  type-break-mode-line-message-mode: t
  icomplete-mode: t
  recentf-mode: t
  mv-shell-mode: t
  shell-dirtrack-mode: t
  which-function-mode: t
  desktop-save-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent input:
<return> <prior> <prior> <down> <up> <down> <down> 
<down> <down> <down> <down> <down> <down> <up> <up> 
C-k C-k <up> <up> <up> <up> <up> <up> <down> <down> 
C-y C-k C-k <down> <down> C-k C-k C-k C-k C-k C-/ <down> 
<up> C-SPC <down> C-w <up> <up> <up> <up> C-y C-k C-k 
<down> <down> <down> <down> <down> <down> <down> <up> 
<up> <up> <up> C-k <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<down> <down> <down> <down> <next> <up> <up> <up> <up> 
C-k C-k C-k C-k C-k C-k C-k C-k <right> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> C-c C-c <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <down> M-g 
<next> <next> <up> q <down> <down> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <return> <return> C-s 
m i n i b u f f e r C-s C-s C-s C-s C-s C-s C-s C-s 
C-s <left> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down> 
<S-down> <S-down> <return> M S-SPC C-s C-s C-s C-s 
C-s C-s C-s C-s C-s <left> <return> SPC SPC SPC n n 
<return> <return> <return> <return> <return> <return> 
<return> <return> <return> <return> <return> <return> 
<return> <return> <return> <return> <return> <return> 
<return> <return> <return> <return> <return> a C-x 
k <return> a C-x k <return> M-x r e p o r t - e m <tab> 
<return>

Recent messages:
Expiring articles...done
Auto-saving...
Mark saved where search started
noticed "Claudio Bley"
Adding "nnml:emacs-bugs" to field "newsgroups"
Mark saved where search started
Hit C-g to stop BBDB from annotating.  5 of 6 addresses processed.
Hit C-g to stop BBDB from annotating.  5 of 7 addresses processed.
End of message [17 times]
delete-backward-char: Text is read-only

Load-path shadows:
/home/nix/lisp/defaults hides /usr/share/emacs/site-lisp/defaults
/home/nix/lisp/emacs/site-wide/site-start hides /usr/share/emacs/site-lisp/site-start
/home/nix/lisp/emacs/site-wide/default hides /usr/share/emacs/site-lisp/default
/home/nix/lisp/emacs/site-wide/scroll-in-place hides /usr/share/emacs/site-lisp/scroll-in-place
/usr/share/emacs/site-lisp/emms/tq hides /usr/share/emacs/24.1.50/lisp/emacs-lisp/tq

Features:
(shadow emacsbug gnus-picon gnus-bcklg multi-isearch qp gnus-async
gnus-cite gnus-salt gnus-ml magit-bisect magit-key-mode magit diff-git
diff-mode log-edit pcvs-util gnus-dup mule-util tabify find-func
gnus-topic url-cache url-http url-gw url-auth url-handlers nndraft nnrss
xml gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg utf-7
gnutls nnimap parse-time utf7 nnmh nnml nnfolder gnus-cache bbdb-gnus
bbdb-snarf netrc gnus-demon nntp dot-gnus-mail dot-gnus-splits mm-url
smtpmail gnus-art mm-uu mml2015 mm-view mml-smime smime dig
dot-gnus-articles dot-gnus-sa background gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source dot-gnus-bbdb dot-gnus-colourization tc
mail-extr gnus-start gnus-spec gnus-int gnus-range gnus-win gnus
gnus-ems nnheader server vc-bzr tex-info texinfo generic jka-compr
image-mode vc-git checkdoc thingatpt sh-script executable semantic/imenu
semantic/tag-file semantic/db-file cedet-files semantic/bovine/c
semantic/decorate/include semantic/bovine/c-by semantic/lex-spp
semantic/bovine/gcc semantic/dep semantic/analyze semantic/sort
semantic/scope semantic/analyze/fcn c-eldoc eldoc epa-file epa derived
epg epg-config site-default dot-emacs dot-emacs-emacs iswitchb
xemacs-compat add-log misc init-music network-stream starttls tls
emms-volume emms-volume-amixer emms-history emms-bookmarks
emms-metaplaylist-mode emms-browser sort emms-playlist-sort
emms-last-played emms-playing-time emms-stream-info emms-streams
emms-mode-line emms-cache emms-info later-do emms-playlist-limit
emms-playlist-mode emms-player-mpd tq emms-player-simple
emms-source-playlist emms-source-file dired emms emms-compat
init-message-modes bbdb-expire bbdb-hooks bbdb-com silly-mail sendmail
boxquote rect message rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader init-time-tracking timeclock-visualize sgml-mode
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse url-vars mailcap auto-edit-substitute
init-prog-modes init-prog-modes-emacs filecache cwarn cc-mode cc-fonts
cc-guess cc-menus paren inversion semantic/db-global
semantic/symref/global semantic/symref semantic/db-find semantic/db-ref
cedet-global semantic/mru-bookmark semantic/db-mode semantic/db
eieio-base semantic/idle semantic/format ezimage semantic/ctxt
semantic/decorate/mode semantic/tag-ls semantic/decorate pulse
auto-complete-config auto-complete popup htmlfontify cus-edit cus-start
cus-load compile-bookmarks gtags gpicker ffap font-latex latex
easy-mmode tex-style tex semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs miniedit type-break icomplete
site-start-load gawd-keys help-mode view gawd-keys-emacs gawd-mode-frobs
gawd-mode-frobs-emacs windmove recentf tree-widget wid-edit mv-shell
printing ps-print ps-def lpr uptimes pp bbdb timezone browse-kill-ring+
browse-kill-ring tempbuf timeclock igrep grep compile term disp-table
ehelp electric tramp tramp-compat auth-source gnus-util mm-util
mail-prsvr password-cache shell pcomplete comint ansi-color format-spec
tramp-loaddefs hideshow filladapt gawd-faces gawd-faces-emacs
nix-dark-theme gawd-misc gawd-misc-emacs which-func imenu winner
time-date gawd-lists bbdb-autoloads desktop generic-x uniquify time
scroll-in-place site-start-emacs site-autoloads all-autoloads
auctex-autoloads tex-site info c-eldoc-autoloads
compilation-recenter-end-autoloads compile-bookmarks-autoloads
dictionary-autoloads diff-git-autoloads elk-test-autoloads
fringe-helper-autoloads full-ack-autoloads htmlize-autoloads
ioccur-autoloads iresize-autoloads jump-autoloads inflections-autoloads
findr-autoloads lua-mode-autoloads minimap-autoloads mv-shell-autoloads
perspective-autoloads yasnippet-bundle-autoloads yasnippet-bundle
dropdown-list advice help-fns advice-preload yasnippet edmacro kmacro
assoc package tabulated-list emms-auto rudel-loaddefs rudel-backend
warnings eieio byte-opt bytecomp byte-compile cconv macroexp w3m-load
apropos-toc cl ring filesets easymenu flash-paren saveplace redo+
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)

-- 
NULL && (void)