Subject: bug#44818: 27.0.91; wedged

From: Devon Sean McCullough <[email-masked]>
Date: Mon, 23 Nov 2020 00:07:10 -0500

Having fat-fingered it in dired, I inadvertently opened a large file
with no newlines.  That Emacs instance has been burning 100% CPU all
day.  I can interrupt and single step it in llbd from another Emacs.
Is there any way to unwedge Emacs?  E.g., would forcing read_char to
return Qnil, Qt or something cause corruption?  Would invoking, say,
Fbury_buffer_internal (Fcurrent_buffer ()) regain control or blow it
up?  I'll leave it overnight in case it reads the ^G^G^Xk^M I typed.

		Peace
			--Devon

P.S. Obviously, long stretches of non-newlines wedge Emacs for ages,
because redisplay assumes there are no long lines.  Perhaps the docs
mention some workaround I missed?  Redisplay has been buggy for over
a year now, glitchy blank windows, etc., but that's not today's bug.

(lldb) process attach --pid 1361

Process 1361 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
     frame #0: 0x00007fff7eedf21a libsystem_kernel.dylib`mach_msg_trap + 10
libsystem_kernel.dylib`mach_msg_trap:
->  0x7fff7eedf21a <+10>: retq
     0x7fff7eedf21b <+11>: nop

libsystem_kernel.dylib`mach_msg_overwrite_trap:
     0x7fff7eedf21c <+0>:  movq   %rcx, %r10
     0x7fff7eedf21f <+3>:  movl   $0x1000020, %eax          ; imm = 
0x1000020
Target 0: (Emacs-x86_64-10_14) stopped.

Executable module set to 
"/Applications/Emacs-27.0.91.app/Contents/MacOS/Emacs-x86_64-10_14".
Architecture set to: x86_64h-apple-macosx-.
(lldb) Process 1361 resuming
(lldb) error: Process is running.  Use 'process interrupt' to pause 
execution.
(lldb) error: Process is running.  Use 'process interrupt' to pause 
execution.
(lldb) process interrupt
(lldb) Process 1361 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
     frame #0: 0x00000001037bb087 
Emacs-x86_64-10_14`bidi_find_bracket_pairs + 1319
Emacs-x86_64-10_14`bidi_find_bracket_pairs:
->  0x1037bb087 <+1319>: leaq   0x5d6862(%rip), %rax      ; globals
     0x1037bb08e <+1326>: movb   0xe2a(%rax), %al
     0x1037bb094 <+1332>: testb  %al, %al
     0x1037bb096 <+1334>: jne    0x1037bacf0               ; <+400>
Target 0: (Emacs-x86_64-10_14) stopped.
bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
   * frame #0: 0x00000001037bb087 
Emacs-x86_64-10_14`bidi_find_bracket_pairs + 1319
     frame #1: 0x00000001037ba8ff 
Emacs-x86_64-10_14`bidi_resolve_brackets + 959
     frame #2: 0x00000001037b8236 
Emacs-x86_64-10_14`bidi_level_of_next_char + 358
     frame #3: 0x00000001037b7a07 
Emacs-x86_64-10_14`bidi_move_to_visually_next + 439
     frame #4: 0x000000010372fb4f 
Emacs-x86_64-10_14`set_iterator_to_next + 703
     frame #5: 0x000000010373110b 
Emacs-x86_64-10_14`move_it_in_display_line_to + 3835
     frame #6: 0x000000010372e60f Emacs-x86_64-10_14`move_it_to + 783
     frame #7: 0x00000001037371b9 
Emacs-x86_64-10_14`move_it_vertically_backward + 1273
     frame #8: 0x0000000103769fe7 Emacs-x86_64-10_14`redisplay_window + 
17735
     frame #9: 0x0000000103765a96 Emacs-x86_64-10_14`redisplay_window_0 + 38
     frame #10: 0x000000010385bbef 
Emacs-x86_64-10_14`internal_condition_case_1 + 271
     frame #11: 0x000000010376516c Emacs-x86_64-10_14`redisplay_windows 
+ 140
     frame #12: 0x000000010373b706 Emacs-x86_64-10_14`redisplay_internal 
+ 4886
     frame #13: 0x00000001037d8b15 Emacs-x86_64-10_14`read_char + 2213
     frame #14: 0x00000001037d66da Emacs-x86_64-10_14`read_key_sequence 
+ 1722
     frame #15: 0x00000001037d4edc Emacs-x86_64-10_14`command_loop_1 + 1340
     frame #16: 0x000000010385bab7 
Emacs-x86_64-10_14`internal_condition_case + 263
     frame #17: 0x00000001037e5050 Emacs-x86_64-10_14`command_loop_2 + 48
     frame #18: 0x000000010385b2db Emacs-x86_64-10_14`internal_catch + 267
     frame #19: 0x0000000103927355 
Emacs-x86_64-10_14`command_loop.cold.1 + 69
     frame #20: 0x00000001037d3fa3 Emacs-x86_64-10_14`command_loop + 131
     frame #21: 0x00000001037d3ed3 Emacs-x86_64-10_14`recursive_edit_1 + 115
     frame #22: 0x00000001037d412b Emacs-x86_64-10_14`Frecursive_edit + 347
     frame #23: 0x00000001037d2d07 Emacs-x86_64-10_14`main + 7431
     frame #24: 0x00007fff7edaa3d5 libdyld.dylib`start + 1
     frame #25: 0x00007fff7edaa3d5 libdyld.dylib`start + 1
(lldb) continue
Process 1361 resuming
(lldb) process interrupt
(lldb) Process 1361 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
     frame #0: 0x00000001039152a0 
Emacs-x86_64-10_14`macfont_get_glyph_for_character + 32
Emacs-x86_64-10_14`macfont_get_glyph_for_character:
->  0x1039152a0 <+32>: movq   %rax, -0x30(%rbp)
     0x1039152a4 <+36>: movq   0xd8(%rdi), %r15
     0x1039152ab <+43>: movq   0xf0(%rdi), %r12
     0x1039152b2 <+50>: cmpl   $0xd800, %esi             ; imm = 0xD800
Target 0: (Emacs-x86_64-10_14) stopped.
bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
   * frame #0: 0x00000001039152a0 
Emacs-x86_64-10_14`macfont_get_glyph_for_character + 32
     frame #1: 0x0000000103911094 Emacs-x86_64-10_14`macfont_encode_char 
+ 20
     frame #2: 0x0000000103749bdc Emacs-x86_64-10_14`gui_produce_glyphs 
+ 2428
     frame #3: 0x00000001037308c5 
Emacs-x86_64-10_14`move_it_in_display_line_to + 1717
     frame #4: 0x000000010372e60f Emacs-x86_64-10_14`move_it_to + 783
     frame #5: 0x00000001037371b9 
Emacs-x86_64-10_14`move_it_vertically_backward + 1273
     frame #6: 0x0000000103769fe7 Emacs-x86_64-10_14`redisplay_window + 
17735
     frame #7: 0x0000000103765a96 Emacs-x86_64-10_14`redisplay_window_0 + 38
     frame #8: 0x000000010385bbef 
Emacs-x86_64-10_14`internal_condition_case_1 + 271
     frame #9: 0x000000010376516c Emacs-x86_64-10_14`redisplay_windows + 140
     frame #10: 0x000000010373b706 Emacs-x86_64-10_14`redisplay_internal 
+ 4886
     frame #11: 0x00000001037d8b15 Emacs-x86_64-10_14`read_char + 2213
     frame #12: 0x00000001037d66da Emacs-x86_64-10_14`read_key_sequence 
+ 1722
     frame #13: 0x00000001037d4edc Emacs-x86_64-10_14`command_loop_1 + 1340
     frame #14: 0x000000010385bab7 
Emacs-x86_64-10_14`internal_condition_case + 263
     frame #15: 0x00000001037e5050 Emacs-x86_64-10_14`command_loop_2 + 48
     frame #16: 0x000000010385b2db Emacs-x86_64-10_14`internal_catch + 267
     frame #17: 0x0000000103927355 
Emacs-x86_64-10_14`command_loop.cold.1 + 69
     frame #18: 0x00000001037d3fa3 Emacs-x86_64-10_14`command_loop + 131
     frame #19: 0x00000001037d3ed3 Emacs-x86_64-10_14`recursive_edit_1 + 115
     frame #20: 0x00000001037d412b Emacs-x86_64-10_14`Frecursive_edit + 347
     frame #21: 0x00000001037d2d07 Emacs-x86_64-10_14`main + 7431
     frame #22: 0x00007fff7edaa3d5 libdyld.dylib`start + 1
     frame #23: 0x00007fff7edaa3d5 libdyld.dylib`start + 1
(lldb) continue
Process 1361 resuming
(lldb)

In GNU Emacs 27.0.91 (build 1, x86_64-apple-darwin18.7.0, NS 
appkit-1671.60 Version 10.14.6 (Build 18G6042))
  of 2020-11-22 built on la
Windowing system distributor 'Apple', version 10.3.1671
System Description:  Mac OS X 10.14.6

Recent messages:
History item: 0
History item: 1
History item: 2
History item: 3
History item: 4
History item: 5
History item: 6
History item: 7
History item: 8
History item: 9

Configured using:
  'configure --with-ns '--enable-locallisppath=/Library/Application
  Support/Emacs/${version}/site-lisp:/Library/Application
  Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES
THREADS PDUMPER

Important settings:
   value of $LANG: en_BE@currency=USD.UTF-8
   locale-coding-system: utf-8-unix

Major mode: Lisp

Minor modes in effect:
   display-time-mode: t
   slime-trace-dialog-minor-mode: t
   slime-autodoc-mode: t
   slime-mode: t
   gud-tooltip-mode: t
   which-function-mode: t
   shell-dirtrack-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   eldoc-mode: t
   electric-indent-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
   temp-buffer-resize-mode: t
   line-number-mode: t
   transient-mark-mode: t

Load-path shadows:
/Users/devon/quicklisp/dists/quicklisp/software/slime-v2.24/slime-autoloads 
hides /Users/devon/.emacs.d/elpa/slime-20200711.1419/slime-autoloads
/Users/devon/quicklisp/dists/quicklisp/software/slime-v2.24/slime-tests 
hides /Users/devon/.emacs.d/elpa/slime-20200711.1419/slime-tests
/Users/devon/quicklisp/dists/quicklisp/software/slime-v2.24/slime hides 
/Users/devon/.emacs.d/elpa/slime-20200711.1419/slime
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/frame hides 
/Users/devon/emacs/frame
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/emacs-lisp/cl-macs 
hides /Users/devon/emacs/cl-macs
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/mail/sendmail 
hides /Users/devon/emacs/sendmail
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/forms hides 
/Users/devon/emacs/forms
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/mail/hashcash 
hides /Users/devon/emacs/hashcash
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/progmodes/inf-lisp 
hides /Users/devon/emacs/inf-lisp
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/dired-aux hides 
/Users/devon/emacs/dired-aux
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/json hides 
/Users/devon/emacs/json
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/net/shr hides 
/Users/devon/emacs/shr
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/replace hides 
/Users/devon/emacs/replace
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/textmodes/sgml-mode 
hides /Users/devon/emacs/sgml-mode
/Users/devon/quicklisp/dists/quicklisp/software/slime-v2.24/slime hides 
/Users/devon/emacs/slime
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/comint hides 
/Users/devon/emacs/comint
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/play/morse hides 
/Users/devon/emacs/morse
/Users/devon/.emacs.d/elpa/slime-repl-ansi-color-20190426.1414/slime-repl-ansi-color 
hides /Users/devon/emacs/slime-repl-ansi-color
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/xml hides 
/Users/devon/emacs/xml
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/emacs-lisp/regexp-opt 
hides /Users/devon/emacs/regexp-opt
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/emacs-lisp/advice 
hides /Users/devon/emacs/advice
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/emacs-lisp/lisp 
hides /Users/devon/emacs/lisp
/Users/devon/.emacs.d/elpa/csv-mode-1.7/csv-mode hides 
/Users/devon/emacs/csv-mode
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/textmodes/picture 
hides /Users/devon/emacs/picture
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/progmodes/xref 
hides /Users/devon/emacs/xref
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/rect hides 
/Users/devon/emacs/rect
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/lpr hides 
/Users/devon/emacs/lpr
/Applications/Emacs-27.0.91.app/Contents/Resources/lisp/net/tramp-ftp 
hides /Users/devon/emacs/tramp-ftp

Features:
(shadow mail-extr emacsbug message rfc822 mml mml-sec epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
pcmpl-unix eieio-opt speedbar sb-image ezimage dframe lisp-cycle
jka-compr gcl-info server tabify man macrostep-c cmacexp libgl-doc
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs tramp-cache tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
format-spec cl-indent vc-git markdown-mode network-stream puny nsm rmc
slime-media slime-repl-ansi-color slime-fancy slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
lisp-mnt gud apropos compile arc-mode archive-mode noutline outline pp
hyperspec view color rect shell pcomplete bucky macosx sort etags
fileloop generator xref project compare-w diff-mode easy-mmode paren
advice sgml-mode dom info-look ispell disp-table edmacro kmacro supersub
rx comint ansi-color ring dired-aux dired dired-loaddefs time-date
misearch multi-isearch cl-extra thingatpt help-fns radix-tree cl-print
debug finder-inf backtrace help-mode find-func appt diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs cl info slime-autoloads
package easymenu browse-url url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip cus-start eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 908857 112639)
  (symbols 48 44923 2)
  (strings 32 191673 14229)
  (string-bytes 1 6084677)
  (vectors 16 79173)
  (vector-slots 8 1780939 139134)
  (floats 8 539 306)
  (intervals 56 47437 1195)
  (buffers 1000 76))