Subject: Re: bug#28176: 26.0.50; Emacs hangs on entering a specific article in gnus

From: Sam Steingold <[email-masked]>
Date: Wed, 23 Aug 2017 13:03:12 -0400

> * Eli Zaretskii <[email-masked]> [2017-08-23 05:27:03 +0300]:
>
> if you succeed to hit a breakpoint in Fsignal and we then succeed to
> understand which code signals an error and what error, we may be on
> our way to solve the problem.

I set the breakpoints using

--8<---------------cut here---------------start------------->8---
(lldb) break set -b Fsignal
Breakpoint 1: where = emacs`Fsignal + 4 at eval.c:1505, address = 0x00000001001370a4
(lldb) break set -b xsignal
Breakpoint 2: where = emacs`xsignal + 4 at lisp.h:3829, address = 0x00000001000b5f54
(lldb) run -Q
--8<---------------cut here---------------end--------------->8---

and got several hits (in require) before I even got the *Scratch* frame.
Then I got a gazillion hits on M-x gnus, so I disabled the breakpoint
and re-enabled it after viewing several articles but before viewing the
bad one (so that everything autoloaded would be loaded before the
error).

here is the backtrace:

--8<---------------cut here---------------start------------->8---
lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001001370a4 emacs`Fsignal(error_symbol=50880, data=4318505459) at eval.c:1505 [opt]
    frame #1: 0x00000001000b5f59 emacs`xsignal(error_symbol=<unavailable>, data=<unavailable>) at lisp.h:3829 [opt]
    frame #2: 0x000000010013561c emacs`xsignal1(error_symbol=<unavailable>, arg=<unavailable>) at eval.c:1639 [opt]
    frame #3: 0x000000010012055a emacs`Fdefault_value(symbol=<unavailable>) at data.c:1645 [opt]
    frame #4: 0x00000001001355e0 emacs`Fdefault_toplevel_value(symbol=10290416) at eval.c:678 [opt]
    frame #5: 0x0000000100139134 emacs`funcall_subr(subr=0x000000010058f200, numargs=1, args=<unavailable>) at eval.c:2832 [opt]
    frame #6: 0x0000000100138630 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2757 [opt]
    frame #7: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #8: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbf9900) at eval.c:3040 [opt]
    frame #9: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #10: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #11: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbf9bd0) at eval.c:3040 [opt]
    frame #12: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #13: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #14: 0x0000000100134d2e emacs`eval_sub(form=<unavailable>) at eval.c:2228 [opt]
    frame #15: 0x000000010015b7c5 emacs`readevalloop(readcharfun=24096, infile0=0x00007fff5fbf9f30, sourcename=4529157700, printflag=<unavailable>, unibyte=<unavailable>, readfun=0, start=<unavailable>, end=0) at lread.c:2038 [opt]
    frame #16: 0x0000000100159f60 emacs`Fload(file=<unavailable>, noerror=<unavailable>, nomessage=45456, nosuffix=<unavailable>, must_suffix=4529147476) at lread.c:1432 [opt]
    frame #17: 0x0000000100142f28 emacs`Frequire(feature=237581408, filename=<unavailable>, noerror=<unavailable>) at fns.c:2805 [opt]
    frame #18: 0x0000000100139158 emacs`funcall_subr(subr=0x0000000100590bb0, numargs=1, args=<unavailable>) at eval.c:2837 [opt]
    frame #19: 0x0000000100138630 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2757 [opt]
    frame #20: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #21: 0x0000000100134d2e emacs`eval_sub(form=<unavailable>) at eval.c:2228 [opt]
    frame #22: 0x000000010015b7c5 emacs`readevalloop(readcharfun=24096, infile0=0x00007fff5fbfa4e0, sourcename=4529146436, printflag=<unavailable>, unibyte=<unavailable>, readfun=0, start=<unavailable>, end=0) at lread.c:2038 [opt]
    frame #23: 0x0000000100159f60 emacs`Fload(file=<unavailable>, noerror=<unavailable>, nomessage=45456, nosuffix=<unavailable>, must_suffix=4529139156) at lread.c:1432 [opt]
    frame #24: 0x0000000100142f28 emacs`Frequire(feature=49488, filename=<unavailable>, noerror=<unavailable>) at fns.c:2805 [opt]
    frame #25: 0x0000000100139158 emacs`funcall_subr(subr=0x0000000100590bb0, numargs=1, args=<unavailable>) at eval.c:2837 [opt]
    frame #26: 0x0000000100138630 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2757 [opt]
    frame #27: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #28: 0x0000000100134d2e emacs`eval_sub(form=<unavailable>) at eval.c:2228 [opt]
    frame #29: 0x000000010015b7c5 emacs`readevalloop(readcharfun=24096, infile0=0x00007fff5fbfaa90, sourcename=4529044932, printflag=<unavailable>, unibyte=<unavailable>, readfun=0, start=<unavailable>, end=0) at lread.c:2038 [opt]
    frame #30: 0x0000000100159f60 emacs`Fload(file=<unavailable>, noerror=<unavailable>, nomessage=45456, nosuffix=<unavailable>, must_suffix=4523217236) at lread.c:1432 [opt]
    frame #31: 0x00000001001364b5 emacs`Fautoload_do_load(fundef=4297879971, funname=<unavailable>, macro_only=0) at eval.c:2010 [opt]
    frame #32: 0x00000001001384e8 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2774 [opt]
    frame #33: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=2054, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #34: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #35: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #36: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #37: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #38: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #39: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #40: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #41: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #42: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #43: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #44: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #45: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #46: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #47: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #48: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #49: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #50: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #51: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #52: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #53: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=1030, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #54: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #55: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #56: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfc930) at eval.c:3040 [opt]
    frame #57: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #58: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #59: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfcb20) at eval.c:3040 [opt]
    frame #60: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #61: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #62: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfcd00) at eval.c:3040 [opt]
    frame #63: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #64: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #65: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfd010) at eval.c:3040 [opt]
    frame #66: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #67: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #68: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfd480) at eval.c:3040 [opt]
    frame #69: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #70: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #71: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfd6d0) at eval.c:3040 [opt]
    frame #72: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #73: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #74: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfd9b0) at eval.c:3040 [opt]
    frame #75: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #76: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #77: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfdba0) at eval.c:3040 [opt]
    frame #78: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #79: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #80: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfdee0) at eval.c:3040 [opt]
    frame #81: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #82: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #83: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfe120) at eval.c:3040 [opt]
    frame #84: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #85: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #86: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfe3a0) at eval.c:3040 [opt]
    frame #87: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #88: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=0, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #89: 0x0000000100139611 emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=0x00007fff5fbfe630) at eval.c:3040 [opt]
    frame #90: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #91: 0x0000000100131f76 emacs`Ffuncall_interactively(nargs=<unavailable>, args=<unavailable>) at callint.c:252 [opt]
    frame #92: 0x0000000100138630 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2757 [opt]
    frame #93: 0x0000000100133559 emacs`Fcall_interactively(function=<unavailable>, record_flag=0, keys=<unavailable>) at callint.c:844 [opt]
    frame #94: 0x0000000100139158 emacs`funcall_subr(subr=0x000000010058ef90, numargs=3, args=<unavailable>) at eval.c:2837 [opt]
    frame #95: 0x0000000100138630 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2757 [opt]
    frame #96: 0x000000010017563a emacs`exec_byte_code(bytestr=<unavailable>, vector=<unavailable>, maxdepth=<unavailable>, args_template=4102, nargs=<unavailable>, args=<unavailable>) at bytecode.c:629 [opt]
    frame #97: 0x00000001001385d1 emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:2759 [opt]
    frame #98: 0x0000000100138d4c emacs`call1(fn=<unavailable>, arg1=<unavailable>) at eval.c:2608 [opt]
    frame #99: 0x00000001000bbe99 emacs`command_loop_1 at keyboard.c:1486 [opt]
    frame #100: 0x0000000100136e12 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1263), handlers=<unavailable>, hfun=(emacs`cmd_error at keyboard.c:942)) at eval.c:1323 [opt]
    frame #101: 0x00000001000ca800 emacs`command_loop_2(ignore=<unavailable>) at keyboard.c:1114 [opt]
    frame #102: 0x00000001001366b9 emacs`internal_catch(tag=<unavailable>, func=(emacs`command_loop_2 at keyboard.c:1110), arg=0) at eval.c:1088 [opt]
    frame #103: 0x00000001000bae5e emacs`command_loop at keyboard.c:1093 [opt]
    frame #104: 0x00000001000bad6f emacs`recursive_edit_1 at keyboard.c:699 [opt]
    frame #105: 0x00000001000bafa3 emacs`Frecursive_edit at keyboard.c:770 [opt]
    frame #106: 0x00000001000b9bb7 emacs`main(argc=0, argv=<unavailable>) at emacs.c:1706 [opt]
    frame #107: 0x00007fffae679235 libdyld.dylib`start + 1
    frame #108: 0x00007fffae679235 libdyld.dylib`start + 1
(lldb) 
--8<---------------cut here---------------end--------------->8---

note that require is _still_ present, but it is probably the actual
suspect - feature 237581408.

I have no idea what to do next.

Thanks.

-- 
Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1504
http://steingoldpsychology.com http://www.childpsy.net http://camera.org
http://jij.org http://thereligionofpeace.com http://americancensorship.org
Time would have been the best Teacher, if it did not kill all its students.