From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/58904 Path: main.gmane.org!not-for-mail From: Simon Josefsson Newsgroups: gmane.emacs.gnus.general Subject: Re: possible imap.el bug Date: Fri, 15 Oct 2004 18:57:45 +0200 Sender: ding-owner@lists.math.uh.edu Message-ID: References: <4nwtxtf84q.fsf@lifelogs.com> <4nfz4gc99o.fsf@lifelogs.com> <4nzn2napoz.fsf@lifelogs.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1097859525 4600 80.91.229.6 (15 Oct 2004 16:58:45 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 15 Oct 2004 16:58:45 +0000 (UTC) Original-X-From: ding-owner+M7442@lists.math.uh.edu Fri Oct 15 18:58:38 2004 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13] ident=mail) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CIVPZ-0000SU-00 for ; Fri, 15 Oct 2004 18:58:38 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu ident=lists) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1CIVPP-0002jV-00; Fri, 15 Oct 2004 11:58:27 -0500 Original-Received: from util2.math.uh.edu ([129.7.128.23]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1CIVPK-0002jL-00 for ding@lists.math.uh.edu; Fri, 15 Oct 2004 11:58:22 -0500 Original-Received: from justine.libertine.org ([66.139.78.221] ident=postfix) by util2.math.uh.edu with esmtp (Exim 4.30) id 1CIVPC-0006vC-Cr for ding@lists.math.uh.edu; Fri, 15 Oct 2004 11:58:14 -0500 Original-Received: from yxa.extundo.com (178.230.13.217.in-addr.dgcsystems.net [217.13.230.178]) by justine.libertine.org (Postfix) with ESMTP id 79CF83A0035 for ; Fri, 15 Oct 2004 11:58:08 -0500 (CDT) Original-Received: from latte.josefsson.org (c494102a.s-bi.bostream.se [217.215.27.65]) (authenticated bits=0) by yxa.extundo.com (8.13.1/8.13.1/Debian-14) with ESMTP id i9FGw2uO032376 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=OK) for ; Fri, 15 Oct 2004 18:58:02 +0200 Original-To: ding@gnus.org X-Hashcash: 1:22:041015:ding@gnus.org::9977c625ddec00c6:5cb2a1 In-Reply-To: <4nzn2napoz.fsf@lifelogs.com> (Ted Zlatanov's message of "15 Oct 2004 12:53:00 -0400") User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) X-Virus-Scanned: clamd / ClamAV version 0.75-1, clamav-milter version 0.75c on yxa-iv X-Virus-Status: Clean Precedence: bulk Xref: main.gmane.org gmane.emacs.gnus.general:58904 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:58904 "Ted Zlatanov" writes: > On Fri, 15 Oct 2004, jas@extundo.com wrote: > >> "Ted Zlatanov" writes: > >>> 10845 UID COPY 32361 "soccer". >>> 10845 OK UID COPY completed. >> >> Could you get the CAPABILITY line from that server too? First lines >> when connecting to the server. > > * CAPABILITY IMAP4 IMAP4REV1 NAMESPACE IDLE SCAN SORT MAILBOX-REFERRALS LOGIN-REFERRALS AUTH=LOGIN THREAD=ORDEREDSUBJECT > >> The imap.el code check for the UIDPLUS capability (RFC 2359) and uses >> some special code if present, and it is the code that crashes. If the >> server really supported UIDPLUS, the UID COPY response should be >> something like: >> >> A003 OK [COPYUID 4711] Done >> >> If the capability line includes UIDPLUS, then this is a server bug. > > So maybe imap.el tried UIDPLUS even though it shouldn't... Weird. The code says: (defun imap-message-copyuid-1 (mailbox) (if (imap-capability 'UIDPLUS) (list (nth 0 (imap-mailbox-get-1 'copyuid mailbox)) (string-to-number (nth 2 (imap-mailbox-get-1 'copyuid mailbox)))) (let ((old-mailbox imap-current-mailbox) (state imap-state) (imap-message-data (make-vector 2 0))) (when (imap-mailbox-examine-1 mailbox) (prog1 (and (imap-fetch "*" "UID") (list (imap-mailbox-get-1 'uidvalidity mailbox) (apply 'max (imap-message-map (lambda (uid prop) uid) 'UID)))) (if old-mailbox (imap-mailbox-select old-mailbox (eq state 'examine)) (imap-mailbox-unselect))))))) Could you (load "imap.el") to get a more detailed backtrace, perhaps? I thought it was the string-to-number in the UIDPLUS part of the big if that crashed, but maybe it is some other call, hidden inside the rest of the function. Or the UIDPLUS capability has leaked between buffers.