From xemacs-m  Mon Feb  3 10:11:19 1997
Received: from CNRI.Reston.VA.US (CNRI.Reston.VA.US [132.151.1.1])
	by xemacs.org (8.8.5/8.8.5) with SMTP id KAA20726
	for <xemacs-beta@xemacs.org>; Mon, 3 Feb 1997 10:11:18 -0600 (CST)
Received: from newcnri.cnri.reston.va.us by CNRI.Reston.VA.US id aa13094;
          3 Feb 97 11:06 EST
Received: from anthem.CNRI.Reston.Va.US by newcnri.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id LAA12344; Mon, 3 Feb 1997 11:06:16 -0500
Received: by anthem.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id LAA18384; Mon, 3 Feb 1997 11:06:15 -0500
Date: Mon, 3 Feb 1997 11:06:15 -0500
Message-Id: <199702031606.LAA18384@anthem.CNRI.Reston.Va.US>
From: "Barry A. Warsaw" <bwarsaw@anthem.cnri.reston.va.us>
To: xemacs-beta@xemacs.org
Subject: Unstoppable loop
Reply-To: "Barry A. Warsaw" <bwarsaw@CNRI.Reston.VA.US>
X-Attribution: BAW
X-Oblique-Strategy: Get your neck massaged
X-WWW-Homepage: http://www.python.org/~bwarsaw


XEmacs 19.15b90, Solaris 2.5, cc-mode 4.353.

Visit the following Java file.  Put the cursor on the brace that opens
the main() method.  Hit C-M-a (beginning-of-defun).  XEmacs will enter
a CPU intensive loop searching backwards for defun-prompt-regexp
(which in Java mode is currently c-Java-defun-prompt-regexp, i.e. not
nil).

C-g will not break out of this.

FWIW, Emacs 19.34 exhibits the same CPU hoggage, but it does respond
to C-g.  With XEmacs, I had to kill the process, resulting in the
traceback appended below.

Let me know if more information is necessary.

-Barry

-------------------- snip snip --------------------
 \(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][       :;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([]     ]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[,       \n
]*\\)+\\)?\\s-*\\)\\s(" nil move 1)
  # bind (arg)
  beginning-of-defun-raw(1)
  # bind (arg)
  beginning-of-defun(1)
  # bind (command-debug-status)
  call-interactively(beginning-of-defun)
  command-execute(beginning-of-defun t)
  # bind (prefix-arg)
  execute-extended-command(nil)
  # bind (command-debug-status)
  call-interactively(execute-extended-command)
  # (condition-case ... . error)
  # (catch top-level ...)

C backtrace follows:
(A real debugger may provide better information)
 
18373:  src/xemacs-19.15-b90/src/xemacs -no-site-file -q
 ef438684 waitid   (0, 47c8, efff2ef0, 3)
 ef45a990 waitpid  (47c8, efff2fd8, 3, ef4914d0, 48, 0) + 58
 ef471404 system   (efff3148, 14c868, 14c800, 47c5, 102a401c, 0) + 1d8
 00063578 fatal_error_signal (f, 0, efff3290, f025cd40, 0, 10000) + d0
 ef437dc4 sigacthandler (f, 0, efff3290, 8, 8000000, 1) + 28
 000d8efc re_match_2_internal (ef4a0094, 0, 0, ef4a0000, efffdd30, 266000) + 2244
 000d6c34 re_search_2 (33, ef4a0000, 108, ef4a08d8, 0, 273ba4) + 3a8
 000dec34 search_buffer (95, 270f28, 95, 1, ffffffff, 272400) + 1f8
 000de674 search_command (302dee04, 1, 102ebaa4, 0, 452200, ffffffff) + 1d0
 000dfc48 Fre_search_backward (302dee04, 102a4004, 102ebaa4, 1, 102a4004, efffe719) + 24
 0006993c primitive_funcall (dfc24, 5, efffe350, 266a54, 102bea74, 102bea74) + d0
 00069a58 funcall_subr (2663b0, efffe350, 5, 5, efffe388, 2663b0) + c
 00068ff0 funcall_recording_as (102663b0, 4, efffe468, 28, efffe46c, 102a4004) + 2a4
 00069138 Ffuncall (5, efffe468, 102a4004, 0, 0, efffe47d) + c
 0004b340 Fbyte_code (102eb984, efffe468, 1ebf65, 1ebf74, 178db0, 1ebf44) + 598
 00069e30 funcall_lambda (101ebff0, 1, efffe714, fffffff, 5, efffeb39) + 2b0
 000690e0 funcall_recording_as (101ebff0, 1, efffe710, 102bf25c, 102b9834, 102b9834) + 394
 00069138 Ffuncall (2, efffe710, 274000, 0, 0, efffe719) + c
 0004b340 Fbyte_code (102eb984, efffe710, 1ebed3, 1ebef0, 178db0, 1ebed0) + 598
 00069e30 funcall_lambda (101ebf00, 1, efffe9b4, fffffff, 4, efffedf9) + 2b0
 000690e0 funcall_recording_as (101ebf00, 1, efffe9b0, fffffff, 102bb9e4, 102bb9e4) + 394
 00069138 Ffuncall (2, efffe9b0, 102a4004, 0, 0, a) + c
 0004dbb8 Fcall_interactively (1ebeea, 102a401c, 1, 1ebee8, 0, 102a4004) + 1304
 00067fac Fcommand_execute (101ebf00, 102a401c, 102a4004, 102efedc, 6, efffeb39) + 190
 00069900 primitive_funcall (67e1c, 3, efffecb8, 266a54, 102b9834, 102b9834) + 94
 00069a58 funcall_subr (177638, efffecb8, 3, 3, efffecf0, 177638) + c
 00068ff0 funcall_recording_as (10177638, 2, efffedd0, 102bf25c, 0, effff320) + 2a4
 00069138 Ffuncall (3, efffedd0, 102a4004, 0, 0, efffedf9) + c
 0004b340 Fbyte_code (102c0fb4, efffedd0, 192961, 192978, 178db0, 1928fc) + 598
 00069e30 funcall_lambda (10192a94, 1, effff094, fffffff, 2, 0) + 2b0
 000690e0 funcall_recording_as (10192a94, 1, effff090, 266a54, 1031fdbc, 1031fdbc) + 394
 00069138 Ffuncall (2, effff090, 102a4004, 0, 1031fdbc, a) + c
 0004dbb8 Fcall_interactively (192971, 102a4004, 1, 192970, 0, 102a4004) + 1304
 00067fac Fcommand_execute (10192a94, 102a4004, 102a4004, 10000000, 0, 0) + 190
 0007526c execute_command_event (2e6c80, 35de00, 102a4004, fffffff, 0, effff320) + 1e8
 00075870 Fdispatch_event (103df6d0, 102a4004, 102a4004, 0, 0, 0) + 498
 00050ac4 Fcommand_loop_1 (35de00, 102a4004, 272400, 66be4, 0, 0) + 1cc
 000508e8 command_loop_1 (102a4004, 20353f74, 0, 508cc, 2a4848, effff230) + 1c
 00066c40 condition_case_1 (102a4064, 508cc, 102a4004, 50210, 102a4004, 0) + ec
 00050308 command_loop_3 (0, effff638, 66874, 6687c, 102a4004, 0) + 28
 00050330 command_loop_2 (102a4004, 0, 5032c, 0, 2f, effff418) + 4
 000668a0 internal_catch (102b6da4, 5032c, 102a4004, 0, effff668, 0) + 94
 00050538 initial_command_loop (fffffff, 29e000, 273400, 0, effffdcd, effffdcd) + 1f0
 000643f4 main_1   (3, effff8fc, 14c800, f025cd40, 0, 0) + bb4
 000647a8 main     (3, effff8fc, effff90c, 273290, 1, 0) + a4
 0003e194 _start   (0, 0, 0, 0, 0, 0) + 5c

