Subject: 25.2; DNS multiple addresses and `open-protocol-stream`

From: Live System User <[email-masked]>
Date: Fri, 08 Dec 2017 11:20:00 -0500

Hi,

        I'm currently having a problem connecting to my IMAP server
        using Emacs although accessing my SMTP server (which has
        only 1 IP address) is working fine.

        While trying to connect to my IMAP server using GNUtls, I
        get the following error:

Debugger entered--Lisp error: (error "aol/993 Name or service not known")
  make-network-process(:name "*nnimap*" :buffer #<buffer  *nnimap aol nil  *nntpd**-338562> :host "aol" :service "993" :nowait nil)
  open-network-stream("*nnimap*" #<buffer  *nnimap aol nil  *nntpd**-338562> "aol" "993")
  open-gnutls-stream("*nnimap*" #<buffer  *nnimap aol nil  *nntpd**-338562> "aol" "993")
  network-stream-open-tls("*nnimap*" #<buffer  *nnimap aol nil  *nntpd**-338562> "aol" "993" (:type ssl :warn-unless-encrypted t :return-list t :shell-command "ssh %s imapd" :capability-command "1 CAPABILITY.\n" :always-query-capabilities t :end-of-command ".\n" :success " OK " :starttls-function #[(capabilities) "\302\303\304.\305...#)\266\203\205..\306\207" [capabilities inhibit-changing-match-data "STARTTLS" nil t string-match "1 STARTTLS.\n"] 7]))
  open-protocol-stream("*nnimap*" #<buffer  *nnimap aol nil  *nntpd**-338562> "aol" "993" :type ssl :warn-unless-encrypted t :return-list t :shell-command "ssh %s imapd" :capability-command "1 CAPABILITY.\n" :always-query-capabilities t :end-of-command ".\n" :success " OK " :starttls-function #[(capabilities) "\302\303\304.\305...#)\266\203\205..\306\207" [capabilities inhibit-changing-match-data "STARTTLS" nil t string-match "1 STARTTLS.\n"] 7])
  nnimap-open-connection-1(#<buffer  *nntpd*>)
  nnimap-open-connection(#<buffer  *nntpd*>)
  nnimap-open-server("aol" ((nnimap-address "imap.aim.com") (nnimap-server-port 993) (nnimap-stream ssl) (nnimap-list-pattern ("*")) (nnimap-expunge-on-close (quote never)) (nnimap-expunge nil) (imap-default-user "nyc4bos") (nnimap-username "nyc4bos") (nnimap-user "nyc4bos") (nnir-search-engine imap)))
  gnus-open-server((nnimap "aol" (nnimap-address "imap.aim.com") (nnimap-server-port 993) (nnimap-stream ssl) (nnimap-list-pattern ("*")) (nnimap-expunge-on-close (quote never)) (nnimap-expunge nil) (imap-default-user "nyc4bos") (nnimap-username "nyc4bos") (nnimap-user "nyc4bos") (nnir-search-engine imap)))
  gnus-server-open-server("nnimap:aol")
  funcall-interactively(gnus-server-open-server "nnimap:aol")
  call-interactively(gnus-server-open-server nil nil)
  command-execute(gnus-server-open-server)

        At the exact same time I am trying to connect to my IMAP server
        using Emacs (GNUtls) and it fails, I am able to conect to the
        IMAP server from the command shell prompt:

$ nslookup imap.aim.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
imap.aim.com	canonical name = nginx.aol.com.
nginx.aol.com	canonical name = nginx.mx.aol.com.aol.akadns.net.
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.3.66
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.0.66
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.0.65
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.0.97
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.3.65
Name:	nginx.mx.aol.com.aol.akadns.net
Address: 152.163.0.98

$ telnet imap.aim.com 993
Trying 152.163.0.65...
Connected to imap.aim.com.
Escape character is '^]'.

$ netstat -tulpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
cp        0      0 10.0.1.200:44712        152.163.0.65:993        ESTABLISHED 
7262/telnet         

        I think that problem might be related to the multiple address
        results returned by the resolver (DNS) and the interaction
        with the `open-protocol-stream' inner functions.

        Perhaps it's failing on one of the multiple resolved IP
        addresses found amd not trying the next resolved IP address
        that was returned (until the pool is exhausted) before
        giving up with the error "aol/993 Name or service not known"?

        Thanks.

In GNU Emacs 25.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.20.10)
 of 2017-05-02 built on buildvm-17.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.11803000
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
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
 --param=ssp-buffer-size=4 -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS

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

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Mark set [2 times]
Opening connection to aol via tls...
Unable to open server nnimap+aol due to: aol/993 Name or service not known
<mouse-6> is undefined
mwheel-scroll: Beginning of buffer
<mouse-6> is undefined
<double-mouse-6> is undefined
<triple-mouse-6> is undefined [3 times]
Opening connection to aol via tls...
Unable to open server nnimap+aol due to: aol/993 Name or service not known

Load-path shadows:
None found.

Features:
(cus-start cus-load nnagent nnml shadow emacsbug eieio-opt speedbar
sb-image ezimage dframe find-func pp thingatpt mailalias smtpmail
sendmail debug sort gnus-cite smiley ansi-color mail-extr gnus-async
gnus-bcklg qp gnus-ml disp-table cursor-sensor nndraft nnmh nndoc
mm-archive jka-compr timezone url-http url-gw url-cache url-auth
url-handlers utf-7 rfc2104 nnfolder network-stream nsm starttls
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache epa-file epa derived nnreddit mm-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse auth-source cl-seq eieio eieio-core cl-macs url-vars
json map seq byte-opt bytecomp byte-compile cl-extra cconv gnus-art
mm-uu mml2015 mm-view mml-smime smime dig mailcap cl gv sieve sieve-mode
sieve-manage nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source tls gnutls utf7 netrc parse-time gnus-spec
gnus-int gnus-range message dired format-spec rfc822 mml mml-sec
password-cache epg epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus gnus-ems wid-edit nnoo nnheader gnus-util mm-util help-fns
help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils
misearch multi-isearch time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd 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
dbusbind inotify dynamic-setting system-font-setting font-render-setting
xwidget-internal move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 294988 48648)
 (symbols 48 125495 3)
 (miscs 40 227 604)
 (strings 32 107262 6973)
 (string-bytes 1 3683873)
 (vectors 16 28045)
 (vector-slots 8 936885 49380)
 (floats 8 426 1426)
 (intervals 56 1921 25)
 (buffers 976 64)
 (heap 1024 94191 33666))