Bug#344946: gnus: Incoming mail does not get saved to file specified in mail-crash-crash-box
Package: gnus Version: 5.10.6-1.NO.20051213-1 Severity: grave Recently, the following situation occurred: Gnus downloaded mail from the IMAP server I use, and it deleted it on the server, since this is the way I have configured it. However, there was something in the mail messages that caused Gnus and Emacs to take up all available memory in the system, and eventually the kernel started killing processes, starting of course with Emacs. As a consequence, all of the incoming mail was lost. I could see the new message headers in my Gnus folders, but the message bodies were irretrievably lost. None of the messages were saved to the file specified in `mail-source-crash-box' (which is the default `~/.emacs-mail-crash-box'). Perhaps a better crash-save mechanism should be implemented. The Gnus-relevant settings from my .emacs file are: (setq mail-sources (quote ((imap :server x.x.xxx :port 993 :user xx :stream ssl :authenticator cram-md5 :predicate UNSEEN UNDELETED (setq gnus-use-bbdb t) (setq gnus-use-sendmail t) (setq gnus-article-decode-charset 1) (setq nnmail-delete-incoming t) (setq mail-source-delete-incoming t) (setq nnmail-fancy-expiry-targets (quote ((from .* nnfolder:Chronicle.%Y.%b (setq nnmail-split-fancy ) (setq nnmail-split-methods ... ;; (omitted for brevity) (setq gnus-message-archive-method (quote (nnfolder Sent (nnfolder-directory ~/Mail/Sent/) (nnfolder-active-file ~/Mail/Sent/active) (nnfolder-get-new-mail nil) (nnfolder-inhibit-expiry t (setq gnus-outgoing-message-group (quote (nnfolder+Sent:Sent))) (gnus-secondary-select-methods (quote ((nnfolder mail (setq gnus-select-method (quote (nntp ... (setq gnus-signature-limit 4.0) (setq gnus-signature-separator (quote (^-- $ ^-- *$ ^---*$ ^*$))) (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-date))) -- System Information: Debian Release: testing APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.4.27-2-686-smp Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8) Versions of packages gnus depends on: ii debconf [debconf-2.0] 1.4.65 Debian configuration management sy ii emacs21 21.4a-1The GNU Emacs editor ii make 3.80-11The GNU version of the make util ii ucf 2.004 Update Configuration File: preserv gnus recommends no packages. -- debconf information: gnus/upgrade/pre_5.9.0: false -- I'm absolutely sure that there are weapons of mass destruction there and the evidence will be forthcoming. We're just getting it just now. --Colin Powell, Remarks to Reporters, May 4, 2003 http://www.state.gov/secretary/rm/2003/20166.htm -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#344946: gnus: Incoming mail does not get saved to file specified in mail-crash-crash-box
tags 344946 unreproducible severity 344946 important thanks Hi, Well, I am not sure what happened here: I am attaching the mail function that is used to get mail from imap folders. Note: The removing of stuff asked in mail-source-delete-incoming happens in `mail-source-callback' -- after the mail has been saved in a file named after the server, i.e. no old incoming files will be deleted, unless you receive new mail. Once the mail has bee4n saved, Incoming files are deleted, and then the crash box is deleted. The code looks fine to me. I am reducing the severity since when the OOM reaps, all kinds of strange things happen. It would help if you called gnus-bug to report this upstream as well, and CC [EMAIL PROTECTED] thanks, manoj , | (defun mail-source-fetch-imap (source callback) | Fetcher for imap sources. | (mail-source-bind (imap source) | (mail-source-run-script | prescript (format-spec-make ?p password ?t mail-source-crash-box | ?s server ?P port ?u user) | prescript-delay) | (let ((from (format %s:%s:%s server user port)) | (found 0) | (buf (generate-new-buffer *imap source*)) | (mail-source-string (format imap:%s:%s server mailbox)) | (imap-shell-program (or (list program) imap-shell-program)) | remove) | (if (and (imap-open server port stream authentication buf) |(imap-authenticate | user (or (cdr (assoc from mail-source-password-cache)) | password) buf) |(imap-mailbox-select mailbox nil buf)) | (let ((coding-system-for-write mail-source-imap-file-coding-system) | str) | (with-temp-file mail-source-crash-box | ;; Avoid converting 8-bit chars from inserted strings to | ;; multibyte. | (mm-disable-multibyte) | ;; remember password | (with-current-buffer buf | (when (and imap-password |(not (assoc from mail-source-password-cache))) | (push (cons from imap-password) mail-source-password-cache))) | ;; if predicate is nil, use all uids | (dolist (uid (imap-search (or predicate 1:*) buf)) | (when (setq str | (if (imap-capability 'IMAP4rev1 buf) | (caddar (imap-fetch uid BODY.PEEK[] | 'BODYDETAIL nil buf)) | (imap-fetch uid RFC822.PEEK 'RFC822 nil buf))) | (push uid remove) | (insert From imap (current-time-string) \n) | (save-excursion | (insert str \n\n)) | (while (let ((case-fold-search nil)) |(re-search-forward ^From nil t)) | (replace-match From )) | (goto-char (point-max | (nnheader-ms-strip-cr)) | (incf found (mail-source-callback callback server)) | (mail-source-delete-crash-box) | (when (and remove fetchflag) | (setq remove (nreverse remove)) | (imap-message-flags-add |(imap-range-to-message-set (gnus-compress-sequence remove)) |fetchflag nil buf)) | (if dontexpunge | (imap-mailbox-unselect buf) | (imap-mailbox-close nil buf)) | (imap-close buf)) | (imap-close buf) | ;; We nix out the password in case the error | ;; was because of a wrong password being given. | (setq mail-source-password-cache | (delq (assoc from mail-source-password-cache) | mail-source-password-cache)) | (error IMAP error: %s (imap-error-text buf))) | (kill-buffer buf) | (mail-source-run-script |postscript |(format-spec-make ?p password ?t mail-source-crash-box | ?s server ?P port ?u user)) | found))) ` -- Eating chocolate is like being in love without the aggravation. Manoj Srivastava [EMAIL PROTECTED] http://www.debian.org/%7Esrivasta/ 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]