Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
Hi Nicholas,
Чт 29 апр 2021 @ 13:54 Nicholas D Steeves <nsteeves@gmail.com>:
> Antoine Beaupré <anarcat@debian.org> writes:
>
>> That didn't work, but I manually bisected my .emacs.d/init.el file and
>> came up with this minimal reproducer:
>>
>> (when (require 'package nil t)
>> (setq-default
>> load-prefer-newer t
>> package-enable-at-startup nil)
>> (package-initialize)
>
> I wonder if this "(package-initialize)" line, while using Emacs >= 27 is
> exposing a bug in lsp-mode? Since Emacs 27 now automatically runs
> package-initialize in between the new early-init.el and the classic
> .emacs.el/init.el/etc, maybe lsp-mode has an autoload cookie that gets
> evaluated twice, leading to the broken state of the lsp sentinel?
> Alternatively, maybe lsp-mode now assumes we live in a post-Emacs 27
> world where all users have already dropped package-initialize from their
> configs?
>
> These Emacs >= 27 changes also affect the point in emacs init where
> package-enable-at-startup can be set:
>
> If non-nil, packages are made available before reading the init file
> (but after reading the early init file). This means that if you
> wish to set this variable, you must do so in the early init file.
>
> I think this bug is still valid and actionable even if removing
> package-initialize from the minimum reproducer, and/or after moving
> package-enable-at-startup to early-init.el makes the bug unreproducible.
> If nothing else, it seems like our src:emacs might need a NEWS entry on
> the topic, but that said, my suspicion is that lsp-mode could be more
> defensive.
That's interesting! Thanks for your input. I've tried Antoine's minimal
configuration and can confirm that commenting out (package-initialize)
resolves the problem. So, it really means that lsp-mode has an autoload
cookie which when evaluated twice causes the bug.
But now I wonder to which package should we assign the bug report,
lsp-mode, emacs, some other package?..
Cheers!
Lev
Reply to:
- References:
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Antoine Beaupre <anarcat@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Lev Lamberov <dogsleg@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Antoine Beaupré <anarcat@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Lev Lamberov <dogsleg@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Antoine Beaupré <anarcat@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Lev Lamberov <dogsleg@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Antoine Beaupré <anarcat@debian.org>
- Bug#987683: crashes with "Wrong type argument: (or eieio-object class), nil, obj"
- From: Nicholas D Steeves <nsteeves@gmail.com>