emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"no process" gnus bug when moving messages from nnml to imap folder


From: Giorgos Keramidas
Subject: "no process" gnus bug when moving messages from nnml to imap folder
Date: Thu, 03 Feb 2011 01:47:46 -0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

There's something broken in Gnus with `B m' in nnml->imap in the latest git
snapshot of Emacs I downloaded and rebuilt last night:

  (version)
  => "GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1) of 
2011-02-01 on gkeramidas"

I tried this afternoon to copy some messages from my local nnml archive
to imap folders at Gmail.  Every time I type 'g' the imap server of
Gmail is correctly contacted, and new messages appear fine.  But when I
am trying from the summary buffer of an nnml folder to move a message by
typing `B m' and select an imap folder as the target group, I get the
same backtrace:

    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;; Backtrace from toggle-debug-on-error...

    Debugger entered--Lisp error: (error "Buffer *nnimap imap.gmail.com 993  
*nntpd**<4> has no process")
      process-send-string(nil "177 EXAMINE \"archive/2001\"^M\n")
      nnimap-send-command("EXAMINE %S" "archive/2001")
      nnimap-find-article-by-message-id("archive/2001" "<address@hidden>^M, 
<address@hidden>^M, <address@hidden>^M, <address@hidden>^M, <address@hidden>^M, 
<address@hidden>^M, <address@hidden>")
      nnimap-request-accept-article("archive/2001" "gmail" t)
      gnus-request-accept-article("nnimap+gmail:archive/2001" nil t t)
      eval((gnus-request-accept-article "nnimap+gmail:archive/2001" (quote nil) 
t t))
      nnml-request-move-article(2104 "mail.archive-2001" "" 
(gnus-request-accept-article "nnimap+gmail:archive/2001" (quote nil) t t) t nil)
      gnus-request-move-article(2104 "nnml:mail.archive-2001" "" 
(gnus-request-accept-article "nnimap+gmail:archive/2001" (quote nil) t t) t nil)
      gnus-summary-move-article(nil)
      call-interactively(gnus-summary-move-article nil nil)

Trying a few things to see what's going on, I could see the following...

    ;; Part 1. Before the attempt that returned the <4> buffer...

    ELISP> (defun gker/buffer-process-alist ()
         (do ((buffers (buffer-list) (cdr buffers))
              (result nil))
             ((null buffers) result)
           (let* ((b (car buffers))
                  (p (or (get-buffer-process b) :no-process)))
             (add-to-list 'result (cons b p)))))
    gker/buffer-process-alist
    ELISP> (gker/buffer-process-alist)
    ((#<buffer *nnimap imap.gmail.com 993  *nntpd**<2>> . :no-process)
     (#<buffer  *DOC*> . :no-process)
     (#<buffer  *nnml move*> . :no-process)
     (#<buffer  *copy article*> . :no-process)
     (#<buffer .newsrc-dribble> . :no-process)
     (#<buffer *Article nnml:mail.archive-2001*> . :no-process)
     (#<buffer  *Original Article nnml:mail.archive-2001*> . :no-process)
     (#<buffer *imap log*> . :no-process)
     (#<buffer  *gnus work*> . :no-process)
     (#<buffer *gnus trace*> . :no-process)
     (#<buffer  *Gnus agent overview*> . :no-process)
     (#<buffer  *nntpd*> . :no-process)
     (#<buffer  *Echo Area 1*> . :no-process)
     (#<buffer  *Echo Area 0*> . :no-process)
     (#<buffer  *code-conversion-work*> . :no-process)
     (#<buffer  *Minibuf-0*> . :no-process)
     (#<buffer nnimap.el.gz> . :no-process)
     (#<buffer *nnimap imap.gmail.com 993  *nntpd**> . :no-process)
     (#<buffer *nnimap imap.gmail.com nil  *nntpd**> . :no-process)
     (#<buffer *nnimap imap.gmail.com nil  *nntpd**<2>> . #<process 
*nnimap*<1>>)
     (#<buffer *Group*> . :no-process)
     (#<buffer *nnimap imap.gmail.com 993  *nntpd**<3>> . :no-process)
     (#<buffer *Ibuffer*> . :no-process)
     (#<buffer *Summary nnml:mail.archive-2001*> . :no-process)
     (#<buffer *Help*> . :no-process)
     (#<buffer *Messages*> . :no-process)
     (#<buffer  *Minibuf-1*> . :no-process)
     (#<buffer *scratch*> . :no-process)
     (#<buffer *ielm*> . #<process ielm>))

    ELISP> (nnimap-buffer)
    #<buffer *nnimap imap.gmail.com 993  *nntpd**<3>>
    ELISP> nnimap-connection-alist
    ((#<buffer  *nntpd*> #<buffer *nnimap imap.gmail.com 993  *nntpd**<3>>))

So at this point `nnimap-connection-alist' is already broken, because it
points to the "*nnimap imap.gmail.com 993  *nntpd**<3>>" buffer, which
has no associated process.  Typing `B m' to move a message throws the
backtrace I showed earlier, and `nnimap-connection-alist' is updated to
point to _another_ buffer, with an increased <4> number.  This new
buffer is also detached from the imap process, so it isn't possible to
do anything with the new `nnimap-connection-alist'.

    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;; Part 2. After trying `B m' to move a message from a local nnml group
    ;; to an imap group at my gmail account, I got the backtrace at the
    ;; start of this message, and...

    ELISP> (nnimap-buffer)
    #<buffer *nnimap imap.gmail.com 993  *nntpd**<4>>

    ELISP> nnimap-connection-alist
    ((#<buffer  *nntpd*> #<buffer *nnimap imap.gmail.com 993  *nntpd**<4>>))

    ;; Now `nnimap-connection-alist' points to the <4> imap buffer, which
    ;; has no associated process/connection.

    ELISP> (gker/buffer-process-alist)
    ((#<buffer *nnimap imap.gmail.com 993  *nntpd**<4>> . :no-process)
     (#<buffer *nnimap imap.gmail.com 993  *nntpd**<2>> . :no-process)
     (#<buffer  *DOC*> . :no-process)
     (#<buffer  *nnml move*> . :no-process)
     (#<buffer  *copy article*> . :no-process)
     (#<buffer .newsrc-dribble> . :no-process)
     (#<buffer *Article nnml:mail.archive-2001*> . :no-process)
     (#<buffer  *Original Article nnml:mail.archive-2001*> . :no-process)
     (#<buffer *imap log*> . :no-process)
     (#<buffer  *gnus work*> . :no-process)
     (#<buffer *gnus trace*> . :no-process)
     (#<buffer  *Gnus agent overview*> . :no-process)
     (#<buffer  *nntpd*> . :no-process)
     (#<buffer  *Echo Area 1*> . :no-process)
     (#<buffer  *Echo Area 0*> . :no-process)
     (#<buffer  *code-conversion-work*> . :no-process)
     (#<buffer  *Minibuf-0*> . :no-process)
     (#<buffer nnimap.el.gz> . :no-process)
     (#<buffer *nnimap imap.gmail.com 993  *nntpd**> . :no-process)
     (#<buffer *nnimap imap.gmail.com nil  *nntpd**> . :no-process)
     (#<buffer *nnimap imap.gmail.com nil  *nntpd**<2>> . #<process 
*nnimap*<1>>)
     (#<buffer *nnimap imap.gmail.com 993  *nntpd**<3>> . :no-process)
     (#<buffer *Ibuffer*> . :no-process)
     (#<buffer *Help*> . :no-process)
     (#<buffer *Messages*> . :no-process)
     (#<buffer *scratch*> . :no-process)
     (#<buffer *Group*> . :no-process)
     (#<buffer  *Minibuf-1*> . :no-process)
     (#<buffer *Summary nnml:mail.archive-2001*> . :no-process)
     (#<buffer *ielm*> . #<process ielm>))

    ELISP>

For some reason typing `B m' from an nnml group creates new *nnimap ... <N>*
buffers that are *not* associated with the open nnimap connection.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]