info-gnus-english
[Top][All Lists]
Advanced

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

Re: Sent message still in drafts (lisp error: "Selecting deleted buffer"


From: Felix Natter
Subject: Re: Sent message still in drafts (lisp error: "Selecting deleted buffer")
Date: Sun, 31 Mar 2013 20:19:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

hi Katsumi,

now I have another backtrace (debug-on-error=t, with M-x load-library
nnml.el) with the below fix in place:

Debugger entered--Lisp error: (error "Selecting deleted buffer")
  set-buffer(#<killed buffer>)
  (save-excursion (set-buffer (nnml-open-nov group)) (goto-char (point-max)) 
(mail-header-set-number headers article) (nnheader-insert-nov headers))
  nnml-add-nov("expired" 14148 [nil "Re: Freeplane Kommandozeilenoptionen" 
"Felix Natter <fnatter@gmx.net>" "Sun, 31 Mar 2013 20:10:31 +0200" 
"<877gkntp5e.fsf@totally-fudged-out-message-id>" 
"<87obe9dgi1.fsf@bitburger.home.felix> <514E1497.4040803@web.de> 
<514E58BF.5000106@web.de> <87sj3e3yz1.fsf@bitburger.home.felix> 
<51577FE4.1080704@web.de> <515781A5.20106@web.de>" 2393 72 
"bitburger.home.felix expired:14148" ((To . "Volker B\303\266rchers 
<boercher@web.de>"))])
  (while --cl-dolist-temp-- (setq ga (car --cl-dolist-temp--)) (nnml-add-nov 
(car ga) (cdr ga) headers) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))
  (let ((--cl-dolist-temp-- group-art) ga) (while --cl-dolist-temp-- (setq ga 
...) (nnml-add-nov ... ... headers) (setq --cl-dolist-temp-- ...)) nil)
  (catch (quote --cl-block-nil--) (let (... ga) (while --cl-dolist-temp-- ... 
... ...) nil))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
  (block nil (let (... ga) (while --cl-dolist-temp-- ... ... ...) nil))
  (dolist (ga group-art) (nnml-add-nov (car ga) (cdr ga) headers))
  (if nnmail-group-names-not-encoded-p (dolist (ga group-art) (nnml-add-nov ... 
... headers)) (dolist (ga group-art) (nnml-add-nov ... ... headers)))
  (let* ((chars ...) (extension ...) decoded dec file first headers) (when 
nnmail-group-names-not-encoded-p (dolist ... ...) (setq dec decoded)) 
(nnmail-insert-xref group-art) (run-hooks (quote 
nnmail-prepare-save-mail-hook)) (run-hooks (quote nnml-prepare-save-mail-hook)) 
(goto-char (point-min)) (while (looking-at "From ") (replace-match 
"X-From-Line: ") (forward-line 1)) (dolist (ga group-art) (if 
nnmail-group-names-not-encoded-p ... ... ...) (if first ... ... ...)) (setq 
headers (nnml-parse-head chars)) (if nnmail-group-names-not-encoded-p (dolist 
... ...) (dolist ... ...)))
  nnml-save-mail((("expired" . 14148)) "")
  (car (nnml-save-mail (list ...) server))
  (setq result (car (nnml-save-mail ... server)))
  (and (nnmail-activate (quote nnml)) (setq result (car ...)) (progn 
(nnmail-save-active nnml-group-alist nnml-active-file) (and last ...)))
  (if (stringp group) (and (nnmail-activate ...) (setq result ...) (progn ... 
...)) (and (nnmail-activate ...) (if ... ... ...) (when last ... ... ...)))
  (let (result) (when nnmail-cache-accepted-message-ids (nnmail-cache-insert 
... group ... ...)) (if (stringp group) (and ... ... ...) (and ... ... ...)) 
result)
  nnml-request-accept-article("expired" "" nil)
  gnus-request-accept-article("nnml:expired" nil nil t)
  nnmail-expiry-target-group("nnml:expired" "drafts")
  nnmh-request-expire-articles((145) "drafts" nil t)
  apply(nnmh-request-expire-articles ((145) "drafts" nil t))
  nnoo-parent-function(nndraft nnmh-request-expire-articles ((145) "drafts" nil 
t))
  nndraft-request-expire-articles((145) "drafts" nil t)
  message-disassociate-draft()
  message-send(nil)
  message-send-and-exit(nil)
  call-interactively(message-send-and-exit nil nil)

Please tell me if you need additional information.

Thank you very much!

Best Regards,
Felix

Katsumi Yamaoka <yamaoka@jpl.org> writes:
> Felix Natter <fnatter@gmx.net> wrote:
>> Katsumi Yamaoka <yamaoka@jpl.org> writes:
> [...]
>>> I found some other problems on expiring sent drafts to a group.
>>> The principal one is that a draft is not like a normal article:
>>>
>>> ・There is a separator between the header and the body.
>>>   - You can't read its body in an expiry group.
>>>   - Xref herder, etc. are put at the end of the body.
>>> ・Non-ASCII text has not been encoded properly.
>>> ・Attachments do not necessarily exist when re-using it.
>
>> So the problem is that when I send a draft, its content is subject
>> to expiry, and this does not work because a draft is not like
>> a normal article (and with the "G c" below we tell Gnus to delete
>> and not expire sent drafts)?
>
> Maybe that a draft is not a normal article is not a direct cause
> of your problem.  Though I haven't yet investigated why sometimes
> it fails with the message "Selecting deleted buffer".
>
>>> It will cost to improve it.
>
>> What do you mean by "costs to improve it"?
>
> Sorry for my funny English.  I meant that it will take time (IOW,
> cost me time ;-) to improve the Lisp code so as to transform
> a draft message, that is copied or moved to a normal group, to
> a normal article.
>
> [...]
>> Yes, I am doing that:
>> (setq nnmail-expiry-target "nnml:expired")
> [...]
>>> how about setting a group parameter so that only sent drafts
>>> are deleted?
> [...]
>> If that works, then I think it's a good idea to mention this problem
>> in the Gnus documentation?
>
> I have another idea.  That is to make the behavior of expiring of
> drafts be always `delete' no matter what nnmail-expiry-target is.
> It lets you and friends have no need to have such a special group
> parameter.  Ones who want to have a local copy of a sent message
> can use Gcc, that saves it as a normal article.  WDYT?
>

-- 
Felix Natter



reply via email to

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