Subject: bug#36765: closed (Re: bug#36765: 27.0.50; gnus-group-split-setup should delay until Gnus has finished starting up)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 27 Jul 2019 16:20:05 +0000

Your bug report

#36765: 27.0.50; gnus-group-split-setup should delay until Gnus has finished starting up

which was filed against the emacs,gnus package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36765: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36765
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#36765: 27.0.50; gnus-group-split-setup should delay until Gnus has finished starting up
From: Eric Abrahamsen <[email-masked]>
To: Lars Ingebrigtsen <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 27 Jul 2019 09:19:40 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Lars Ingebrigtsen <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> Okay, I've heard back from the user. I think the proper solution is:
>>
>> (add-hook (if auto-update
>> 	      'gnus-get-top-new-news-hook
>> 	    'gnus-read-newsrc-el-hook)
>> 	  #'gnus-group-split-update)
>>
>> The reasoning being:
>
> [...]
>
>> WDYT?
>
> Sounds good.

Thanks -- pushed.

Subject: 27.0.50; gnus-group-split-setup should delay until Gnus has finished starting up
From: Eric Abrahamsen <[email-masked]>
To: [email-masked]
Date: Mon, 22 Jul 2019 11:22:53 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

The Gnus manual instructs users to put a call to
`gnus-group-split-setup' in their gnus.el file if they want to skip over
some tedious manual configuration.

The problem with this is that the function has:

  (gnus-group-split-update)
  (when auto-update
    (add-hook 'nnmail-pre-get-new-mail-hook 'gnus-group-split-update))

Meaning that `gnus-group-split-update' is called immediately when this
function is run, which happens before Gnus is done starting up.
split-update calls `gnus-group-split-fancy' which ends up accessing
group parameters on all Gnus groups. Parameter access only works when
gnus-newsrc-hashtb is already initialized. When the hashtb was an
obarray, this process was a silent no-op. Now that they're hashtables,
it signals a type error.

I think a simple solution would be to change the above to:

(add-hook (if auto-update
	      'nnmail-pre-get-new-mail-hook
	    'gnus-started-hook)
	  'gnus-group-split-update)

Ie, if auto-update isn't passed, only run the update once, at start time.