Gnus development mailing list
 help / color / mirror / Atom feed
From: Simon Josefsson <jas@extundo.com>
Cc: ding@gnus.org
Subject: Re: Faster nnimap: nnimap-retrieve-groups-asynchronous
Date: Thu, 06 Jun 2002 15:07:35 +0200	[thread overview]
Message-ID: <iluzny8zhbc.fsf@latte.josefsson.org> (raw)
In-Reply-To: <hvn0u8d3i9.fsf@rasputin.ws.nextra.no> =?iso-8859-1?q?(Bj=F8rn?= Mork's message of "Thu, 06 Jun 2002 13:56:46 +0200")

Bjørn Mork <bmork@dod.no> writes:

> Simon Josefsson <jas@extundo.com> writes:
>
>> I tried to speed up new mail checking (`g') on IMAP groups.  Startup
>> uses old technique, but subsequent `g' can be faster.  The speedup
>> depends on how many groups usually receives new mail each time you
>> press `g' (the p below).  It might depend on the server as well.  For
>> me, it is faster against Cyrus IMAPD -- results from other servers
>> would be interesting.
>
> This speeded up mail checking noticably on all my imap servers, but
> unfortunately it's causing a problem with one of them. I could of
> course turn it off, but then I lose the performance gain... So I'm
> hoping the problem can be fixed.
>
> I currently use three imap servers:
> a) IMAP4 server (InterMail vM.4.01.03.23 201-229-121-123-20010418)
> b) Courier-IMAP ready. Copyright 1998-2001 Double Precision, Inc.
> c) Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc.

I suspect the same problem as Ilpo reported, also Courier IMAPD from
what I recall.  I haven't debug that yet though.

> The problem is that Gnus doesn't detect new mail split into a folder
> on b) when pressing 'g'. Doing a 'M-g' on the folder will however show
> the new mail. The funny thing is that everything works fine on server
> a) and c). So it looks like a combination of a Courier server and
> client side splitting is causing the problem, unless there is a
> specific problem with the Courier version running on b).

Can you find out the server versions used on server a and b?

Ilpo was not using client side splitting from what I recall.

> 95 EXAMINE "INBOX.Trash"
> * FLAGS (\Answered \Flagged \Deleted \Seen \Recent)
> * OK [PERMANENTFLAGS ()] No permanent flags permitted
> * 0 EXISTS
> * 0 RECENT
> * OK [UIDVALIDITY 979914089] Ok
> 95 OK [READ-ONLY] Ok
> [..]
> 128 STATUS "INBOX.Trash" (uidnext)
> * STATUS "INBOX.Trash" (UIDNEXT 1)
> 128 OK STATUS Completed.
> [..]
> 170 UID FETCH 370 BODY.PEEK[HEADER]
> * 131 FETCH (UID 370 BODY[HEADER] {1628}
> [snip mail]
> 170 OK FETCH completed.
> 171 UID COPY 370 "INBOX.Trash"
> 171 OK COPY completed.
> 172 UID STORE 370 +FLAGS (\Seen \Deleted)
> * 131 FETCH (FLAGS (\Seen \Deleted))
> 172 OK STORE completed.
> 173 EXPUNGE
> * 131 EXPUNGE
> * 130 EXISTS
> * 0 RECENT
> 173 OK EXPUNGE completed
> 174 CLOSE
> 174 OK mailbox closed.
> 175 STATUS "INBOX.Trash" (uidnext)
> * STATUS "INBOX.Trash" (UIDNEXT 1)
> 175 OK STATUS Completed.
>
> Hmm, definitely looks like a server problem when I'm looking at it
> now. Shouldn't the UIDNEXT value change between command 128 and 175? 

Hm.  At first glance, it looks like it, but it could be valid
behaviour if UIDVALIDITY changed. Could you try running with this
patch?  Does the UIDVALIDITY change between 128- and 175-like commands
then?  Nnimap is buggy, it should look at UIDVALIDITY as well here.
I'll fix it.

--- nnimap.el.~6.36.~	Sat May 25 16:16:03 2002
+++ nnimap.el	Thu Jun  6 15:05:15 2002
@@ -975,7 +975,8 @@
 			     'asyncgroups
 			   'slowgroups)
 			 (list group (imap-mailbox-status-asynch
-				      group 'uidnext nnimap-server-buffer))))
+				      group '(uidnext uidvalidity)
+				      nnimap-server-buffer))))
 	  (dolist (asyncgroup asyncgroups)
 	    (let ((group (nth 0 asyncgroup))
 		  (tag   (nth 1 asyncgroup))
@@ -984,7 +985,8 @@
 		(if (nnimap-string-lessp-numerical
 		     (car (gnus-gethash
 			   (concat server group) nnimap-mailbox-info))
-		     (imap-mailbox-get 'uidnext group nnimap-server-buffer))
+		     (imap-mailbox-get '(uidnext uidvalidity)
+				       group nnimap-server-buffer))
 		    (push (list group) slowgroups)
 		  (insert (cdr (gnus-gethash (concat server group)
 					     nnimap-mailbox-info))))))))


> Is this a known problem with the Courier server?

No, but there are other known problems with it.

The workaround is to disable nnimap-retrieve-groups-asynchronous for
the server.




  reply	other threads:[~2002-06-06 13:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-29 16:41 Simon Josefsson
2002-04-29 17:11 ` Nicolas Kowalski
2002-04-29 19:16 ` dme
2002-04-29 22:59 ` Wes Hardaker
2002-04-30  0:21 ` Danny Siu
2002-04-30  5:05 ` Ilpo Nyyssönen
2002-04-30  7:59   ` Simon Josefsson
2002-04-30  8:30     ` Ilpo Nyyssönen
2002-04-30  8:48     ` Ilpo Nyyssönen
2002-05-01  1:17       ` Simon Josefsson
2002-04-30 11:06 ` Kai Großjohann
2002-05-02 15:08   ` Amos Gouaux
2002-06-06 11:56 ` Bjørn Mork
2002-06-06 13:07   ` Simon Josefsson [this message]
2002-06-06 14:10     ` Bjørn Mork
2002-06-06 16:47       ` Bjørn Mork

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=iluzny8zhbc.fsf@latte.josefsson.org \
    --to=jas@extundo.com \
    --cc=ding@gnus.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).