Subject: 24.0.91; rcirc autojoin broken (freenode/oftc) when rcirc-authenticate-before-join is set

From: [email-masked] (Trent W. Buck)
Date: Wed, 30 Nov 2011 11:50:08 +1100

When doing emacs -f irc or M-x irc, Emacs would connect to all three
servers, but not autojoin channels in Freenode with this setting:

    (setq rcirc-server-alist
          `(("irc.freenode.net" :channels ("##workingset"
                                           "#collectd"
                                           "#emacs"
                                           "#lxcontainers"
                                           "#netfilter"
                                           "#paredit"
                                           "#screen"
                                           "#ubuntu-hardened"
                                           "#ubuntu-server"))
            ("irc.oftc.net" :channels ("#debian-au"
                                       "#debian-derivatives"
                                       "#debian-eeepc"
                                       "#debian-haskell"
                                       "#debian-mentors"
                                       "#debian-next"))
            ("irc.cyber.com.au" :channels ("#cyber"))))

I tried moving freenode to be the last of the three; the result was that
only #cyber was joined.

As a random guess, I tried (setq rcirc-authenticate-before-join nil) --
this fixed the problem.

I speculate there is an issue with this new feature when >1 server is in
the server alist.  I could reproduce this behaviour reliably with a
dozen or so attempts under emacs-snapshot; I never had this behaviour
under 23 (which predates authenticate-before-join).

I also had this problem several months ago with the emacs-snapshot that
was current then; I didn't bother to investigate at the time -- it was
easier to just switch back to 23.

irc.cyber.com.au is an internal (private) office IRC server; running
ircd-irc2 2.11.2p1+dfsg-2 on Ubuntu 10.04 (Lucid).

A complete (but slightly older) copy of my emacs configuration can be
found at http://cyber.com.au/~twb/.emacs and
http://cyber.com.au/~twb/.rcirc.el.

In GNU Emacs 24.0.91.1 (x86_64-pc-linux-gnu)
 of 2011-11-04 on zelenka, modified by Debian
 (emacs-snapshot package, version 1:20111104-1)
configured using `configure  '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.91/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.91/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/x86_64-linux-gnu/' '--with-x=no' '--without-dbus' '--without-sound' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  xterm-mouse-mode: t
  ido-everywhere: t
  savehist-mode: t
  icomplete-mode: t
  show-paren-mode: t
  delete-selection-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-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 input:
ESC x r e p o r t SPC e m a c s SPC b u f DEL g RE
T

Recent messages:
Loading /etc/emacs/site-start.d/50emacs-goodies-el.el (source)...done
Loading /etc/emacs/site-start.d/50ledger.el (source)...done
Loading /etc/emacs/site-start.d/50magit.el (source)...done
Loading /etc/emacs/site-start.d/50paredit-el.el (source)...done
Loading /etc/emacs/site-start.d/50psvn.el (source)...done
Loading /etc/emacs/site-start.d/50puppet-el.el (source)...done
Loading /etc/emacs/site-start.d/50w3m-el-snapshot.el (source)...done
Loading /etc/emacs/site-start.d/51debian-el.el (source)...done
Loading term/xterm...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/home/twb/.emacs.d/lisp/magit/magit-svn hides /usr/share/emacs/24.0.91/site-lisp/magit/magit-svn
/home/twb/.emacs.d/lisp/magit/magit-key-mode hides /usr/share/emacs/24.0.91/site-lisp/magit/magit-key-mode
/home/twb/.emacs.d/lisp/magit/magit hides /usr/share/emacs/24.0.91/site-lisp/magit/magit
/home/twb/.emacs.d/lisp/magit/magit-topgit hides /usr/share/emacs/24.0.91/site-lisp/magit/magit-topgit
/usr/share/emacs/24.0.91/site-lisp/puppet-el/puppet-mode hides /usr/share/emacs/site-lisp/puppet-mode
/usr/share/emacs/24.0.91/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/home/twb/.emacs.d/lisp/gnus/.dir-locals hides /usr/share/emacs/24.0.91/lisp/gnus/.dir-locals

Features:
(shadow sort gnus-util mail-extr message format-spec rfc822 mml easymenu
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader
emacsbug jka-compr edmacro kmacro xt-mouse ido savehist icomplete
time-date paren delsel saveplace debian-el debian-el-loaddefs w3m-load
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
dpkg-dev-el dpkg-dev-el-loaddefs ediff-hook vc-hooks lisp-float-type
lisp-mode register page menu-bar rfn-eshadow timer select mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
button faces cus-face files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process multi-tty emacs)