Subject: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer

From: Matt Beshara <[email-masked]>
Date: Sun, 15 Aug 2021 12:46:09 +1000

>From emacs -Q:
 1. M-x eww RET
 2. mfa.pw/brave-new-world.xml RET
 3. C-x h
 4. M-w
 5. C-x b *scratch* RET
 6. (require 'savehist) C-j
 7. (setq savehist-additional-variables '(kill-ring)) C-j
 8. (savehist-save) C-j
    At this point ‘savehist-save’ will work as intended, even with 
    the
    large amount of XML in the kill ring.
 9. C-x b *eww* RET
10. M-x nxml-mode RET
11. C-x h
12. M-w
13. C-x b *scratch* RET
14. (savehist-save) C-j
    Here is where Emacs hangs.  The Emacs process’s CPU usage goes 
    to
    100%, and it starts consuming greater and greater amounts of
    memory.

Here is the output I get from ‘bt all’ after attaching lldb to the
process while it is in this state:

* thread #1, queue = 'com.apple.main-thread', stop reason = signal 
  SIGSTOP
  * frame #0: 0x000000010b933725 
  Emacs`print_object(obj=0x0000000002f9a7f0, 
  printcharfun=0x0000000000000000, escapeflag=true) at 
  print.c:1901:37 [opt]
    frame #1: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa4ed93, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #2: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa4ed53, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #3: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa4f4f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #4: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa823, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #5: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa7d3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #6: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa8f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #7: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa663, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #8: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa89333, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #9: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa6a3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #10: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa443, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #11: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa70603, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #12: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaaa473, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #13: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa59273, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #14: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1ca942f63, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #15: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1ca942ef3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #16: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1ca942c43, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #17: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa12723, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #18: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa12313, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #19: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa12183, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #20: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa11653, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #21: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa181f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #22: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa18153, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #23: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa14423, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #24: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa53053, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #25: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa9b8b3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #26: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7e93, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #27: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7ac3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #28: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7aa3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #29: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab9103, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #30: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cc1e7fb3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #31: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cc1e7f83, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #32: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cc1e8ae3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #33: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cb8abd63, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #34: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cc1df053, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #35: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1ca8da613, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #36: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa5da93, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #37: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa98253, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #38: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caa9b913, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #39: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7d63, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #40: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7c13, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #41: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caab7bd3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #42: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaa74f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #43: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaa7003, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #44: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #45: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4ac14d, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #46: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caabaac3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #47: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #48: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc42d8c5, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #49: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #50: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc437135, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #51: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #52: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4933f5, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #53: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #54: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc493465, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #55: 0x000000010b9344a3 
    Emacs`print_object(obj=<unavailable>, 
    printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 
    [opt]
    frame #56: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caac45e3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #57: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #58: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4371a5, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #59: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #60: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc437215, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #61: 0x000000010b9344a3 
    Emacs`print_object(obj=<unavailable>, 
    printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 
    [opt]
    frame #62: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaca233, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #63: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #64: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4f93c5, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #65: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caac2063, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #66: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #67: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc42f57d, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #68: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #69: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc42f5ed, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #70: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caac70f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #71: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #72: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc49629d, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #73: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #74: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4963ed, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #75: 0x000000010b9344a3 
    Emacs`print_object(obj=<unavailable>, 
    printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 
    [opt]
    frame #76: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caacdc13, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #77: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #78: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4357d5, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #79: 0x000000010b9359e4 
    Emacs`print_vectorlike(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>, 
    buf=<unavailable>) at print.c:1807:6 [opt]
    frame #80: 0x000000010b933900 
    Emacs`print_object(obj=0x00007fe1cc4969ed, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2218:11 [opt]
    frame #81: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caaccee3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #82: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1cc46f443, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #83: 0x000000010b97a9b4 
    Emacs`traverse_intervals(tree=0x00007fe1ca85dad8, 
    position=2115, function=(Emacs`print_interval at 
    print.c:2247), arg=0x0000000000000000) at intervals.c:257:7 
    [opt]
    frame #84: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca85d9f8, 
    position=2063, function=(Emacs`print_interval at 
    print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 
    [opt]
    frame #85: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca8ab780, 
    position=2063, function=(Emacs`print_interval at 
    print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 
    [opt]
    frame #86: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca8ab4e0, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #87: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca961270, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #88: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca961030, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #89: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca960ee0, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #90: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1caa552a0, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #91: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1caa54dc0, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #92: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1caa61e30, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #93: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca8fde00, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #94: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1cabb8600, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #95: 0x000000010b97a987 
    Emacs`traverse_intervals(tree=0x00007fe1ca8e7b50, position=0, 
    function=(Emacs`print_interval at print.c:2247), 
    arg=0x0000000000000000) at intervals.c:254:7 [opt]
    frame #96: 0x000000010b9343f2 
    Emacs`print_object(obj=<unavailable>, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2063:8 [opt]
    frame #97: 0x000000010b933c63 
    Emacs`print_object(obj=0x00007fe1caac65f3, 
    printcharfun=0x0000000000000000, escapeflag=true) at 
    print.c:2192:8 [opt]
    frame #98: 0x000000010b9309e0 Emacs`print(obj=<unavailable>, 
    printcharfun=<unavailable>, escapeflag=<unavailable>) at 
    print.c:650:3 [opt] [artificial]
    frame #99: 0x000000010b93073b 
    Emacs`Fprin1(object=0x00007fe1caac65f3, 
    printcharfun=<unavailable>) at print.c:651:3 [opt]
    frame #100: 0x000000010b911871 
    Emacs`funcall_subr(subr=0x000000010ba4a018, numargs=2, 
    args=<unavailable>) at eval.c:3128:19 [opt]
    frame #101: 0x000000010b910e5f 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:3051:11 [opt]
    frame #102: 0x000000015543b2ab 
    savehist-b722b772-6be6c4f8.eln`F73617665686973742d7072696e7461626c65_savehist_printable_0 
    + 603
    frame #103: 0x000000010b91187d 
    Emacs`funcall_subr(subr=0x00007fe1cc4bb288, numargs=1, 
    args=<unavailable>) at eval.c:3126:19 [opt]
    frame #104: 0x000000010b910e5f 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:3051:11 [opt]
    frame #105: 0x000000015543a5fb 
    savehist-b722b772-6be6c4f8.eln`F73617665686973742d73617665_savehist_save_0 
    + 987
    frame #106: 0x000000010b90c59b 
    Emacs`eval_sub(form=<unavailable>) at eval.c:0 [opt]
    frame #107: 0x000000010b90ca0d 
    Emacs`Fprogn(body=0x0000000000000000) at eval.c:471:13 [opt]
    frame #108: 0x000000010b90c5b2 
    Emacs`eval_sub(form=<unavailable>) at eval.c:0 [opt]
    frame #109: 0x000000010b9103ca 
    Emacs`Feval(form=0x00007fe1cb9a0283, lexical=<unavailable>) at 
    eval.c:2355:28 [opt]
    frame #110: 0x000000010b911871 
    Emacs`funcall_subr(subr=0x000000010ba46b98, numargs=2, 
    args=<unavailable>) at eval.c:3128:19 [opt]
    frame #111: 0x000000010b910e5f 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:3051:11 [opt]
    frame #112: 0x000000010b9571e2 
    Emacs`exec_byte_code(bytestr=<unavailable>, 
    vector=0x000000010eb5299d, maxdepth=<unavailable>, 
    args_template=<unavailable>, nargs=1, args=<unavailable>) at 
    bytecode.c:632:12 [opt]
    frame #113: 0x000000010b910def 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:0:4 [opt]
    frame #114: 0x000000010b9571e2 
    Emacs`exec_byte_code(bytestr=<unavailable>, 
    vector=0x000000010eb5290d, maxdepth=<unavailable>, 
    args_template=<unavailable>, nargs=1, args=<unavailable>) at 
    bytecode.c:632:12 [opt]
    frame #115: 0x000000010b910def 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:0:4 [opt]
    frame #116: 0x000000010b9571e2 
    Emacs`exec_byte_code(bytestr=<unavailable>, 
    vector=0x000000010eb5287d, maxdepth=<unavailable>, 
    args_template=<unavailable>, nargs=1, args=<unavailable>) at 
    bytecode.c:632:12 [opt]
    frame #117: 0x000000010b910def 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:0:4 [opt]
    frame #118: 0x000000010b9099b9 
    Emacs`Ffuncall_interactively(nargs=<unavailable>, 
    args=<unavailable>) at callint.c:260:32 [opt]
    frame #119: 0x000000010b910e5f 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:3051:11 [opt]
    frame #120: 0x000000010b90afa3 
    Emacs`Fcall_interactively(function=0x0000000002ced1b0, 
    record_flag=0x0000000000000000, keys=0x00007fe1cc498895) at 
    callint.c:791:21 [opt]
    frame #121: 0x000000010b911891 
    Emacs`funcall_subr(subr=0x000000010ba461e8, numargs=3, 
    args=<unavailable>) at eval.c:3131:19 [opt]
    frame #122: 0x000000010b910e5f 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:3051:11 [opt]
    frame #123: 0x000000010b9571e2 
    Emacs`exec_byte_code(bytestr=<unavailable>, 
    vector=0x000000010e964cfd, maxdepth=<unavailable>, 
    args_template=<unavailable>, nargs=1, args=<unavailable>) at 
    bytecode.c:632:12 [opt]
    frame #124: 0x000000010b910def 
    Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at 
    eval.c:0:4 [opt]
    frame #125: 0x000000010b9114cc Emacs`call1(fn=<unavailable>, 
    arg1=<unavailable>) at eval.c:2911:10 [opt]
    frame #126: 0x000000010b88506e Emacs`command_loop_1 at 
    keyboard.c:1489:13 [opt]
    frame #127: 0x000000010b90ede7 
    Emacs`internal_condition_case(bfun=(Emacs`command_loop_1 at 
    keyboard.c:1262), handlers=0x0000000000000090, 
    hfun=(Emacs`cmd_error at keyboard.c:925)) at eval.c:1478:25 
    [opt]
    frame #128: 0x000000010b88489e 
    Emacs`command_loop_2(handlers=0x0000000000000090) at 
    keyboard.c:1117:11 [opt]
    frame #129: 0x000000010b90e3fe 
    Emacs`internal_catch(tag=0x000000000000de60, 
    func=<unavailable>, arg=<unavailable>) at eval.c:1198:25 [opt]
    frame #130: 0x000000010b9e0b78 Emacs`command_loop.cold.1 + 72
    frame #131: 0x000000010b884166 Emacs`command_loop at 
    keyboard.c:1092:5 [opt]
    frame #132: 0x000000010b884076 Emacs`recursive_edit_1 at 
    keyboard.c:720:9 [opt]
    frame #133: 0x000000010b8842eb Emacs`Frecursive_edit at 
    keyboard.c:792:3 [opt]
    frame #134: 0x000000010b882e7c Emacs`main(argc=<unavailable>, 
    argv=0x00007ffee4451928) at emacs.c:2310:3 [opt]
    frame #135: 0x00007fff5efd43d5 libdyld.dylib`start + 1
    frame #136: 0x00007fff5efd43d5 libdyld.dylib`start + 1
  thread #3, name = 'gmain'
    frame #0: 0x00007fff5f11136a libsystem_kernel.dylib`poll + 10
    frame #1: 0x000000010d84c9f6 
    libglib-2.0.0.dylib`g_main_context_iterate + 422
    frame #2: 0x000000010d84cb06 
    libglib-2.0.0.dylib`g_main_context_iteration + 102
    frame #3: 0x000000010d84eb86 
    libglib-2.0.0.dylib`glib_worker_main + 54
    frame #4: 0x000000010d87aec2 
    libglib-2.0.0.dylib`g_thread_proxy + 66
    frame #5: 0x00007fff5f1c82eb 
    libsystem_pthread.dylib`_pthread_body + 126
    frame #6: 0x00007fff5f1cb249 
    libsystem_pthread.dylib`_pthread_start + 66
    frame #7: 0x00007fff5f1c740d 
    libsystem_pthread.dylib`thread_start + 13
  thread #5
    frame #0: 0x00007fff5f110616 libsystem_kernel.dylib`__select + 
    10
    frame #1: 0x000000010b9a74c2 Emacs`-[EmacsApp 
    fd_handler:](self=<unavailable>, _cmd=<unavailable>, 
    unused=<unavailable>) at nsterm.m:5872:20 [opt]
    frame #2: 0x00007fff3524d9a2 Foundation`__NSThread__start__ + 
    1194
    frame #3: 0x00007fff5f1c82eb 
    libsystem_pthread.dylib`_pthread_body + 126
    frame #4: 0x00007fff5f1cb249 
    libsystem_pthread.dylib`_pthread_start + 66
    frame #5: 0x00007fff5f1c740d 
    libsystem_pthread.dylib`thread_start + 13
  thread #8, name = 'com.apple.NSEventThread'
    frame #0: 0x00007fff5f10921a 
    libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007fff5f109768 libsystem_kernel.dylib`mach_msg + 
    60
    frame #2: 0x00007fff32feee0e 
    CoreFoundation`__CFRunLoopServiceMachPort + 328
    frame #3: 0x00007fff32fee37c CoreFoundation`__CFRunLoopRun + 
    1612
    frame #4: 0x00007fff32fedade 
    CoreFoundation`CFRunLoopRunSpecific + 455
    frame #5: 0x00007fff305eb4a2 AppKit`_NSEventThread + 175
    frame #6: 0x00007fff5f1c82eb 
    libsystem_pthread.dylib`_pthread_body + 126
    frame #7: 0x00007fff5f1cb249 
    libsystem_pthread.dylib`_pthread_start + 66
    frame #8: 0x00007fff5f1c740d 
    libsystem_pthread.dylib`thread_start + 13
  thread #81
    frame #0: 0x00007fff5f1c73f0 
    libsystem_pthread.dylib`start_wqthread
  thread #86
    frame #0: 0x0000000000000000

In GNU Emacs 28.0.50 (build 4, x86_64-apple-darwin18.7.0, NS 
appkit-1671.60 Version 10.14.6 (Build 18G9216))
 of 2021-08-15 built on Dhamma.local
Repository revision: 31ab12e26168c272b291fe91c009cc53b3e55492
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1671
System Description:  Mac OS X 10.14.6

Configured using:
 'configure --with-sound=no --with-x-toolkit=no --with-json
 --without-compress-install --with-native-compilation'
Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES 
NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS 
XIM
ZLIB
Important settings:
  value of $LANG: en_AU.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Info

Minor modes in effect:
  windmove-mode: t
  which-key-mode: t
  vertico-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  display-time-mode: t
  pdf-occur-global-minor-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  ace-window-display-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  recentf-mode: t
  minibuffer-depth-indicate-mode: t
  marginalia-mode: t
  isearch-mb-mode: t
  flyspell-lazy-mode: t
  electric-pair-mode: t
  diredfl-global-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  global-aggressive-indent-mode: t
  global-so-long-mode: t
  global-display-line-numbers-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  shell-dirtrack-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-quote-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/matt/.emacs.d/elpa/magit-20210806.2014/magit-section-pkg 
hides 
/Users/matt/.emacs.d/elpa/magit-section-20210806.1607/magit-section-pkg
/Users/matt/.emacs.d/elpa/password-store-20200328.1214/password-store 
hides /usr/local/share/emacs/site-lisp/pass/password-store
/Users/matt/.emacs.d/elpa/transient-20210723.1601/transient hides 
/Applications/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow epa-file emacsbug em-unix em-term em-script em-prompt 
em-ls
em-hist em-pred em-glob em-dirs esh-var em-cmpl em-basic em-banner
em-alias esh-mode network-stream url-cache magit-extras tabify 
help-fns
radix-tree cl-print misearch multi-isearch reposition tramp-cache
tramp-sh octave-expansions octave lua-mode ol-eww ol-rmail ol-mhe 
ol-irc
ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage 
dframe
ol-docview ol-bibtex bibtex ol-bbdb ol-w3m dired-aux bug-reference
pdf-sync pdf-annot pdf-outline pdf-links pdf-history rng-cmpct
modus-operandi-theme subword-mode-expansions cap-words superword 
subword
debbugs soap-client url-http url-auth url-gw rng-xsd xsd-regexp 
diminish
mfa-bind mfa-ztree ztree ztree-diff ztree-diff-model ztree-dir
ztree-view ztree-protocol ztree-util mfa-xref mfa-windmove 
windmove
mfa-whitespace whitespace mfa-which-key which-key mfa-wgrep 
mfa-vterm
mfa-vertico consult-vertico vertico mfa-vdiff-magit vdiff-magit
magit-ediff mfa-vdiff vdiff hydra lv mfa-undo-tree undo-tree 
mfa-tramp
tramp tramp-loaddefs trampver tramp-integration files-x 
tramp-compat
ls-lisp mfa-tab-bar time mfa-symbol-overlay symbol-overlay mfa-rg 
rg
rg-info-hack rg-menu rg-ibuffer ibuf-macs rg-result wgrep-rg wgrep
rg-history rg-header mfa-pdf-tools pdf-occur ibuf-ext tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch
let-alist pdf-misc pdf-tools pdf-view pdf-cache pdf-info pdf-util
pdf-macs mfa-password-store mfa-passmm passmm password-store
auth-source-pass mfa-mu4e mu4e mu4e-org mu4e-main mu4e-view
mu4e-view-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig
gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 
gnus-spec
gnus-int gnus-range gnus-win mu4e-view-common mu4e-headers 
mu4e-compose
mu4e-context mu4e-draft mu4e-actions rfc2368 mu4e-mark mu4e-proc
mu4e-utils mu4e-lists mu4e-message flow-fill hl-line mu4e-vars 
mu4e-meta
mfa-mpv mpv tq org-timer org-clock mfa-modus-themes modus-themes 
mfa-man
man mfa-magit magit-bookmark magit-submodule magit-obsolete 
magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull 
magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log magit-diff smerge-mode git-commit log-edit 
add-log
magit-core magit-autorevert magit-margin magit-transient 
magit-process
with-editor magit-mode transient magit-git magit-section benchmark
magit-utils which-func ido crm mfa-info mfa-exwm exwm-systemtray
xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input
xcb-keysyms exwm-manage exwm-floating xcb-cursor xcb-render 
exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xkb xcb-xproto
xcb-types xcb-debug mfa-embark embark-consult embark mfa-elpher 
ffap
socks nsm elpher mfa-elfeed elfeed-show elfeed-search vc-mtn 
vc-bzr
vc-src vc-sccs vc-svn vc-cvs vc-rcs message rmc rfc822 mml mml-sec 
epa
epg epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils
mailheader elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db 
elfeed-lib
xml-query mfa-eglot eglot array jsonrpc ert debug backtrace 
flymake-proc
flymake mfa-diacritics mfa-doc-view doc-view jka-compr image-mode 
exif
mfa-desktop desktop frameset mfa-dabbrev dabbrev mfa-consult
consult-xref consult mfa-calendar mfa-avy mfa-ace-window 
ace-window
mfa-ace-link ace-link avy saveplace savehist rotate re-builder
rainbow-delimiters rfc-mode pinentry paren foldout org-noter
prot-orderless orderless nxml-mode-expansions rng-nxml rng-valid 
rng-loc
rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn 
nxml-ns
nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok nov 
recentf
tree-widget the-org-mode-expansions org-element avl-tree generator 
org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete org-list org-faces org-entities 
noutline
outline org-version ob-emacs-lisp ob-core ob-eval org-table ol 
org-keys
org-compat org-macs org-loaddefs format-spec cal-menu calendar
cal-loaddefs bookmark esxml-query multiple-cursors
mc-separate-operations rectangular-region-mode mc-mark-pop 
mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core rect move-text mb-depth mhtml-mode
css-mode-expansions css-mode smie html-mode-expansions sgml-mode
marginalia js-mode-expansions js imenu cc-mode-expansions cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine 
cc-vars
cc-defs isearch-mb impatient-mode htmlize simple-httpd ibuffer
ibuffer-loaddefs hideshow grep gnutls form-feed flyspell-lazy
flyspell-correct flyspell ispell expand-region 
text-mode-expansions
er-basic-expansions expand-region-core expand-region-custom 
prot-eww
prot-pulse pulse prot-common eww xdg url-queue shr kinsoku svg xml 
dom
puny mm-url gnus nnheader gnus-util rmail rmail-loaddefs time-date
eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util enriched facemenu elec-pair ediff ediff-merg
ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util
dumb-jump popup s xref project display-fill-column-indicator 
diredfl
dired-subtree dired-narrow dired-hacks-utils dash dired-x
diff-hl-flydiff diff diff-hl vc-hg vc-git log-view pcvs-util 
vc-dir ewoc
vc vc-dispatcher diff-mode cus-edit pp cus-load wid-edit calc
calc-loaddefs calc-macs apropos aggressive-indent lisp-mnt 
mail-parse
rfc2231 so-long display-line-numbers delsel autorevert filenotify 
server
anaphora mfa nush nu advice cl nonsense smtpmail sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils regsearch 
thingatpt
aside-dired dired dired-loaddefs aside-context aside-vterm vterm 
derived
face-remap compile text-property-search color term disp-table 
shell
pcomplete ehelp comint ansi-color ring find-func vterm-module 
term/xterm
xterm aside-hook-functions aside edmacro kmacro info package 
browse-url
url url-proxy url-privacy url-expand url-methods url-history 
url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source 
eieio
eieio-core eieio-loaddefs password-cache json map url-vars 
auto-compile
comp comp-cstr warnings subr-x rx cl-seq cl-extra help-mode 
easy-mmode
packed cl-macs pcase cl-loaddefs cl-lib seq byte-opt gv bytecomp
byte-compile cconv iso-transl tooltip 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 
easymenu
timer select scroll-bar mouse jit-lock font-lock syntax 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 
button
loaddefs faces cus-face macroexp files window text-properties 
overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind kqueue cocoa 
ns
lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 3345093 414274)
 (symbols 48 83859 2)
 (strings 32 286646 14922)
 (string-bytes 1 11335765)
 (vectors 16 118575)
 (vector-slots 8 2919333 305282)
 (floats 8 2527 858)
 (intervals 56 446349 1375)
 (buffers 992 130))