Subject: Re: bug#49866: 28.0.50; gnus-summary-exit from the transient search buffer giving error

From: Eric Abrahamsen <[email-masked]>
Date: Thu, 05 Aug 2021 10:56:32 -0700

Pankaj Jangid <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> Pankaj Jangid <[email-masked]> writes:
>>
>>> I think I have isolated the cause. And the error is cause by these lines
>>> in my ~/.emacs.d/init.el (only if ebdb package is installed):
>>>
>>> (when (package-installed-p 'ebdb)
>>>   (require 'ebdb-gnus)
>>>   (require 'ebdb-message))
>>>
>>>
>>> If I remove the package ebdb then the error goes away.
>>
>> That's pretty weird, as EBDB doesn't mess with Gnus marks at all.
>> Perhaps it is raising an error at some point, which is interrupting
>> nnselect's normal buffer setup? That's a completely wild guess.
>>
>> Maybe try setting `ebdb-mua-auto-update-p' to nil and try again?
>> Whatever damage EBDB might be doing to Gnus should be done in the auto
>> update process.
>>
>> But again, I can't even begin to guess why this would be happening.
>
> more weird things happening here.
>
> I have ‘ebdb-mua-auto-update-p’ set to nil in my config. This was
> already the case.
>
> But calling (describe-variable) on ‘ebdb-mua-auto-update’ shows this
> error with the following steps:
>
> Steps:
>
> 1. Start emacs afresh
>
> 2. (setq debug-on-error t)
>
> 3. Launch gnus
>
> 4. C-h v ebdb-mua-auto-update-p RET
>
> Result:
>
> Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "vm-autoloads")
>   require(vm-autoloads)

Still weird, but different weird! Nothing should attempt to load ebdb-vm
at all, so long as you're not requiring it, and I'm not sure why
scanning for variable docstrings would try to load it.

The top of ebdb-vm.el has:

(when t
  (require 'vm-autoloads)
  (require 'vm))

TBH I don't quite remember the point of the (when t) (did I inherit this
code?), but I seem to recall it prevents the requires from running
during compilation, they only run at load-time. At least, I think that
might be it.

Again I have no idea why that code would cause an error in your
situation, but I also wonder if it could just be removed: there's a pile
of declare-functions and defvars after that, that look like they should
be sufficient to cover all the code used in the file, maybe the
requires aren't needed at all.