Subject: Re: bug#15778: 24.3; cperl-mode causes emacs to lock up

From: Nathan Trapuzzano <[email-masked]>
Date: Fri, 01 Nov 2013 08:16:24 -0400

Eli Zaretskii <[email-masked]> writes:

> Please attach a debugger and show the backtrace.  The file etc/DEBUG
> explains how to look for a place that infloops, perhaps you could
> follow that and provide a more detailed information.

There's an infinite loop somewhere in exec_byte_code.  I've attached the
backtrace at the point.  Moreover, sending emacs a SIGUSR2 does invoke
the lisp debugger with the following message:

Debugger entered--entering a function:
* #[0 "\301\300\302\"\207" [(0 1) set-match-data evaporate] 3 "\n\n(fn)"]()
* funcall(#[0 "\301\300\302\"\207" [(0 1) set-match-data evaporate] 3 "\n\n(fn)"])
  jit-lock-fontify-now(1111 1611)
  jit-lock-function(1111)
  redisplay_internal\ \(C\ function\)()

If this is not enough, I can try to look into it more later.

#0  0x00000000005555e1 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=11780242, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:919
#1  0x0000000000526532 in funcall_lambda (fun=9582789, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7fff22a126a8) at eval.c:3023
#2  0x00000000005268d9 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2838
#3  0x00000000005269ce in funcall_nil (nargs=<optimized out>, args=<optimized out>) at eval.c:2340
#4  0x00000000005255a9 in run_hook_with_args (nargs=3, args=0x7fff22a126a0, 
    funcall=funcall@entry=0x5269c5 <funcall_nil>) at eval.c:2525
#5  0x000000000052563e in Frun_hook_with_args (nargs=<optimized out>, args=<optimized out>) at eval.c:2386
#6  0x000000000052670a in Ffuncall (nargs=nargs@entry=4, args=args@entry=0x7fff22a12698) at eval.c:2770
#7  0x00000000005555e1 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=args_template@entry=0, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x7fff22a12878)
    at bytecode.c:919
#8  0x0000000000526328 in funcall_lambda (fun=52111949, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7fff22a12878) at eval.c:2957
#9  0x00000000005268d9 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2838
#10 0x0000000000525e43 in eval_sub (form=form@entry=51776198) at eval.c:2131
#11 0x0000000000528a29 in internal_lisp_condition_case (var=<optimized out>, bodyform=51776198, 
    handlers=<optimized out>) at eval.c:1300
#12 0x000000000055626b in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=args_template@entry=2048, nargs=nargs@entry=2, args=<optimized out>, args@entry=0x7fff22a12c28)
    at bytecode.c:1169
#13 0x0000000000526328 in funcall_lambda (fun=9604621, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7fff22a12c28) at eval.c:2957
#14 0x00000000005268d9 in Ffuncall (nargs=nargs@entry=3, args=args@entry=0x7fff22a12c20) at eval.c:2838
#15 0x00000000005555e1 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, 
    args_template=args_template@entry=1028, nargs=nargs@entry=1, args=<optimized out>, args@entry=0x7fff22a12e58)
    at bytecode.c:919
#16 0x0000000000526328 in funcall_lambda (fun=9604205, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7fff22a12e58) at eval.c:2957
#17 0x00000000005268d9 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fff22a12e50) at eval.c:2838
#18 0x0000000000525367 in internal_condition_case_n (bfun=0x52654e <Ffuncall>, nargs=nargs@entry=2, 
    args=args@entry=0x7fff22a12e50, handlers=11780290, hfun=hfun@entry=0x4302f0 <safe_eval_handler>) at eval.c:1413
#19 0x000000000042db6a in safe_call (nargs=nargs@entry=2, func=<optimized out>) at xdisp.c:2498
#20 0x000000000042db99 in safe_call1 (fn=<optimized out>, arg=<optimized out>) at xdisp.c:2514
#21 0x000000000042dd26 in handle_fontified_prop (it=0x7fff22a13e90) at xdisp.c:3701
#22 0x00000000004319df in handle_stop (it=it@entry=0x7fff22a13e90) at xdisp.c:3265
#23 0x0000000000438b1a in next_element_from_buffer (it=0x7fff22a13e90) at xdisp.c:8021
#24 0x000000000043528a in get_next_display_element (it=it@entry=0x7fff22a13e90) at xdisp.c:6676
#25 0x00000000004395f4 in display_line (it=it@entry=0x7fff22a13e90) at xdisp.c:19296
#26 0x000000000043bb30 in try_window (window=window@entry=11869221, pos=..., flags=flags@entry=1) at xdisp.c:16208
#27 0x000000000044bc68 in redisplay_window (window=window@entry=11869221, just_this_one_p=just_this_one_p@entry=1)
    at xdisp.c:15734
#28 0x000000000044d024 in redisplay_window_1 (window=window@entry=11869221) at xdisp.c:13756
#29 0x0000000000525114 in internal_condition_case_1 (bfun=bfun@entry=0x44cffb <redisplay_window_1>, arg=11869221, 
    handlers=11995558, hfun=hfun@entry=0x41f157 <redisplay_window_error>) at eval.c:1355
#30 0x0000000000440bfb in redisplay_internal () at xdisp.c:13412
#31 0x00000000004418e3 in redisplay () at xdisp.c:12647
#32 0x00000000004ca1fa in read_char (commandflag=1, map=map@entry=53179974, prev_event=11780242, 
    used_mouse_menu=used_mouse_menu@entry=0x7fff22a177fb, end_time=end_time@entry=0x0) at keyboard.c:2557
#33 0x00000000004cb810 in read_key_sequence (keybuf=keybuf@entry=0x7fff22a178c0, bufsize=bufsize@entry=30, 
    prompt=<optimized out>, dont_downcase_last=dont_downcase_last@entry=false, 
    can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, 
    prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9057
#34 0x00000000004cce4b in command_loop_1 () at keyboard.c:1431
#35 0x0000000000524ff7 in internal_condition_case (bfun=bfun@entry=0x4ccb53 <command_loop_1>, handlers=11839970, 
    hfun=hfun@entry=0x4c51b1 <cmd_error>) at eval.c:1331
#36 0x00000000004c0a1f in command_loop_2 (ignore=ignore@entry=11780242) at keyboard.c:1158
#37 0x0000000000524ece in internal_catch (tag=11835698, func=func@entry=0x4c0a05 <command_loop_2>, arg=11780242)
    at eval.c:1097
#38 0x00000000004c09b7 in command_loop () at keyboard.c:1137
#39 0x00000000004c4d3d in recursive_edit_1 () at keyboard.c:776
#40 0x00000000004c5017 in Frecursive_edit () at keyboard.c:840
#41 0x00000000004c0464 in main (argc=<optimized out>, argv=0x7fff22a17be8) at emacs.c:1590

Lisp Backtrace:
"font-lock-fontify-region" (0x22a126a8)
"run-hook-with-args" (0x22a126a0)
0x31b2a48 PVEC_COMPILED
"funcall" (0x22a12870)
"jit-lock-fontify-now" (0x22a12c28)
"jit-lock-function" (0x22a12e58)
"redisplay_internal (C function)" (0xb22638)
A debugging session is active.

	Inferior 1 [process 9463] will be detached.

Quit anyway? (y or n) Not confirmed.