GNU bug report logs - #54214
28.0.91; rcirc failed to report disconnection

Previous Next

Package: emacs;

Reported by: Ken Raeburn <raeburn <at> redhat.com>

Date: Tue, 1 Mar 2022 18:04:02 UTC

Severity: normal

Found in version 28.0.91

To reply to this bug, email your comments to 54214 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#54214; Package emacs. (Tue, 01 Mar 2022 18:04:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ken Raeburn <raeburn <at> redhat.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 01 Mar 2022 18:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ken Raeburn <raeburn <at> redhat.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.91; rcirc failed to report disconnection
Date: Tue, 01 Mar 2022 13:02:46 -0500
I had a VPN connection go down, over which I had been running one of
three IRC sessions. The rcirc buffers for the channels on that server,
the server buffer, and the *Messages* buffer, gave no indication at all
that there was a problem. No disconnected status in the mode line, no
status messages logged, no reported attempts to reconnect. I only
noticed it when failing to ssh to another host.

Before reconnecting, I did check “M-x list-processes”, and the server
connection for the third IRC server was not present, indicating that
Emacs recognized the TCP connection was gone. After I brought the VPN
back up, “/reconnect” brought the connection back up.


In GNU Emacs 28.0.91 (build 1, x86_64-redhat-linux-gnu, X toolkit, cairo version 1.17.4, Xaw3d scroll bars)
 of 2022-01-11 built on 7efb8fbccc97436880211dbad44871a1
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Fedora Linux 35 (Workstation 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=lucid
 --with-gpm=no --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 XAW3D XDBE XIM XPM LUCID ZLIB

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

Major mode: Perl

Minor modes in effect:
  rcirc-track-minor-mode: t
  display-time-mode: t
  desktop-save-mode: t
  global-edit-server-edit-mode: t
  which-function-mode: t
  icomplete-mode: t
  shell-dirtrack-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-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:
/home/raeburn/elisp/with-editor hides /home/raeburn/.emacs.d/elpa/with-editor-20211028.2105/with-editor
/home/raeburn/.emacs.d/elpa/systemtap-mode-20151122.1940/systemtap-mode hides /usr/share/emacs/site-lisp/systemtap-mode
/home/raeburn/.emacs.d/elpa/p4-20150721.1937/p4 hides /usr/share/emacs/site-lisp/perforce/p4
/home/raeburn/.emacs.d/elpa/transient-20211101.2251/transient hides /usr/share/emacs/28.0.91/lisp/transient

Features:
(shadow emacsbug tramp-cmds cl-print ielm mailalias smtpmail sendmail
mail-extr cal-move sort url-cache url-http url-gw url-auth cperl-mode
with-editor grep vc-hg vc-bzr ispell cus-edit pp cus-start misearch
multi-isearch gnutls network-stream nsm add-log reveal perl-mode
face-remap dired-aux python tramp-sh yaml-mode mule-util dockerfile-mode
mhtml-mode css-mode color js sgml-mode facemenu ruby-mode sh-script smie
executable texinfo texinfo-loaddefs bug-reference rst compile
org-element avl-tree generator ol-eww eww xdg url-queue thingatpt mm-url
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt
speedbar ezimage dframe ol-docview doc-view image-mode exif ol-bibtex
ol-bbdb ol-w3m ol-doi org-link-doi vc-git diff-mode vc-dispatcher
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs view jka-compr ob-shell comp comp-cstr warnings cl-extra
help-mode rcirc gnus-art mm-uu mml2015 mm-view mml-smime smime dig
gnus-sum shr kinsoku svg dom gnus-group gnus-undo gnus-start gnus-dbus
dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec
gnus-int gnus-range message rmc puny dired dired-loaddefs rfc822 mml
mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
text-property-search mail-utils mm-util mail-prsvr wid-edit time desktop
frameset cus-load kr-init docker-tramp tramp-cache vagrant-tramp dash
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
parse-time ls-lisp org-protocol org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-table oc-basic bibtex iso8601 time-date ol org-keys
oc org-compat org-macs org-loaddefs format-spec find-func cal-menu
calendar cal-loaddefs edit-server advice smart-quotes easy-mmode
which-func imenu icomplete server term disp-table shell pcomplete ehelp
comint ansi-color ring hi-lock finder-inf rx info package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
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 dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
x-toolkit x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 5075837 282334)
 (symbols 48 33785 6)
 (strings 32 224945 40322)
 (string-bytes 1 6976352)
 (vectors 16 78365)
 (vector-slots 8 2144723 316596)
 (floats 8 503 386)
 (intervals 56 367707 3813)
 (buffers 992 177))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#54214; Package emacs. (Tue, 15 Mar 2022 20:25:01 GMT) Full text and rfc822 format available.

Message #8 received at 54214 <at> debbugs.gnu.org (full text, mbox):

From: Ken Raeburn <raeburn <at> redhat.com>
To: help-debbugs <at> gnu.org (GNU bug Tracking System)
Cc: 54214 <at> debbugs.gnu.org
Subject: Re: 28.0.91; rcirc failed to report disconnection
Date: Tue, 15 Mar 2022 16:24:49 -0400
Some more observations:

I’ve had some more disconnections with no indications in the server or
channel buffers or mode lines that I was now disconnected.  (I’ve got
automatic reconnection disabled currently.)

I am using around-advice on the sentinel function to temporarily enable
debugging, so I do get the reason for the sentinel call logged, at
least.  Sometimes it’s “deleted”, sometimes it’s “connection broken by
remote peer”.

As a workaround, I can figure out using C-c C-n what state I’m in.  If
it fails with an error, I’m disconnected; if it returns no names, not
even my own, I’m connected but haven’t rejoined the current channel.  If
I get a list of names, things are okay.  But I have to think to check
explicitly.

I’ve tried using “/reconnect” in the server buffer and in the channel
buffer.  At least sometimes, if I use it in the channel buffer, the
status messages during session establishment go to the channel buffer
instead of the server buffer.  And it seems sort of haphazard whether I
automatically rejoin the various channels or not.

It occurred to me that I should try to see if there’s a correlation
between authentication strategy at session establishment and automatic
channel rejoining, but I haven’t recorded enough of the right info yet.

BTW, regarding authentication strategies, it would help if it were
documented (better?) when I should use a :password entry in
rcirc-server-alist, and when I should use rcirc-authinfo.  Better still,
I’d like it if .authinfo (or .authinfo.pgp, or some other method
intended for private storage) could be used to store the password
instead, regardless of the authentication strategy, instead of requiring
me to keep (parts of) my .emacs file private.

Ken





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#54214; Package emacs. (Wed, 20 Apr 2022 15:00:02 GMT) Full text and rfc822 format available.

Message #11 received at 54214 <at> debbugs.gnu.org (full text, mbox):

From: Philip Kaludercic <philipk <at> posteo.net>
To: Ken Raeburn <raeburn <at> redhat.com>
Cc: 54214 <at> debbugs.gnu.org
Subject: Re: bug#54214: 28.0.91; rcirc failed to report disconnection
Date: Wed, 20 Apr 2022 14:59:00 +0000
Ken Raeburn <raeburn <at> redhat.com> writes:

> I had a VPN connection go down, over which I had been running one of
> three IRC sessions. The rcirc buffers for the channels on that server,
> the server buffer, and the *Messages* buffer, gave no indication at all
> that there was a problem. No disconnected status in the mode line, no
> status messages logged, no reported attempts to reconnect. I only
> noticed it when failing to ssh to another host.
>
> Before reconnecting, I did check “M-x list-processes”, and the server
> connection for the third IRC server was not present, indicating that
> Emacs recognized the TCP connection was gone. After I brought the VPN
> back up, “/reconnect” brought the connection back up.

Could you check if this issue still persists after the commit
37bccf19caa6ad245bb4c8adacfb1a1d203d1d2d?  The approach is to take
advantage of the keepalive messages and attempt a reconnect if these
fail.  This seems to have improved the connection quality on my systems.

-- 
	Philip Kaludercic




This bug report was last modified 1 year and 364 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.