Subject: Re: bug#69561: 30.0.50; Freeze from M-x gnus on macOS

From: Gerd Möllmann <[email-masked]>
Date: Tue, 05 Mar 2024 15:29:51 +0100

Gerd Möllmann <[email-masked]> writes:

Happened again, this time when sending a mail to Alan in debbugs-gnu.

Stepping through wait_reading_process_output one can see that ns_select
is called again and again and again without progress. (Alas, I don't
understand this function anymore, so I can't extract hints out of
what I'm seeing.)

I'm now trying with older versions of master, because HEAD seems to be
currently unusable.

(lldb) xbacktrace
(unsigned char *) data = 0x00000001002a5cbd "accept-process-output"
(unsigned char *) data = 0x00007f87f15597f8 "epg-wait-for-status"
(unsigned char *) data = 0x00007f87f155ac80 "epg-start-decrypt"
(unsigned char *) data = 0x00007f87f155ad70 "epg-decrypt-file"
(unsigned char *) data = 0x00007f87f68b7798 "epa-file-insert-file-contents"
(unsigned char *) data = 0x000000010029eb79 "apply"
(unsigned char *) data = 0x0000000175c52557 "epa-file-handler"
(unsigned char *) data = 0x000000010029b6e3 "insert-file-contents"
(unsigned char *) data = 0x00007f87f2042ea0 "auth-source-netrc-parse"
(unsigned char *) data = 0x00007f87f20426f0 "auth-source-netrc-search"
(unsigned char *) data = 0x000000010029eb79 "apply"
(unsigned char *) data = 0x00007f87f2042b28 "auth-source-search-backends"
(unsigned char *) data = 0x00007f87f2042950 "auth-source-search"
(unsigned char *) data = 0x00007f87f15f3f80 "network-stream-certificate"
(unsigned char *) data = 0x00007f87efb6e6a8 "network-stream-open-starttls"
(unsigned char *) data = 0x00000001002a33bd "open-network-stream"
(unsigned char *) data = 0x00007f87efbbc638 "smtpmail-via-smtp"
(unsigned char *) data = 0x0000000175cf968b "smtpmail-send-it"
(unsigned char *) data = 0x00007f87f157c688 "message-use-send-mail-function"
(unsigned char *) data = 0x00007f87f157c6b0 "message--default-send-mail-function"
(unsigned char *) data = 0x00007f87f158bea0 "message-multi-smtp-send-mail"
(unsigned char *) data = 0x00007f87f158bf90 "message--send-mail-maybe-partially"
(unsigned char *) data = 0x00007f87f158b5f8 "message-send-mail"
(unsigned char *) data = 0x00007f87f157def8 "message-send-via-mail"
(unsigned char *) data = 0x00007f87f1585680 "message-send"
(unsigned char *) data = 0x0000000175c5d433 "message-send-and-exit"
(unsigned char *) data = 0x000000010029e589 "funcall-interactively"
(unsigned char *) data = 0x000000010029e576 "call-interactively"
(unsigned char *) data = 0x00000001002a1a0f "command-execute"

(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00007ff81b20f7f2 libsystem_kernel.dylib`__pthread_sigmask + 10
    frame #1: 0x00007ff81b2487f7 libsystem_pthread.dylib`pthread_sigmask + 9
    frame #2: 0x0000000100202545 emacs`really_call_select(arg=0x00007ff7bfef9288) at thread.c:639:3 [opt]
    frame #3: 0x0000000100202490 emacs`thread_select [inlined] flush_stack_call_func(func=<unavailable>, arg=0x00007ff7bfef9288) at lisp.h:4457:3 [opt]
    frame #4: 0x0000000100202480 emacs`thread_select(func=<unavailable>, max_fds=38, rfds=<unavailable>, wfds=<unavailable>, efds=<unavailable>, timeout=<unavailable>, sigmask=0x0000000000000000) at thread.c:656:3 [opt]
    frame #5: 0x0000000100226a74 emacs`ns_select_1(nfds=38, readfds=0x00007ff7bfef9580, writefds=0x00007ff7bfef9460, exceptfds=0x0000000000000000, timeout=0x00007ff7bfef9670, sigmask=0x0000000000000000, run_loop_only=NO) at nsterm.m:4760:12 [opt]
    frame #6: 0x0000000100226704 emacs`ns_select(nfds=<unavailable>, readfds=<unavailable>, writefds=<unavailable>, exceptfds=<unavailable>, timeout=<unavailable>, sigmask=<unavailable>) at nsterm.m:4888:10 [opt]
    frame #7: 0x00000001001d9e3d emacs`wait_reading_process_output(time_limit=<unavailable>, nsecs=<unavailable>, read_kbd=0, do_display=false, wait_for_cell=(struct Lisp_Symbol *) $423 = 0x00000001007d24b0, wait_proc=0x00007f87f20f8218, just_wait_proc=0) at process.c:5748:18 [opt]
    frame #8: 0x00000001001d8bdc emacs`Faccept_process_output(process=<unavailable>, seconds=(EMACS_INT) $432 = 1, millisec=<unavailable>, just_this_one=(struct Lisp_Symbol *) $450 = 0x00000001007d24b0) at process.c:4912:7 [opt]
    frame #9: 0x00000001001ce53c emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:814:14 [opt]
    frame #10: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #11: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #12: 0x000000010017e14a emacs`Ffuncall(nargs=6, args=(struct Lisp_Symbol *) $463 = 0x00007ff8c06cbde0) at eval.c:3022:21 [opt]
    frame #13: 0x00000001001825ad emacs`Fapply(nargs=2, args=<unavailable>) at eval.c:2693:24 [opt]
    frame #14: 0x00000001001ce53c emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:814:14 [opt]
    frame #15: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #16: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #17: 0x000000010017e14a emacs`Ffuncall(nargs=7, args=(struct Lisp_Symbol *) $474 = 0x00007ff8c06cc330) at eval.c:3022:21 [opt]
    frame #18: 0x000000010012ccf2 emacs`Finsert_file_contents(filename=(struct Lisp_String *) $481 = 0x00007f87f8507750, visit=(struct Lisp_Symbol *) $499 = 0x00000001007d24b0, beg=(struct Lisp_Symbol *) $520 = 0x00000001007d24b0, end=(struct Lisp_Symbol *) $541 = 0x00000001007d24b0, replace=(struct Lisp_Symbol *) $562 = 0x00000001007d24b0) at fileio.c:4132:13 [opt]
    frame #19: 0x00000001001ce53c emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:814:14 [opt]
    frame #20: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #21: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #22: 0x000000010017e14a emacs`Ffuncall(nargs=19, args=(struct Lisp_Symbol *) $575 = 0x00007ff8c06d0810) at eval.c:3022:21 [opt]
    frame #23: 0x00000001001825ad emacs`Fapply(nargs=14, args=<unavailable>) at eval.c:2693:24 [opt]
    frame #24: 0x00000001001ce53c emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:814:14 [opt]
    frame #25: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #26: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #27: 0x00000001001ce400 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:816:14 [opt]
    frame #28: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #29: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #30: 0x000000010017e14a emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $586 = 0x00007ff8c06d0d58) at eval.c:3022:21 [opt]
    frame #31: 0x000000010017a777 emacs`Ffuncall_interactively(nargs=2, args=(struct Lisp_Symbol *) $597 = 0x00007ff8c06d0d58) at callint.c:250:32 [opt]
    frame #32: 0x000000010017e14a emacs`Ffuncall(nargs=3, args=(struct Lisp_Symbol *) $608 = 0x00007ff8c06d0d50) at eval.c:3022:21 [opt]
    frame #33: 0x000000010017bcd8 emacs`Fcall_interactively(function=(struct Lisp_Symbol *) $627 = 0x0000000175229860, record_flag=(struct Lisp_Symbol *) $648 = 0x00000001007d24b0, keys=(struct Lisp_Vector *) $657 = 0x00007f87f1164298) at callint.c:789:21 [opt]
    frame #34: 0x00000001001ce53c emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:814:14 [opt]
    frame #35: 0x0000000100183d60 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3194:9 [opt] [artificial]
    frame #36: 0x0000000100183583 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] [artificial]
    frame #37: 0x000000010017e14a emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $667 = 0x00007ff8c06d1210) at eval.c:3022:21 [opt]
    frame #38: 0x00000001000eba62 emacs`command_loop_1 at keyboard.c:1549:13 [opt]
    frame #39: 0x0000000100180956 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1323), handlers=(struct Lisp_Symbol *) $686 = 0x00000001007d2540, hfun=(emacs`cmd_error at keyboard.c:969)) at eval.c:1537:25 [opt]
    frame #40: 0x00000001000eb43e emacs`command_loop_2(handlers=(struct Lisp_Symbol *) $707 = 0x00000001007d2540) at keyboard.c:1167:11 [opt]
    frame #41: 0x000000010017ff80 emacs`internal_catch(tag=(struct Lisp_Symbol *) $728 = 0x00000001007e2020, func=(emacs`command_loop_2 at keyboard.c:1163), arg=(struct Lisp_Symbol *) $749 = 0x00000001007d2540) at eval.c:1217:25 [opt]
    frame #42: 0x00000001000eac44 emacs`command_loop at keyboard.c:1145:2 [opt]
    frame #43: 0x00000001000eaabb emacs`recursive_edit_1 at keyboard.c:753:9 [opt]
    frame #44: 0x00000001000eae38 emacs`Frecursive_edit at keyboard.c:836:3 [opt]
    frame #45: 0x00000001000e9991 emacs`main(argc=<unavailable>, argv=0x00007ff7bfeff3a0) at emacs.c:2624:3 [opt]
    frame #46: 0x00007ff81aebe386 dyld`start + 1942
  thread #2, name = 'gmain'
    frame #0: 0x00007ff81b21291e libsystem_kernel.dylib`__select + 10
    frame #1: 0x00000001012cc632 libglib-2.0.0.dylib`g_poll + 505
    frame #2: 0x00000001012bde80 libglib-2.0.0.dylib`g_main_context_iterate_unlocked + 299
    frame #3: 0x00000001012bdf31 libglib-2.0.0.dylib`g_main_context_iteration + 55
    frame #4: 0x00000001012bef22 libglib-2.0.0.dylib`glib_worker_main + 30
    frame #5: 0x00000001012e3739 libglib-2.0.0.dylib`g_thread_proxy + 66
    frame #6: 0x00007ff81b249202 libsystem_pthread.dylib`_pthread_start + 99
    frame #7: 0x00007ff81b244bab libsystem_pthread.dylib`thread_start + 15
  thread #5
    frame #0: 0x00007ff81b20e83a libsystem_kernel.dylib`__pselect + 10
    frame #1: 0x00007ff81b20e72f libsystem_kernel.dylib`pselect$DARWIN_EXTSN + 42
    frame #2: 0x00000001002291b2 emacs`-[EmacsApp fd_handler:](self=<unavailable>, _cmd=<unavailable>, unused=<unavailable>) at nsterm.m:6323:20 [opt]
    frame #3: 0x00007ff81c2b771c Foundation`__NSThread__start__ + 1013
    frame #4: 0x00007ff81b249202 libsystem_pthread.dylib`_pthread_start + 99
    frame #5: 0x00007ff81b244bab libsystem_pthread.dylib`thread_start + 15
  thread #7, name = 'com.apple.NSEventThread'
    frame #0: 0x00007ff81b209a2e libsystem_kernel.dylib`mach_msg2_trap + 10
    frame #1: 0x00007ff81b217e3a libsystem_kernel.dylib`mach_msg2_internal + 84
    frame #2: 0x00007ff81b210b62 libsystem_kernel.dylib`mach_msg_overwrite + 653
    frame #3: 0x00007ff81b209d1f libsystem_kernel.dylib`mach_msg + 19
    frame #4: 0x00007ff81b325135 CoreFoundation`__CFRunLoopServiceMachPort + 143
    frame #5: 0x00007ff81b323ba5 CoreFoundation`__CFRunLoopRun + 1371
    frame #6: 0x00007ff81b323082 CoreFoundation`CFRunLoopRunSpecific + 557
    frame #7: 0x00007ff81ea90aac AppKit`_NSEventThread + 122
    frame #8: 0x00007ff81b249202 libsystem_pthread.dylib`_pthread_start + 99
    frame #9: 0x00007ff81b244bab libsystem_pthread.dylib`thread_start + 15
  thread #28
    frame #0: 0x00007ff81b20b152 libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff81b245ca0 libsystem_pthread.dylib`_pthread_wqthread + 416
    frame #2: 0x00007ff81b244b97 libsystem_pthread.dylib`start_wqthread + 15
  thread #29
    frame #0: 0x00007ff81b244b88 libsystem_pthread.dylib`start_wqthread