Gnus development mailing list
 help / color / mirror / Atom feed
From: Simon Josefsson <simon@josefsson.org>
To: Katsumi Yamaoka <yamaoka@jpl.org>
Cc: ding@gnus.org
Subject: Re: closing all inactive server connections
Date: Wed, 15 Aug 2007 13:28:44 +0200	[thread overview]
Message-ID: <87zm0tyr2r.fsf@mocca.josefsson.org> (raw)
In-Reply-To: <b4modhtrm3o.fsf@jpl.org> (Katsumi Yamaoka's message of "Tue, 31 Jul 2007 17:52:42 +0900")

Katsumi Yamaoka <yamaoka@jpl.org> writes:

> Well, I tried looking into the IMAP code although I've never
> used nnimap.  And I found the functions that communicate with
> the server all have the following form:
>
>   (while (and (memq (process-status PROCESS) '(open run))
> 	      (wait-for-a-string-that-the-PROCESS-returns))
>     (accept-process-output PROCESS 1)
>     (sit-for 1))
>
> This can be an infinite loop if the process-status keeps `open'
> or `run' even though the connection has actually died.

Can that happen?  Wouldn't that be an emacs bug?  Shouldn't
process-status return exit or closed if a connect/process has gone away?

> In particular, the `imap-wait-for-tag' function can be the cause of
> the hanging since it sends the LOGOUT command to the dead server and
> waits for the response.  So, I tried modifying it so as to quit in a
> certain time.  The patch to imap.el is below.  Anyway, it needs to be
> reviewed by someone who is skilled in IMAP.  The default value of
> `imap-timeout-seconds' might be too small for slow connections.
>
> --- imap.el~	2007-01-24 07:15:37 +0000
> +++ imap.el	2007-07-31 08:50:30 +0000
> @@ -1182,14 +1182,25 @@
>  			 imap-server auth)))))
>  	imap-state))))
>  
> +(defvar imap-timeout-seconds 1
> +  "*Number of seconds in which `imap-close' gives up working.")

This is a bad idea even for fast servers -- some operations (such as
deleting or renaming a mailabox) can take several minutes.  Gnus
shouldn't assume the server isn't responding in this (and other) cases.

Ted Zlatanov <tzz@lifelogs.com> writes:

> Maybe it should be generalized, however, to an IMAP timeout per (server,
> group name, command) combination (as a regex or a function), so you can
> assign "LOGOUT" a longer timeout with a slower server.  This could also
> be a server tuning parameter for nnimap instead of an imap.el parameter.

Having the timeout be restricted to just LOGOUT seems to make more sense
to me.  If the server doesn't respond to a LOGOUT within a short period
of time, one might as well disconnect.

/Simon



  parent reply	other threads:[~2007-08-15 11:28 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-07 15:59 Ted Zlatanov
2007-07-10 19:54 ` Ted Zlatanov
2007-07-19 13:46   ` Ted Zlatanov
2007-07-27 17:06     ` Ted Zlatanov
2007-07-28  0:18       ` Ted Zlatanov
2007-07-30  6:22         ` Katsumi Yamaoka
2007-07-30 15:39           ` Ted Zlatanov
2007-07-31  2:57             ` Katsumi Yamaoka
2007-07-31  3:08               ` Katsumi Yamaoka
2007-07-31  3:19                 ` Ted Zlatanov
2007-07-31  8:52                   ` Katsumi Yamaoka
2007-08-02 19:51                     ` Ted Zlatanov
2007-08-15 11:28                     ` Simon Josefsson [this message]
2007-08-16  7:18                       ` Katsumi Yamaoka
2007-08-16  7:25                         ` Katsumi Yamaoka
2007-08-16  9:49                         ` Simon Josefsson
2007-08-16 15:35                           ` Ted Zlatanov
2007-08-16 15:32                       ` Ted Zlatanov
2007-08-16 15:56                         ` Ted Zlatanov
2007-08-16 23:19                           ` Katsumi Yamaoka
2007-08-16 23:25                             ` Ted Zlatanov
2007-08-16 23:47                               ` Katsumi Yamaoka
2007-08-17 11:09                                 ` Katsumi Yamaoka
2007-09-10 14:52                                   ` Ted Zlatanov
2007-08-15 18:28                     ` Reiner Steib
2007-07-31  3:16               ` Ted Zlatanov
2007-07-31  3:19                 ` Katsumi Yamaoka
2007-07-31  2:58             ` untabify Lisp sources (was Re: closing all inactive server connections) Katsumi Yamaoka
2007-07-31 22:05               ` untabify Lisp sources Reiner Steib
2007-08-01  2:44                 ` Ted Zlatanov
2007-07-31 22:57               ` Miles Bader
2007-08-01  2:46                 ` Ted Zlatanov

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=87zm0tyr2r.fsf@mocca.josefsson.org \
    --to=simon@josefsson.org \
    --cc=ding@gnus.org \
    --cc=yamaoka@jpl.org \
    /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).