unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Greg Klanderman <gak@klanderman.net>
To: emacs-devel@gnu.org
Subject: gnus-server-to-method crash on virtual server name in gnus-secondary-select-methods
Date: Thu, 7 Jan 2021 13:14:18 -0500	[thread overview]
Message-ID: <24567.20346.37031.450073@lwm.klanderman.net> (raw)


Hi, hopefully this is the correct list for reporting Gnus problems
these days; I see there is also info-gnus-english@ but it doesn't look
terribly active.

Not subscribed so please include me in replies.

I'm a long time Gnus user since early/mid 90's, and was fairly active
reporting problems back then (still listed in 'Contributors'!).

I have recently transitioned my email from nnfolder to nnmaildir as I
ran up against 1Gb group file size limit (still on XEmacs 21.4 and
Gnus 5.10.8).

[As an aside, it took me some time to realize that I could not just
incrementally transition my largest groups; it would appear that you
can only have new mail delivered to a single server (get-new-mail=t)
when splitting with Gnus.  If that is still the case with current
development version, it would be really nice to explain that
somewhere in the manual.  I did look at the current manual online

https://www.gnu.org/software/emacs/manual/html_node/gnus/index.html

and didn't see this covered.  I had expected that nnmail-split-fancy
would be able to just deliver to multiple backends/servers, either
using the explicit "backend+name:group" form, or that it would look up
the server based on the group name and deliver properly.  But it seems
that there is a loop over servers in gnus-secondary-select-methods,
and whichever appears first and allows getting new mail gets all the
new mail.]

Anyway, in the process of this transition, I found that when I put my
new nnmaildir server, named "mail" before '(nnfolder "") in
gnus-secondary-select-methods, it crashes on startup in
gnus-server-to-method.  Since that code looks the same in emacs 21.7 /
Gnus 5.13 it seemed warranted to report the issue.

In detail: I still have some legacy nnfolder groups (old groups that
are no longer delivered to).  On startup, gnus-read-active-file loops
over gnus-secondary-select-methods, and when the nnfolder appears
second, Gnus has not yet opened the nnfolder server when
gnus-read-active-file-1 is (first) called with the nnmaildir and loops
over infos, calling gnus-find-method-for-group, in turn calling
gnus-server-to-method for one of the nnfolder groups
(gnus-server-to-method is called with "nnfolder:").

In that function, this code (unchanged in 5.13 / Debian testing emacs-gtk):

    ;; It could be a named method, search all servers
    (let ((servers gnus-secondary-select-methods))
      (while (and servers
                  (not (equal server (format "%s:%s" (caar servers)
                                             (cadar servers)))))
        (pop servers))
      (car servers))

is not handling the fact that gnus-secondary-select-methods may
contain virtual server name strings (only handling select methods,
assuming it can take car/cdr of elements).

For now I can just swap the order in gnus-secondary-select-methods so
that the nnfolder is opened first but someday I'll transition to GNU
emacs and newer Gnus so hopefully you can address this.

[As a second aside, can you explain this code in
gnus-summary-move-article (logically unchanged in current 5.13):

    ;; See whether the article is to be put in the cache.
    (let* ((expirable (gnus-group-auto-expirable-p to-group))
           (marks (if expirable
                      gnus-article-mark-lists
                    (delete '(expirable . expire)
                            (copy-sequence
                             gnus-article-mark-lists))))
       ..)..)

It was unexpected that when I moved (B m) my mail to the new nnmaildir
backend groups, articles marked expirable lost that mark, leaving them
merely read.  Is the condition in the 'if' there maybe reversed?  I
could maybe imagine that when moving to an auto-expirable group you
might want to clear expirable on a move, assuming it will eventually
be marked expirable again, automatically.

IMO moving articles should preserve expirable like any other mark.

I'd also love it if nnmail-expiry-wait were measured relative to when
I mark an article expirable, is there any way to get that behavior in
newer Gnus?]


Thank you for so many decades of great work on Gnus!

Greg



             reply	other threads:[~2021-01-07 18:14 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07 18:14 Greg Klanderman [this message]
2021-01-08 18:28 ` gnus-server-to-method crash on virtual server name in gnus-secondary-select-methods Eric Abrahamsen
2021-01-18 18:07   ` Greg Klanderman
2021-01-21 23:50     ` Eric Abrahamsen
2021-01-25 17:51       ` Greg Klanderman
2021-01-25 18:41         ` Eric Abrahamsen
2021-01-26 19:11           ` Greg Klanderman
2021-01-26 10:51         ` Robert Pluim
2021-01-26 19:09           ` slow X11 frame creation and refresh after occlusion (was: gnus-server-to-method crash on virtual server name in gnus-secondary-select-methods) Greg Klanderman
2021-01-27  8:07             ` slow X11 frame creation and refresh after occlusion Robert Pluim
2021-01-30 19:32               ` Greg Klanderman
2021-02-01  8:56                 ` Robert Pluim
2021-02-03 21:52                   ` Greg Klanderman
2021-02-04  8:24                     ` Robert Pluim
2021-02-04 21:14                       ` Greg Klanderman
2021-02-05  9:53                         ` Robert Pluim
2021-02-05 17:12                           ` Greg Klanderman
2021-01-30 22:21               ` Greg Klanderman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=24567.20346.37031.450073@lwm.klanderman.net \
    --to=gak@klanderman.net \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).