From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/48104 Path: main.gmane.org!not-for-mail From: Simon Josefsson Newsgroups: gmane.emacs.gnus.general Subject: Re: gnus marks nonexistent articles Date: Sun, 08 Dec 2002 06:38:10 +0100 Sender: owner-ding@hpc.uh.edu Message-ID: References: <871y4vlz2u.fsf@mail.paradoxical.net> <87u1hqly9v.fsf@mail.paradoxical.net> <87el8udfql.fsf@mail.paradoxical.net> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1039328588 22476 80.91.224.249 (8 Dec 2002 06:23:08 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 8 Dec 2002 06:23:08 +0000 (UTC) Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18KupO-0005nD-00 for ; Sun, 08 Dec 2002 07:22:13 +0100 Original-Received: from sina.hpc.uh.edu ([129.7.128.10] ident=lists) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 18KuDE-00045F-00; Sat, 07 Dec 2002 23:42:44 -0600 Original-Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sat, 07 Dec 2002 23:43:33 -0600 (CST) Original-Received: from sclp3.sclp.com ([209.196.61.66]) by sina.hpc.uh.edu (8.9.3/8.9.3) with SMTP id XAA25663 for ; Sat, 7 Dec 2002 23:41:01 -0600 (CST) Original-Received: (qmail 12725 invoked by alias); 8 Dec 2002 05:38:16 -0000 Original-Received: (qmail 12719 invoked from network); 8 Dec 2002 05:38:15 -0000 Original-Received: from 178.230.13.217.in-addr.dgcsystems.net (HELO yxa.extundo.com) (217.13.230.178) by gnus.org with SMTP; 8 Dec 2002 05:38:15 -0000 Original-Received: from localhost (yxa.extundo.com [217.13.230.178]) (authenticated bits=0) by yxa.extundo.com (8.12.6/8.12.6) with ESMTP id gB85cB8b025585 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 8 Dec 2002 06:38:12 +0100 Original-To: ding@gnus.org Mail-Copies-To: nobody X-Hashcash: 0:021208:ding@gnus.org:925bce1609d5368c In-Reply-To: (prj@po.cwru.edu's message of "Sat, 07 Dec 2002 21:40:54 -0500") User-Agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.3.50 (i686-pc-linux-gnu) Precedence: list X-Majordomo: 1.94.jlt7 Xref: main.gmane.org gmane.emacs.gnus.general:48104 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:48104 prj@po.cwru.edu (Paul Jarc) writes: > I think I've figured it out now. When Gnus finds that an article does > not exist, it marks it as read. But nnmaildir doesn't store marks for > nonexistent articles. (Does nnimap? nnml?) Nnimap tries hard to not reset Gnus' marks but only update them with correct information from the server. So if Gnus thinks a non-existing article has some set of marks, nnimap never changes it. This is what is slowing down group entry, btw.. relevant code from nnimap-request-update-info-internal: (when (nnimap-mark-permanent-p 'read) (let (seen unseen) ;; read info could contain articles marked unread by other ;; imap clients! we correct this (setq seen (gnus-uncompress-range (gnus-info-read info)) unseen (imap-search "UNSEEN UNDELETED") seen (gnus-set-difference seen unseen) ;; seen might lack articles marked as read by other ;; imap clients! we correct this seen (append seen (imap-search "SEEN")) ;; remove dupes seen (sort seen '<) seen (gnus-compress-sequence seen t) ;; we can't return '(1) since this isn't a "list of ranges", ;; and we can't return '((1)) since g-list-of-unread-articles ;; is buggy so we return '((1 . 1)). seen (if (and (integerp (car seen)) (null (cdr seen))) (list (cons (car seen) (car seen))) seen)) (gnus-info-set-read info seen))) I guess similar code could be used in nnmaildir too. > nnmaildir-request-update-info returns only the marks it knows about; > it removes marks supplied by Gnus that weren't stored by nnmaildir. > So after it's called, all the nonexistent articles seem to exist as > unread, as far as Gnus is concerned. Even if nnmaildir is the only > backend currently affected by this problem, I think it makes sense to > fix this in Gnus: gnus-request-update-info could artificially add > (1 . (1- min)) to the read range after getting marks from the backend. > Thoughts? Objections? Other ideas? If it is that simple to fix it, I'm for it. OTOH it might be a good property that backends should never update marks on server-non-existing articles; it would allow Gnus to have local articles using those article numbers.