Subject: Re: bug#36714: 27.0.50; Gnus nnmaildir taking long time to recursively visit sub-Maildirs

From: Jean Louis <[email-masked]>
Date: Thu, 18 Jul 2019 22:48:41 +0200

* Eric Abrahamsen <[email-masked]> [2019-07-18 22:04]:
> I'm assuming your value of `gnus-check-new-newsgroups' is at its default
> of 'ask-server. Try setting it to nil. That will (should) at least
> prevent Gnus from scanning all the folders at startup. It doesn't solve
> the underlying problem, but in your case it
> might avoid it.

Thank you.

I did try to set it to nil, it is set. However,
"Checking new news" is seen and Gnus is working
with hard disk.

So it does not prevent it to scan Maildirs.

gnus-select-method is a variable defined in ‘gnus.el’.
Its value is (nnmaildir "" (directory "~/Maildir"))

> The final setup you want is to be subscribed to the main folder, but
> unsubscribed from the sub maildirs. The question is, can you get to the
> point where you can do that without first having Gnus spend hours
> scanning a million directories. Try the above fix and see if Gnus will
> show you all the other (unwanted) directories.

It does not work.

> We're talking about two different things here. One is defining each of
> the maildirs as a separate server. So:
> 
>  '(gnus-secondary-select-methods
>     '(
>     (nnmaildir email1
>  	(directory /home/data1/protected/Maildir/[email-masked]/))
>     (nnmaildir email2
>  	(directory /home/data1/protected/Maildir/[email-masked]/))
>     (nnmaildir email3
>  	(directory /home/data1/protected/Maildir/[email-masked]/))))
> 
> Etc.
> 
> The other thing you want -- quick switching to a particular group -- can
> certainly be done, but will require a little bit of elisp. Something
> like (totally untested):
> 
> (let* (( email "[email-masked]")
>        (account (car-safe (split-string email @))))
>   (when account
>     (gnus-group-read-group
>      nil t (concat nnmaildir+ account :INBOX))))

I will try that, but I cannot get it without
starting to run or index whatever.

I was thinking that gnus-secondary-select-methods
has to be set before I start reading the folder,
and that above looks that you think that way.

I have tried this

(let* ((email "[email-masked]")
	(gnus-secondary-select-methods '((nnmaildir email (directory (concat "~/Maildir/" email))))))
   (gnus-group-read-group nil t (concat "nnmaildir+" email :INBOX)))

but I am getting this below and I used real email
address. Do I need to assign the group somehow?

Debugger entered--Lisp error: (error "Couldn’t activate group [email-masked]: No such group: [email-masked]")
  signal(error ("Couldn’t activate group [email-masked]: No such group: [email-masked]"))
  error("Couldn't activate group %s: %s" "[email-masked]" "No such group: [email-masked]")
  gnus-select-newsgroup("[email-masked]" nil :INBOX)
  gnus-summary-read-group-1("[email-masked]" nil t nil nil :INBOX)
  gnus-summary-read-group("[email-masked]" nil t nil nil nil :INBOX)
  gnus-group-read-group(nil t "[email-masked]" :INBOX)

Jean