Gnus development mailing list
 help / color / mirror / Atom feed
From: Lars Ingebrigtsen <larsi@gnus.org>
To: Robert Pluim <rpluim@gmail.com>
Cc: Eric Abrahamsen <eric@ericabrahamsen.net>,
	 Christian Barthel <bch@online.de>,
	 ding@gnus.org
Subject: Re: new wifi connection = nntp timeout = Emacs restart?
Date: Thu, 30 Apr 2020 07:26:59 +0200	[thread overview]
Message-ID: <87a72t35ng.fsf@gnus.org> (raw)
In-Reply-To: <m2imhvxsk3.fsf@gmail.com> (Robert Pluim's message of "Sun, 19 Apr 2020 20:02:20 +0200")

Robert Pluim <rpluim@gmail.com> writes:

> I see this too. Every time I try to look at it, itʼs an issue
> somewhere deep in Emacs' networking code where itʼs trying to read
> from the network and failing, but not failing enough that it gets an
> error or a timeout. And then Real Life™ intervenes and I *have* to get
> Gnus working again.

Yeah, it's a really annoying problem, and unfortunately there is no
general solution we can use.  Sometimes network connections just "go
away", and when you try to use a long-lived connection, you just don't
get a response back.

This is commonly due to wifi (IP changes or not), but I've also
experienced it with some horrible routers.

The problem is that there is no one-solution-fits-all for all the
network protocols that Emacs supports.

IRC has this solved -- they use keepalive packets, and if Emacs doesn't
get one from the server, it reconnects.  Easy peasy.

NNTP and IMAP doesn't have anything like that, so nntp.el and nnimap.el
should be clever and reconnect if we send a command and get no response
back.

However -- I've seen IMAP servers that take half a minute to give a
response to a simple RESYNC command.  (Rearranging its index server
side, I think it was.)

So you can't just put a 1-second timeout on all commands, either.

But I've been pondering whether it would make sense for IMAP to always
send an NOOP command before any other commands, because IMAP is a
streaming protocol.

So instead of

1 QRESYNC foo

we'd send

1 NOOP
2 QRESYNC foo

and if we don't get a response to the NOOP within a very short time
(even if the QRESYNC takes a long time), then we know that something is
wrong and we should reconnect.

NNTP has no such a thing, I think...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no


  parent reply	other threads:[~2020-04-30  5:28 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-16 17:37 Eric Abrahamsen
2020-04-17 11:46 ` Eric S Fraga
2020-04-17 12:20   ` Gijs Hillenius
2020-04-17 12:26     ` Andreas Schwab
2020-04-17 14:51       ` Eric Abrahamsen
2020-04-17 15:38         ` David Engster
2020-04-17 16:35           ` Eric Abrahamsen
2020-04-19  6:37 ` Christian Barthel
2020-04-19 17:32   ` Eric Abrahamsen
2020-04-19 18:02     ` Robert Pluim
2020-04-19 21:23       ` Eric Abrahamsen
2020-04-19 22:10       ` Eric Abrahamsen
2020-04-20  4:54         ` Eric Abrahamsen
2020-04-20  7:40         ` Andreas Schwab
2020-04-20 15:45           ` Eric Abrahamsen
2020-04-20 15:54             ` Robert Pluim
2020-04-20 18:24               ` Eric Abrahamsen
2020-04-21  8:36                 ` Alberto Luaces
2020-04-21 15:53                   ` Eric Abrahamsen
2020-04-22  7:37                     ` Alberto Luaces
2020-04-22  8:28                       ` Alberto Luaces
2020-04-30  5:26       ` Lars Ingebrigtsen [this message]
2020-04-30 17:34         ` Eric Abrahamsen
2020-04-30 21:49           ` Lars Ingebrigtsen
2020-04-30 22:11             ` Eric Abrahamsen
2020-05-04 12:53               ` Robert Pluim
2020-05-04 13:13                 ` Andreas Schwab
2020-05-04 13:33                   ` Robert Pluim
2020-05-04 14:35                     ` Andreas Schwab
2020-05-04 14:46                       ` Robert Pluim
2020-05-04 15:10                         ` Andreas Schwab
2020-05-04 16:29                           ` Robert Pluim
2020-05-04 14:51                 ` Lars Ingebrigtsen
2020-05-04 16:13                   ` Robert Pluim
2020-05-04 16:36                     ` Eric Abrahamsen
2020-05-04 17:21                       ` Robert Pluim
2020-05-04 18:01                         ` Lars Ingebrigtsen
2020-05-05  7:41                           ` new wifi connection = nntp timeout = Emacs restart?, " Robert Pluim
2020-05-05  8:19                             ` Lars Ingebrigtsen
2020-05-05 11:55                               ` Robert Pluim
2020-05-19 13:34                                 ` Lars Ingebrigtsen
2020-05-19 13:36                                 ` Lars Ingebrigtsen
2020-05-04 18:47                         ` Eric Abrahamsen
2020-05-04 15:38                 ` Eric Abrahamsen
2020-05-04 16:28                   ` Robert Pluim
2020-04-30 17:38         ` Eric Abrahamsen
2020-04-30 21:51           ` Lars Ingebrigtsen
2020-04-30 22:26             ` Eric Abrahamsen
2020-04-30 22:28               ` Lars Ingebrigtsen
2020-04-30 22:39                 ` Eric Abrahamsen
2020-04-30 22:55                   ` Lars Ingebrigtsen
2020-04-30 23:13                     ` Eric Abrahamsen
2020-04-30 23:23                       ` Lars Ingebrigtsen
2020-05-01  9:46                         ` David Engster
2020-05-01 10:35                           ` David Engster
2020-05-01 17:29                             ` Eric Abrahamsen
2020-05-01 20:51                               ` David Engster
2020-05-02  0:33                                 ` Eric Abrahamsen
2020-05-02 10:20                                   ` David Engster
2020-05-02 15:13                                     ` Eric Abrahamsen
2020-05-02 16:50                                       ` David Engster
2020-05-02 19:07                                         ` Eric Abrahamsen
2020-05-19 13:23                                           ` Lars Ingebrigtsen
2020-05-21  0:45                                             ` Eric Abrahamsen
2020-06-26  9:38                                               ` Lars Ingebrigtsen
2020-08-21 20:47                             ` Eric Abrahamsen
2020-05-01 18:06                         ` Eric Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a72t35ng.fsf@gnus.org \
    --to=larsi@gnus.org \
    --cc=bch@online.de \
    --cc=ding@gnus.org \
    --cc=eric@ericabrahamsen.net \
    --cc=rpluim@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).