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
next 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).