Subject: bug#8689: 23.3; Gnus v5.13 freezes upon invocation of default STARTTLS in SMTP in GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600) on Windows XP Professional, Service Pack 3

From: [email-masked] (Benjamin L. Russell)
Date: Wed, 18 May 2011 10:15:14 +0900

Previously, I had thought that the default STARTTLS configuration file
(C:\emacs\emacs-23.3\lisp\gnus\starttls.el) worked when invoking the
STARTTLS file in sending a message via the SMTP protocol; however,
yesterday I discovered that apparently my GNU Emacs 23.3.1 installation
had been using a modified STARTTLS configuration file from the older GNU
Emacs 23.2.1 version within the same C:\emacs directory when Gnus
started freezing every time in SMTP upon invocation of STARTTLS
immediately after I moved the older versions of Emacs to a different
directory.

The bug itself was partially resolved when I followed the following
steps (modified with the portions in brackets added by myself) by Uday
Reddy on 2010-04-26 on "Question #108267 : Questions : VM" (see
https://answers.launchpad.net/vm/+question/108267) in editing my
C:\emacs\emacs-23.3\lisp\gnus\starttls.el file:

1. Added [immediately before the (defun starttls-negotiate-gnutls ...)
command in my C:\emacs\emacs-23.3\lisp\gnus\starttls.el file]:
(defcustom starttls-kill-program "c:\\cygwin\\bin\\kill"
  "External kill command to send SIGALRM to starttls."
  :group 'starttls)

2. Replaced all three instances of:
(signal-process (process-id process) 'SIGALRM)
with
(call-process starttls-kill-program nil nil nil
                                   "-ALRM" (format "%d" (process-id
                                   process)))

[3. Byte-compiled the modified C:\emacs\emacs-23.3\lisp\gnus\starttls.el
file with the B (i.e., SHIFT-b) command.]

Now Gnus sometimes seems to invoke STARTTLS successfully upon sending a
copy of a post via SMTP without freezing; however, when I first tried to
send this bug report, Gnus again froze upon invocation of STARTTLS in
SMTP again, and I had to unfreeze Gnus with C-g.  This freezing
phenomenon apparently happens, on average, approximately once in every
five SMTP invocation attempts when sending a copy of an NNTP post to
myself via SMTP.

I downloaded my copy of GNU Emacs 23.3.1 from
http://ftp.gnu.org/gnu/windows/emacs/emacs-23.3-bin-i386.zip.

It is extremely inconvenient to have to re-send my SMTP message once in
every few attempts because of a freeze during the STARTTLS protocol.
Here is the corresponding output of my *Messages* buffer:

> Sending...
> Sending via mail...
> Opening STARTTLS connection to `plus.smtp.mail.yahoo.com:587'...done
> Quit

As can be seen in the above, Gnus occasionally freezes immediately after
displaying "Opening STARTTLS connection to
`plus.smtp.mail.yahoo.com:587'...done" in the minibuffer.  Normally, at
this stage, Gnus proceeds to the next step and requests my SMTP
password, but occasionally freezes immediately before this step; when
this happens, the only way to escape is to type C-g.

The following procedure reproduces this bug:

1. Invoke Emacs in Windows XP Professional, Service Pack 3, by
double-clicking on C:\emacs\emacs-23.3\bin\runemacs.exe.

2. Within Emacs, type the following command:

> M-x gnus RET

3. Within Gnus, subscribe (if not already subscribed) to the news.test
newsgroup.

4. Within Gnus, type the following command to post a new message:

> a

5. Compose a test message, with subject, say, "test," and subject body,
say "test."

6. Send the message with the following command:

> C-c C-c

7. Once in approximately every five attempts, Gnus will freeze
immediately after displaying "Opening STARTTLS connection to
`plus.smtp.mail.yahoo.com:587'...done" in the minibuffer.  Normally, at
this stage, Gnus will proceed to the next step and request an SMTP
password (if one is required and not specified in the ~/.authinfo file);
however, Gnus occasionally freezes immediately before then; when this
happens, the only way to escape is to type C-g.

In GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600)
 of 2011-03-10 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.5) --no-opt --cflags -Ic:/imagesupport/include'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  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: JPN
  value of $XMODIFIERS: nil
  locale-coding-system: cp932
  default enable-multibyte-characters: t

Major mode: Message

Minor modes in effect:
  mml-mode: t
  show-paren-mode: t
  recentf-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
r SPC C-e SPC C-d <right> <right> <right> <right> <right> 
<right> <right> <right> <left> v e r s i o n SPC C-e 
SPC C-d C-e SPC C-d C-e SPC <backspace> <up> <up> <up> 
<up> <up> <down> <down> <down> <up> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <down> <down> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <up> <up> <up> <up> 
<up> <up> <up> <up> <right> <down> <down> <left> <left> 
<left> <left> <left> <left> <left> <left> <backspace> 
<down> <down> <left> <left> <left> <left> <left> <left> 
<backspace> <down> <right> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <up> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> . 1 <down> 
<down> <down> <down> <down> C-c C-c y e s <return> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> C-a C-SPC C-v C-v C-v <down> <down> <down> 
<left> <escape> w <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu> 
<send-emacs-bug-report> C-g <escape> < <down> <down> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> C-SPC C-e <escape> w <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <menu-bar> <help-menu> <send-emacs-bug
-report>

Recent messages:
Auto-saving...done
Auto-saving...done
Sending...
Sending via mail...
Opening STARTTLS connection to `plus.smtp.mail.yahoo.com:587'...done
Quit
Mark set
Saved text from "Previously, I had thought that the defau"
Quit
Mark set [2 times]

Load-path shadows:
None found.

Features:
(apropos help-mode view shadow emacsbug gnus-fun starttls mailalias
smtpmail newcomment nnfolder sort gnus-cite smiley ansi-color mail-extr
gnus-bcklg gnus-async gnus-ml multi-isearch gnus-salt gnus-topic nndoc
parse-time timezone byte-opt bytecomp byte-compile nnml nndraft nnmh
auth-source gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 epg-config mm-view smime dig nntp
gnus-cache gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
format-spec gnus-start gnus-spec gnus-int gnus-range message ecomplete
rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap
mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev gmm-utils
mailheader canlock sha1 hex-util hashcash gnus-win gnus gnus-ems
nnheader gnus-util netrc time-date mail-utils mm-util mail-prsvr eldoc
palette eyedropper derived hexrgb paren advice help-fns advice-preload
color-theme edmacro kmacro sendmail reporter browse-url hippie-exp
comint ring mouse-sel thingatpt recentf tree-widget wid-edit easymenu
dired regexp-opt cl cl-19 japan-util tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars
tool-bar dnd fontset image fringe lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process multi-tty emacs)

-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 90-6526-1406
"Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^