Subject: 28.0.91; rcirc: irc.gnome reg timeout; reconnects after /quit

From: Ken Raeburn <[email-masked]>
Date: Mon, 21 Feb 2022 06:12:11 -0500

I'm running emacs 28.0.91 as packaged for Fedora 34 by bhavin192, in a
recently created F34 virtual machine, so a fairly fresh environment. The
.emacs file settings are slightly customized:

 '(rcirc-reconnect-delay 10)
 '(rcirc-server-alist
   '(("irc.libera.chat" :nick "raeburn" :port 6697 :password <ELIDED> :channels
      ("#emacs" "#rcirc")
      :encryption tls)
     ("irc.gnome.org" :nick "raeburn" :channels
      ("#gnucash"))))
 '(rcirc-time-format "%FT%T ")

1) Since I was already signed onto irc.gnome.org from elsewhere, my
login as "raeburn" was rejected, and it always timed out trying to
register as "raeburn`":

    09:52 -irc2.acc.umu.se- *** Looking up your hostname...
    09:52 -irc2.acc.umu.se- *** Found your hostname (cached)
    09:52 *** irc2.acc.umu.se 433 raeburn Nickname is already in use.
    09:52 !!! Closing Link: raeburn`[24.60.138.149] (Registration
              Timeout)

(This was before I changed the time format.) This happened over and over
(not stopping at 3 tries, which is the value of
rcirc-reconnect-attempts), with multiple server hosts. Typing "/quit" in
the server buffer does get it to stop, *if* done after "Nickname is
already in use".

It's unclear to me from reading wiki.gnome.org whether irc.gnome.org
requires or merely recommends pre-registering IRC nicknames; I see
people on with "1" or "_" or "_afk" suffixes on their names so I suspect
it's not required. So I don't know what would be leading to the timeout.

The debug log recorded this:

    [2022-02-21T10:53:10 irc.gnome.org] SENTINEL: #<process irc.gnome.org> "open
    "
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :message-tags
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :server-time
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :batch
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :message-ids
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :invite-notify
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :sasl
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :multi-prefix
    [2022-02-21T10:53:10 irc.gnome.org] CAP REQ :standard-replies
    [2022-02-21T10:53:10 irc.gnome.org] NICK raeburn
    [2022-02-21T10:53:10 irc.gnome.org] USER user 0 * :unknown
    [2022-02-21T10:53:10 irc.gnome.org] :irc4.acc.umu.se NOTICE * :*** Looking up your hostname...
    [2022-02-21T10:53:10 irc.gnome.org] :irc4.acc.umu.se NOTICE * :*** Found your hostname
    [2022-02-21T10:53:12 irc.gnome.org] :irc4.acc.umu.se CAP * ACK :message-tags 
    :irc4.acc.umu.se CAP * ACK :server-time 
    :irc4.acc.umu.se CAP * ACK :batch 
    :irc4.acc.umu.se CAP * NAK :message-ids
    :irc4.acc.umu.se CAP * NAK :invite-notify
    :irc4.acc.umu.se CAP * ACK :sasl 
    :irc4.acc.umu.se CAP * ACK :multi-prefix 
    :irc4.acc.umu.se CAP * NAK :standard-replies
    :irc4.acc.umu.se 433 * raeburn :Nickname is already in use.
    [2022-02-21T10:53:12 irc.gnome.org] NICK raeburn`
    [2022-02-21T10:53:12 irc.gnome.org] PING :93915F19
    [2022-02-21T10:53:12 irc.gnome.org] PONG :93915F19
    [2022-02-21T10:53:41 irc.gnome.org] ERROR :Closing Link: raeburn`[<<IP>>] (Registration Timeout)
    [2022-02-21T10:53:41 irc.gnome.org] SENTINEL: #<process irc.gnome.org> "connection broken by remote peer
    "
    [2022-02-21T10:53:42 irc.gnome.org] SENTINEL: #<process irc.gnome.org> "open
    "

2) I got signed into irc.libera.chat as "raeburn`", but if I type
"/quit" in the #emacs buffer, it disconnects me ... and then reconnects
me. Same with typing "/quit" in *irc.libera.chat*. Reconnecting
automatically when disconnected on a network error is great, but being
unable to disconnect and stay that way when I want to is taking it a
little far, I think. :-)

    2022-02-21T09:57:19 /quit
    2022-02-21T09:57:20 *** raeburn` QUIT Client Quit
    2022-02-21T09:57:20 !!! Closing Link: c-24-60-138-149.hsd1.ma.comcast.net
                            (Client Quit)
    2022-02-21T09:57:31 *** zinc.libera.chat 433 raeburn Nickname is already in use.
    2022-02-21T09:57:34 *** zinc.libera.chat 001 Welcome to the Libera.Chat Internet Relay Chat
                                                 Network raeburn`

In GNU Emacs 28.0.91 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.30, cairo version 1.17.4)
 of 2022-01-11 built on c817772a5dc24b448259fd330c6e2d67
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: Fedora 34 (Cloud Edition)

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules --with-harfbuzz
 --with-cairo --with-json --with-native-compilation
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2 -flto=auto -ffat-lto-objects
 -fexceptions -g -grecord-gcc-switches -pipe -Wall
 -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: rcirc

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  use-hard-newlines: 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
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired dired-loaddefs rfc822 mml
mml-sec epa derived epg rfc6068 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 thread backtrace novice
apropos mule-util cl-extra help-mode disp-table gnutls network-stream
puny nsm rmc misearch multi-isearch cus-edit pp cus-start cus-load
wid-edit rcirc parse-time iso8601 auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json map seq byte-opt gv bytecomp
byte-compile cconv time-date subr-x ring thingatpt cl-loaddefs cl-lib
find-func iso-transl tooltip eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-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 emoji-zwj 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 xwidget-internal dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 166417 5901)
 (symbols 48 9322 0)
 (strings 32 28619 1978)
 (string-bytes 1 926876)
 (vectors 16 19201)
 (vector-slots 8 375586 10944)
 (floats 8 42 110)
 (intervals 56 5139 338)
 (buffers 992 23))