From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/66407 Path: news.gmane.org!not-for-mail From: Justus-bulk@Piater.name Newsgroups: gmane.emacs.gnus.general Subject: nnir.el and absent files Date: Fri, 29 Feb 2008 13:48:27 +0100 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1204289412 12122 80.91.229.12 (29 Feb 2008 12:50:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 29 Feb 2008 12:50:12 +0000 (UTC) To: ding@gnus.org Original-X-From: ding-owner+M14897@lists.math.uh.edu Fri Feb 29 13:50:34 2008 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by lo.gmane.org with esmtp (Exim 4.50) id 1JV4h4-00069Z-Dz for ding-account@gmane.org; Fri, 29 Feb 2008 13:50:30 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1JV4fk-00074n-Uq; Fri, 29 Feb 2008 06:49:09 -0600 Original-Received: from mx2.math.uh.edu ([129.7.128.33]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1JV4fj-00074X-HH for ding@lists.math.uh.edu; Fri, 29 Feb 2008 06:49:07 -0600 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx2.math.uh.edu with esmtp (Exim 4.67) (envelope-from ) id 1JV4fc-0004VS-1U for ding@lists.math.uh.edu; Fri, 29 Feb 2008 06:49:06 -0600 Original-Received: from serv108.segi.ulg.ac.be ([139.165.32.111]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1JV4fh-0007PN-00 for ; Fri, 29 Feb 2008 13:49:05 +0100 Original-Received: (qmail 7382 invoked from network); 29 Feb 2008 13:48:27 +0100 Original-Received: from unknown (HELO tool.montefiore.ulg.ac.be) (u193113@[139.165.11.16]) (envelope-sender ) by serv108.segi.ulg.ac.be (qmail-ldap-1.03) with SMTP for ; 29 Feb 2008 13:48:27 +0100 User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.1 (gnu/linux) X-Spam-Score: -1.6 (-) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:66407 Archived-At: --=-=-= Content-Type: text/plain Hi, How is nnir.el supposed to behave if the search engine returns files that no longer exist (because the mails in question have been deleted or moved elsewhere since the last index generation)? My nnmaildir-enabled nnir.el bombs out in this case; see the stack backtrace in the attachment. Before I go bug hunting, maybe somebody can explain to me how this is supposed to work (or not). So: - Did I break this when I added nnmaildir support? - Is it handled by nnir.el (How?), but I failed to take care of this case when adding nnmaildir support? - Is this an open issue with nnir.el and has nothing to do with my nnmaildir changes? For example, does nnir.el simply assume that the search engine never returns inexistent files? (Swish++ does not seem to care.) Thanks, Justus --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=Backtrace Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil) byte-code("..." [nlist2 x high throw iterate-loop nil] 4) nnmaildir--nlist-iterate((...) (nil) #[(article) "..." [nnmaildir--cur-server group article nov cl-struct-nnmaildir--art-tags num nnmaildir--update-nov nnmaildir--cache-nov 0 error "nnmaildir--art-num accessing a non-nnmaildir--art" 3 princ " " "nnmaildir--art-msgid accessing a non-nnmaildir--art" 4 1 " Xref: nnmaildir " ":" 2 "\n" nntp-server-buffer gname] 10]) byte-code("..." [...] 5) nnmaildir-retrieve-headers((nil) "lists.computer" "" nil) gnus-retrieve-headers((nil) "lists.computer" nil) (setq foo (gnus-retrieve-headers (list artno) artfullgroup nil)) (let ((--cl-var-- ...)) (cond (... ... ... ...) (... ... ... ...) (t ...))) (case (setq foo (gnus-retrieve-headers ... artfullgroup nil)) (nov (goto-char ...) (setq novitem ...) (unless novitem ... ...)) (headers (goto-char ...) (setq novitem ...) (unless novitem ... ...)) (t (error "Unknown header type %s while requesting article %s of group %s" foo artno artfullgroup))) (let ((gnus-override-method ...)) (case (setq foo ...) (nov ... ... ...) (headers ... ... ...) (t ...))) (while (not (null artlist)) (setq art (car artlist)) (or (numberp art) (nnheader-report ... "nnir-retrieve-headers doesn't grok message ids: %s" art)) (setq artitem (nnir-artlist-article nnir-artlist art)) (setq artrsv (nnir-artitem-rsv artitem)) (setq artfullgroup (nnir-artitem-group artitem)) (setq artno (nnir-artitem-number artitem)) (setq artgroup (gnus-group-real-name artfullgroup)) (setq server (nnir-group-server artfullgroup)) (set-buffer nntp-server-buffer) (nnir-possibly-change-server server) (let (...) (case ... ... ... ...)) (mail-header-set-number novitem art) (mail-header-set-from novitem (mail-header-from novitem)) (mail-header-set-subject novitem (format "[%d: %s/%d] %s" artrsv artgroup artno ...)) (push novitem novdata) (setq artlist (cdr artlist))) (let ((artlist ...) (art nil) (artitem nil) (artgroup nil) (artno nil) (artrsv nil) (artfullgroup nil) (novitem nil) (novdata nil) (foo nil) server) (while (not ...) (setq art ...) (or ... ...) (setq artitem ...) (setq artrsv ...) (setq artfullgroup ...) (setq artno ...) (setq artgroup ...) (setq server ...) (set-buffer nntp-server-buffer) (nnir-possibly-change-server server) (let ... ...) (mail-header-set-number novitem art) (mail-header-set-from novitem ...) (mail-header-set-subject novitem ...) (push novitem novdata) (setq artlist ...)) (setq novdata (nreverse novdata)) (set-buffer nntp-server-buffer) (erase-buffer) (mapcar (quote nnheader-insert-nov) novdata) (quote nov)) (save-excursion (let (... ... ... ... ... ... ... ... ... ... server) (while ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (setq novdata ...) (set-buffer nntp-server-buffer) (erase-buffer) (mapcar ... novdata) (quote nov))) nnir-retrieve-headers((1 2 3 4 5 6 7 8) "((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" "-ephemeral" nil) gnus-retrieve-headers((1 2 3 4 5 6 7 8) "nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" nil) byte-code("..." [...] 6) gnus-cache-retrieve-headers((1 2 3 4 5 6 7 8) "nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" nil) gnus-retrieve-headers((1 2 3 4 5 6 7 8) "nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" nil) gnus-fetch-headers((1 2 3 4 5 6 7 8)) gnus-select-newsgroup("nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" t nil) gnus-summary-read-group-1("nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" t t nil nil nil) gnus-summary-read-group("nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" t t nil nil nil nil) byte-code("..." [] 8) gnus-group-read-group(t t "nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" nil) byte-code("..." [...] 5) gnus-group-read-ephemeral-group("nnir:((query . \"steib reiner\") (unique-id . \"x8tfxvcnffh.fsf\"))" (nnir "") t (# . group) nil) (let ((parms nil)) (if extra-parms (setq parms ...) (setq parms ...)) (add-to-list (quote parms) (cons ... ...) t) (gnus-group-read-ephemeral-group (concat "nnir:" ...) (quote ...) t (cons ... gnus-current-window-configuration) nil)) gnus-group-make-nnir-group(nil "steib reiner") call-interactively(gnus-group-make-nnir-group) --=-=-=--