[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gnus encrypted connections hang (was: Several problems)

From: Ted Zlatanov
Subject: Gnus encrypted connections hang (was: Several problems)
Date: Thu, 31 Jul 2014 19:23:58 -0400
User-agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.4.50 (gnu/linux)

On Thu, 31 Jul 2014 08:22:08 +0400 Dmitry Antipov <address@hidden> wrote: 

DA> On 07/31/2014 12:02 AM, Ted Zlatanov wrote:
>> The symptom seems to be that GnuTLS will read data, then gets a retry,
>> and finally hangs forever. I can duplicate it by trying to read the last
>> 200 messages in emacs-devel and I believe even as little as 16K will
>> trigger the behavior. But if I read the last 1 message only (`C-u 1
>> RET') then things work.  If this is indeed a timer problem, it will be
>> hard to replicate but I hope this is enough data.

DA> Is it possible to create a simple recipe?  I'm not familiar enough with 
Gnus, and
DA> would like to see something like in 

>> If you prefer a bug report, let me know.

DA> Yes, please.

Hmm, I'd like some help here.  I can't replicate the problem easily.
Using Lars' recipe from that bug report, I did:

#+begin_src emacs-lisp
(require 'gnus-group)
(setq gnutls-verbose 9)
(let ((gnus-bug-group-download-format-alist
       '((emacs . "https://code.jquery.com/jquery-2.1.1.js";))))
  (gnus-read-ephemeral-emacs-bug-group 16577))

which locks up for me reliably the *first* time it's run, in a way
similar to what I reported earlier, but there's no output in *Messages*.
It's hitting a static URL with some parameters and transferring a few KB
of data.

OTOH here's a recipe that doesn't lock up, but transfers a fairly large
file quickly.  Because it doesn't lock up, I believe the issue is
somehow tied to interaction with the process.

#+begin_src emacs-lisp
(let ((p (open-gnutls-stream "tls" "tls" "code.jquery.com" "443")))
  (with-current-buffer "tls"
    (process-send-string p "GET /jquery-2.1.1.js\n")))

Ideally I'd like to provide you an exact recipe to replicate what Gnus
does but it's fairly complicated. Lars would be better at figuring this
out. Perhaps the first recipe above is enough. If you or others have
ideas, please let me know.  I'll open the bug as soon as I have a recipe.

I also asked about the reason for introducing this change recently, and
if it can be made configurable and optional, at least. Right now it
makes Gnus and perhaps other parts of Emacs unusable.  Please point me
to the discussion, if any, about this change so I can learn.  If there
was no previous discussion, could you explain a bit?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]