Subject: bug#54087: 28.0.91; rcirc: irc.gnome reg timeout; reconnects after quit

From: Ken Raeburn <[email-masked]>
Date: Tue, 22 Feb 2022 03:44:42 -0500

Turns out the timeout from irc.gnome.org had nothing to do with 
switching to the alternate name "raeburn`" ... I tried emacs-28.0.91 on 
my main work laptop without any other IRC sessions going, and it still 
got timeouts from irc.gnome.org, just without the nickname-in-use error 
first this time.

Also, this time I tried connecting to an internal company IRC server, 
and hit two problems:

1) First, I forgot to bring up my VPN, so internal DNS was unavailable 
and the server name couldn't be resolved. All that was reported in the 
IRC server buffer was that the connection failed, no reason given.

2) After I got the VPN up, it could connect, but the server kept closing 
the connection. Running it with the debug flag set:

[2022-02-22T01:36:25 $irchost] SENTINEL: #<process $irchost> "open
"
[2022-02-22T01:36:25 $irchost] CAP REQ :message-tags
[2022-02-22T01:36:25 $irchost] CAP REQ :server-time
[2022-02-22T01:36:25 $irchost] CAP REQ :batch
[2022-02-22T01:36:25 $irchost] CAP REQ :message-ids
[2022-02-22T01:36:25 $irchost] CAP REQ :invite-notify
[2022-02-22T01:36:25 $irchost] CAP REQ :sasl
[2022-02-22T01:36:25 $irchost] CAP REQ :multi-prefix
[2022-02-22T01:36:25 $irchost] CAP REQ :standard-replies
[2022-02-22T01:36:25 $irchost] NICK raeburn
[2022-02-22T01:36:25 $irchost] USER user 0 * :unknown
[2022-02-22T01:36:25 $irchost] NOTICE AUTH :*** Processing connection to 
$irchost
[2022-02-22T01:36:25 $irchost] NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Couldn't look up your hostname
[2022-02-22T01:37:02 $irchost] SENTINEL: #<process $irchost> "connection 
broken by remote peer
"
[2022-02-22T01:37:02 $irchost] SENTINEL: #<process $irchost> "open
"
[2022-02-22T01:37:02 $irchost] CAP REQ :message-tags
[2022-02-22T01:37:02 $irchost] CAP REQ :server-time
[2022-02-22T01:37:02 $irchost] CAP REQ :batch
[2022-02-22T01:37:02 $irchost] CAP REQ :message-ids
[2022-02-22T01:37:02 $irchost] CAP REQ :invite-notify
[2022-02-22T01:37:02 $irchost] CAP REQ :sasl
[2022-02-22T01:37:02 $irchost] CAP REQ :multi-prefix
[2022-02-22T01:37:02 $irchost] CAP REQ :standard-replies
[2022-02-22T01:37:02 $irchost] NICK raeburn
[2022-02-22T01:37:02 $irchost] USER user 0 * :unknown
[2022-02-22T01:37:09 $irchost] SENTINEL: #<process $irchost> "connection 
broken by remote peer
"

[2022-02-22T01:37:57 $irchost] SENTINEL: #<process $irchost> "open
"
[2022-02-22T01:37:57 $irchost] CAP REQ :message-tags
[2022-02-22T01:37:57 $irchost] CAP REQ :server-time
[2022-02-22T01:37:57 $irchost] CAP REQ :batch
[2022-02-22T01:37:57 $irchost] CAP REQ :message-ids
[2022-02-22T01:37:57 $irchost] CAP REQ :invite-notify
[2022-02-22T01:37:57 $irchost] CAP REQ :sasl
[2022-02-22T01:37:57 $irchost] CAP REQ :multi-prefix
[2022-02-22T01:37:57 $irchost] CAP REQ :standard-replies
[2022-02-22T01:37:57 $irchost] NICK raeburn
[2022-02-22T01:37:57 $irchost] USER user 0 * :unknown
[2022-02-22T01:37:57 $irchost] NOTICE AUTH :*** Processing connection to 
$irchost
[2022-02-22T01:37:57 $irchost] NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Couldn't look up your hostname
[2022-02-22T01:37:57 $irchost] NOTICE AUTH :*** No Ident response
:$irchost CAP * NAK :message-tags
:$irchost CAP * NAK :server-time
:$irchost CAP * NAK :batch
:$irchost CAP * NAK :message-ids
:$irchost CAP * NAK :invite-notify
[2022-02-22T01:37:58 $irchost] :$irchost CAP * NAK :sasl
[2022-02-22T01:37:59 $irchost] :$irchost CAP * ACK :multi-prefix
[2022-02-22T01:38:00 $irchost] :$irchost CAP * NAK :standard-replies
[2022-02-22T01:38:53 $irchost] ERROR :Closing Link: 10.22.16.11 
(Connection timed out)
[2022-02-22T01:38:53 $irchost] SENTINEL: #<process $irchost> "connection 
broken by remote peer
"

Since using this IRC server is pretty important for work, this made 
emacs-28 a non-starter for the moment; I switched back to emacs-27 and 
connected with debugging on, and it connected right away:

[2022-02-22T02:57:54 $irchost] NICK raeburn
[2022-02-22T02:57:54 $irchost] USER user 0 * :unknown
[2022-02-22T02:57:54 $irchost] NOTICE AUTH :*** Processing connection to 
$irchost
[2022-02-22T02:57:54 $irchost] NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Couldn't look up your hostname
[2022-02-22T02:57:54 $irchost] NOTICE AUTH :*** No Ident response
:$irchost 001 raeburn :Welcome to the RHAT Internet Relay Chat Network 
raeburn

All I see that's different is the CAP requests, but ... ah, no "CAP END" 
has gotten sent for some reason, and apparently that's required before 
registration can complete on a server that understands capabilities. In 
the gnome log I sent earlier, it looks like all the requested 
capabilities were responded to, but still no "CAP END" was logged. Here, 
with my company server (running "ircd-ratbox-2.2.8") it seems to simply 
drop the connection quickly sometimes, and sometimes respond to the 
capabilities messages and then eventually time out.

Ken