unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* gnus-server-to-method crash on virtual server name in gnus-secondary-select-methods
@ 2021-01-07 18:14 Greg Klanderman
  2021-01-08 18:28 ` Eric Abrahamsen
  0 siblings, 1 reply; 18+ messages in thread
From: Greg Klanderman @ 2021-01-07 18:14 UTC (permalink / raw)
  To: emacs-devel


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



^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2021-02-05 17:12 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-07 18:14 gnus-server-to-method crash on virtual server name in gnus-secondary-select-methods Greg Klanderman
2021-01-08 18:28 ` 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

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