Subject: bug#20134: Acknowledgement (24.4.90; Emacs slowdown to eventual hang)

From: [email-masked] (Phillip Lord)
Date: Wed, 08 Apr 2015 16:55:27 +0100

Stefan Monnier <[email-masked]> writes:

>> It really fumbling around in the dark, though. Is there no better way to
>> work out the problem?
>
> I think that the "eventual hang" is a good place to start focusing
> (although it may end up being another problem altogether).

I captured a backtrace from a totally hung emacs earlier, which I
include below. Somewhere down the line, this is actually being called by
my code.

I've also found that removing bib-cite-setup-mouse-function from
after-change-functions seems to help reduce CPU usage for a while.
However, this function seems to do more or less nothing (it sets a few
text properties).

I will try and reproduce the total hang -- obviously, this is difficult
because it take a while for it to happen.

#0  0x00007f1ca676612d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f1ca324ab72 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f1ca324c64f in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f1ca9bae198 in _XReadEvents () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#4  0x00007f1ca9b96751 in XIfEvent () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007f1ca9bdcf24 in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007f1ca9bddb80 in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#7  0x00007f1ca9bdde71 in _XimRead () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#8  0x00007f1ca9bcc8a6 in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#9  0x00007f1ca9bbab3d in XSetICValues () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#10 0x00000000004cbd23 in xic_set_preeditarea (w=w@entry=0x11508e0, x=x@entry=209, y=y@entry=0) at xfns.c:2107
#11 0x00000000004ba975 in x_draw_window_cursor (w=0x11508e0, glyph_row=<optimised out>, x=209, y=0, cursor_type=<optimised out>, 
    cursor_width=<optimised out>, on_p=<optimised out>, active_p=<optimised out>) at xterm.c:7331
#12 0x0000000000457f03 in display_and_set_cursor (w=0x11508e0, on=<optimised out>, hpos=19, vpos=0, x=209, y=0) at xdisp.c:27634
#13 0x0000000000458750 in update_window_cursor (w=<optimised out>, on=<optimised out>) at xdisp.c:27669
#14 0x00000000004587c8 in update_cursor_in_window_tree (w=0x11508e0, on_p=on_p@entry=true) at xdisp.c:27687
#15 0x0000000000458b11 in x_update_cursor (f=f@entry=0x114e878, on_p=on_p@entry=true) at xdisp.c:27701
#16 0x00000000004c9e0b in x_set_cursor_color (f=0x114e878, arg=59329617, oldval=<optimised out>) at xfns.c:830
#17 0x0000000000425ffa in x_set_frame_parameters (f=f@entry=0x114e878, alist=<optimised out>, alist@entry=135523158) at frame.c:2938
#18 0x000000000042698c in Fmodify_frame_parameters (frame=<optimised out>, alist=135523158) at frame.c:2350
#19 0x00000000005573a0 in Ffuncall (nargs=<optimised out>, args=<optimised out>) at eval.c:2814
---Type <return> to continue, or q <return> to quit---
#20 0x000000000058b655 in exec_byte_code (bytestr=-516, vector=1, maxdepth=4294967295, args_template=12140850, nargs=140733448345160, 
    args=0x3) at bytecode.c:916
#21 0x0000000000556e3f in funcall_lambda (fun=fun@entry=9835493, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x7fff0f325770)
    at eval.c:3044
#22 0x00000000005562d8 in apply_lambda (fun=9835493, args=<optimised out>, count=count@entry=36) at eval.c:2919
#23 0x000000000055667c in eval_sub (form=<optimised out>) at eval.c:2256
#24 0x0000000000556ba5 in Fprogn (body=140733448338000) at eval.c:462
#25 0x0000000000556976 in eval_sub (form=<optimised out>) at eval.c:2131
#26 0x0000000000556ba5 in Fprogn (body=140733448338000) at eval.c:462
#27 0x0000000000556f3c in funcall_lambda (fun=69180726, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x7fff0f325ac8) at eval.c:3037
#28 0x00000000005571b3 in Ffuncall (nargs=2, args=0x7fff0f325ac0) at eval.c:2872
#29 0x0000000000556a76 in eval_sub (form=<optimised out>) at eval.c:2154
#30 0x0000000000556976 in eval_sub (form=<optimised out>) at eval.c:2131
#31 0x0000000000556976 in eval_sub (form=<optimised out>) at eval.c:2131
#32 0x0000000000556ba5 in Fprogn (body=140733448338000) at eval.c:462
#33 0x00000000005597c5 in Flet (args=68602102) at eval.c:970
#34 0x0000000000556976 in eval_sub (form=<optimised out>) at eval.c:2131
#35 0x0000000000556ba5 in Fprogn (body=140733448338000) at eval.c:462
#36 0x0000000000556976 in eval_sub (form=form@entry=68602326) at eval.c:2131
#37 0x0000000000559b59 in internal_lisp_condition_case (var=<optimised out>, bodyform=68602326, handlers=<optimised out>) at eval.c:1317
#38 0x0000000000556976 in eval_sub (form=<optimised out>) at eval.c:2131
---Type <return> to continue, or q <return> to quit---
#39 0x0000000000556ba5 in Fprogn (body=140733448338000) at eval.c:462
#40 0x0000000000556f3c in funcall_lambda (fun=68600102, nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fff0f3261f0) at eval.c:3037
#41 0x00000000005571b3 in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7fff0f3261e8) at eval.c:2872
#42 0x00000000005574d8 in call0 (fn=78927922) at eval.c:2595
#43 0x00000000005557ae in internal_condition_case (bfun=bfun@entry=0x4e6200 <safe_run_hooks_1>, handlers=<optimised out>, 
    hfun=hfun@entry=0x4e6aa0 <safe_run_hooks_error>) at eval.c:1348
#44 0x00000000004e624a in safe_run_hook_funcall (nargs=<optimised out>, args=<optimised out>) at keyboard.c:1931
#45 0x0000000000555c6d in run_hook_with_args (nargs=1, args=0x7fff0f326298, funcall=0x4e6210 <safe_run_hook_funcall>) at eval.c:2547
#46 0x00000000004eab4f in safe_run_hooks (hook=78927922) at keyboard.c:1948
#47 0x00000000004f3d9f in command_loop_1 () at keyboard.c:1574
#48 0x00000000005557ae in internal_condition_case (bfun=bfun@entry=0x4f39e0 <command_loop_1>, handlers=<optimised out>, 
    hfun=hfun@entry=0x4ea950 <cmd_error>) at eval.c:1348
#49 0x00000000004e608e in command_loop_2 (ignore=ignore@entry=12140850) at keyboard.c:1178
#50 0x00000000005556bb in internal_catch (tag=12265170, func=func@entry=0x4e6070 <command_loop_2>, arg=12140850) at eval.c:1112
#51 0x00000000004ea503 in command_loop () at keyboard.c:1149
#52 recursive_edit_1 () at keyboard.c:778
#53 0x0000000000512b67 in read_minibuf (map=map@entry=16048598, initial=initial@entry=12140850, prompt=<optimised out>, 
    prompt@entry=58357889, expflag=<optimised out>, histvar=histvar@entry=12305634, histpos=0, defalt=defalt@entry=12140850, 
    allow_props=false, inherit_input_method=false) at minibuf.c:674
#54 0x00000000005131ce in Fread_from_minibuffer (prompt=58357889, initial_contents=12140850, keymap=16048598, read=12140850, 
    hist=<optimised out>, default_value=12140850, inherit_input_method=12140850) at minibuf.c:957
---Type <return> to continue, or q <return> to quit---
#55 0x0000000000557328 in Ffuncall (nargs=<optimised out>, args=<optimised out>) at eval.c:2837
#56 0x000000000058b655 in exec_byte_code (bytestr=-516, vector=1, maxdepth=4294967295, args_template=8200, nargs=140733448349224, 
    args=0x8) at bytecode.c:916
#57 0x0000000000556ed7 in funcall_lambda (fun=140733448350080, nargs=nargs@entry=8, arg_vector=0x917141 <pure+882625>, 
    arg_vector@entry=0x7fff0f326798) at eval.c:2978
#58 0x00000000005571b3 in Ffuncall (nargs=nargs@entry=9, args=args@entry=0x7fff0f326790) at eval.c:2872
#59 0x0000000000510c00 in Fcompleting_read (prompt=58357889, collection=12128637, predicate=58310757, require_match=12140898, 
    initial_input=12140850, hist=12140850, def=12140850, inherit_input_method=12140850) at minibuf.c:1674
#60 0x00000000005573f1 in Ffuncall (nargs=<optimised out>, args=<optimised out>) at eval.c:2844
#61 0x000000000058b655 in exec_byte_code (bytestr=-516, vector=1, maxdepth=4294967295, args_template=12140850, nargs=35, args=0x8)
    at bytecode.c:916
#62 0x0000000000556850 in eval_sub (form=form@entry=58344854) at eval.c:2187
#63 0x0000000000559ce1 in Feval (form=form@entry=58344854, lexical=<optimised out>) at eval.c:1996
#64 0x00000000005531e9 in Fcall_interactively (function=16260338, record_flag=12140850, keys=75760397) at callint.c:345
#65 0x0000000000557390 in Ffuncall (nargs=<optimised out>, args=<optimised out>) at eval.c:2818
#66 0x000000000058b655 in exec_byte_code (bytestr=-516, vector=1, maxdepth=4294967295, args_template=4100, nargs=140733448350848, 
    args=0x4) at bytecode.c:916
#67 0x0000000000556ed7 in funcall_lambda (fun=0, nargs=nargs@entry=1, arg_vector=0x91f9d9 <pure+917593>, 
    arg_vector@entry=0x7fff0f326dd8) at eval.c:2978
#68 0x00000000005571b3 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fff0f326dd0) at eval.c:2872
#69 0x00000000005574fa in call1 (fn=<optimised out>, arg1=<optimised out>) at eval.c:2610
---Type <return> to continue, or q <return> to quit---
#70 0x00000000004f3d6d in command_loop_1 () at keyboard.c:1560
#71 0x00000000005557ae in internal_condition_case (bfun=bfun@entry=0x4f39e0 <command_loop_1>, handlers=<optimised out>, 
    hfun=hfun@entry=0x4ea950 <cmd_error>) at eval.c:1348
#72 0x00000000004e608e in command_loop_2 (ignore=ignore@entry=12140850) at keyboard.c:1178
#73 0x00000000005556bb in internal_catch (tag=12188354, func=func@entry=0x4e6070 <command_loop_2>, arg=12140850) at eval.c:1112
#74 0x00000000004ea577 in command_loop () at keyboard.c:1157
#75 recursive_edit_1 () at keyboard.c:778
#76 0x00000000004ea88d in Frecursive_edit () at keyboard.c:849
#77 0x0000000000417c95 in main (argc=<optimised out>, argv=0x7fff0f327178) at emacs.c:1642

Lisp Backtrace:
"modify-frame-parameters" (0xf325640)
"set-cursor-color" (0xf325770)
"cond" (0xf325928)
"wide-column-warning-colour" (0xf325ac8)
"funcall" (0xf325ac0)
"if" (0xf325bd8)
"if" (0xf325ca8)

"let" (0xf325e18)
"progn" (0xf325ef8)
"condition-case" (0xf326058)
---Type <return> to continue, or q <return> to quit---
"wide-column-post-command-hook-function" (0xf3261f0)
"read-from-minibuffer" (0xf326640)
"completing-read-default" (0xf326798)
"completing-read" (0xf326908)
"byte-code" (0xf326a30)
"call-interactively" (0xf326c90)
"command-execute" (0xf326dd8)