Subject: 25.3; Emacs hang attempting erc-tls reconnect

From: Neil Okamoto <[email-masked]>
Date: Fri, 2 Feb 2018 09:09:01 -0800

Last night I opened an ERC connection to irc.gitter.im via
`erc-tls`. This was my first ever connection to gitter's IRC bridge at
irc.gitter.im, and also my first attempt using `erc-tls` versus `erc` to
connect to a remote server.

When done, I left the erc connection open and closed the laptop lid. In
the morning I opened the laptop lid and found Emacs hanging with the
dreaded beachball mouse pointer, and a message in the minibuffer stating
something like "reconnecting to irc.gitter.im:6697”, I don’t recall the exact
wording of the message.

I attached lldb and got a backtrace, see below.

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001008f7a2b libgnutls.30.dylib`_gnutls_handshake_io_recv_int + 250
    frame #1: 0x00000001008f8feb libgnutls.30.dylib`_gnutls_recv_handshake + 56
    frame #2: 0x00000001008fb2ce libgnutls.30.dylib`gnutls_handshake + 333
    frame #3: 0x000000010013fbff Emacs`emacs_gnutls_handshake + 100
    frame #4: 0x0000000100141414 Emacs`Fgnutls_boot + 1993
    frame #5: 0x0000000100103d02 Emacs`Ffuncall + 950
    frame #6: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #7: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #8: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #9: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #10: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #11: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #12: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #13: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #14: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #15: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #16: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #17: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #18: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #19: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #20: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #21: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #22: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #23: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #24: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #25: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #26: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #27: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #28: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #29: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #30: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #31: 0x000000010010387f Emacs`Fapply + 573
    frame #32: 0x0000000100103c84 Emacs`Ffuncall + 824
    frame #33: 0x0000000100133829 Emacs`exec_byte_code + 2027
    frame #34: 0x00000001001046fd Emacs`funcall_lambda + 732
    frame #35: 0x0000000100103bcf Emacs`Ffuncall + 643
    frame #36: 0x0000000100104156 Emacs`call1 + 46
    frame #37: 0x00000001000a504f Emacs`timer_check + 789
    frame #38: 0x00000001000a3dbb Emacs`readable_events + 18
    frame #39: 0x00000001000a4d2c Emacs`get_input_pending + 113
    frame #40: 0x00000001000a3be6 Emacs`detect_input_pending_run_timers + 50
    frame #41: 0x000000010013bde0 Emacs`wait_reading_process_output + 3293
    frame #42: 0x00000001000a2a78 Emacs`read_char + 7223
    frame #43: 0x000000010009f4d1 Emacs`read_key_sequence + 1402
    frame #44: 0x000000010009e12d Emacs`command_loop_1 + 742
    frame #45: 0x0000000100102924 Emacs`internal_condition_case + 70
    frame #46: 0x00000001000aa37c Emacs`command_loop_2 + 37
    frame #47: 0x0000000100102510 Emacs`internal_catch + 54
    frame #48: 0x000000010009d751 Emacs`command_loop + 156
    frame #49: 0x000000010009d673 Emacs`recursive_edit_1 + 113
    frame #50: 0x000000010009d888 Emacs`Frecursive_edit + 219
    frame #51: 0x000000010009c903 Emacs`main + 5110
    frame #52: 0x00007fff68a38115 libdyld.dylib`start + 1
    frame #53: 0x00007fff68a38115 libdyld.dylib`start + 1
(lldb) 

In GNU Emacs 25.3.1 (x86_64-apple-darwin17.3.0, NS appkit-1561.20 Version 10.13.2 (Build 17C88))
of 2018-01-02 built on Neils-MBP.attlocal.net
Windowing system distributor 'Apple', version 10.3.1561
Configured using:
'configure --disable-dependency-tracking --disable-silent-rules
--enable-locallisppath=/usr/local/share/emacs/site-lisp
--infodir=/usr/local/Cellar/emacs/25.3/share/info/emacs
--prefix=/usr/local/Cellar/emacs/25.3 --without-x --with-xml2
--without-dbus --with-gnutls --with-imagemagick --with-ns
--disable-ns-self-contained'

Configured features:
JPEG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  paredit-mode: t
  rainbow-delimiters-mode: t
  display-time-mode: t
  winner-mode: t
  global-hl-line-mode: t
  which-key-mode: t
  docker-global-mode: t
  docker-mode: t
  dimmer-mode: t
  override-global-mode: t
  show-paren-mode: t
  save-place-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Loading /Users/neilo/.emacs.d/lisp/neo-dev-lisp.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-games.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-messaging.el (source)...
Loading /Users/neilo/.emacs.d/.erc-auth...done
Loading /Users/neilo/.emacs.d/lisp/neo-messaging.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-navigation.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-org.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-shell.el (source)...done
Loading /Users/neilo/.emacs.d/lisp/neo-ux.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/Users/neilo/.emacs.d/elpa/magit-2.11.0/magit-popup hides /Users/neilo/.emacs.d/elpa/magit-popup-20180119.111/magit-popup
/Users/neilo/.emacs.d/elpa/seq-2.20/seq hides /usr/local/Cellar/emacs/25.3/share/emacs/25.3/lisp/emacs-lisp/seq

Features:
(shadow sort mail-extr emacsbug message format-spec rfc822 mml mml-sec
epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils
colir counsel dired compile comint ansi-color esh-util etags xref
project swiper ivy delsel ivy-overlay ffap thingatpt url-parse
auth-source eieio eieio-core gnus-util mm-util help-fns mail-prsvr
password-cache url-vars paredit rainbow-delimiters time smart-mode-line
rich-minority winner ring hl-line which-key advice zenburn-theme
clojure-mode align imenu docker better-defaults dimmer subr-x face-remap
color cl-macs cl-seq diminish use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core finder-inf paren edmacro kmacro saveplace
ido rx info package epg-config seq byte-opt gv bytecomp byte-compile
cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame
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 charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
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 kqueue cocoa ns
multi-tty make-network-process emacs)

Memory information:
((conses 16 388793 13057)
(symbols 48 31823 0)
(miscs 40 86 231)
(strings 32 68125 10987)
(string-bytes 1 2003268)
(vectors 16 48840)
(vector-slots 8 857158 7209)
(floats 8 512 302)
(intervals 56 249 29)
(buffers 976 17))