GNU bug report logs - #48492
[PATCH] Fix wrong-type-argument error while loading pdump file

Previous Next

Package: emacs;

Reported by: Gong Qijian <gongqijian <at> gmail.com>

Date: Tue, 18 May 2021 01:44:04 UTC

Severity: normal

Tags: fixed, patch

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 48492 in the body.
You can then email your comments to 48492 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#48492; Package emacs. (Tue, 18 May 2021 01:44:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Gong Qijian <gongqijian <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 18 May 2021 01:44:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gong Qijian <gongqijian <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Gong Qijian <gongqijian <at> gmail.com>
Subject: [PATCH] Fix wrong-type-argument error while loading pdump file
Date: Mon, 17 May 2021 20:31:58 +0800
* lisp/startup.el(command-line): Don't reverse the
`custom-delayed-init-variables` if it's a non-list.

This issue was introduced by commit 2fb271ca "Fix unload+reload of
files using `custom-initialize-delay` (bug#47072)" which changed the
initial value of `custom-delayed-init-variables` from nil to t.

Steps to reproduce:

⋊> ./src/emacs --batch --eval '(dump-emacs-portable "dump")' && \
   ./src/emacs --dump-file=dump -nw -Q --batch
Debugger entered--Lisp error: (wrong-type-argument arrayp t)
  command-line()
  normal-top-level()
---
 lisp/startup.el | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/lisp/startup.el b/lisp/startup.el
index bb25c1b7..0df4fe02 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1197,12 +1197,13 @@ command-line
 
   ;; Re-evaluate predefined variables whose initial value depends on
   ;; the runtime context.
-  (setq custom-delayed-init-variables
-        ;; Initialize them in the same order they were loaded, in case there
-        ;; are dependencies between them.
-        (nreverse custom-delayed-init-variables))
-  (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
-  (setq custom-delayed-init-variables t)
+  (when (listp custom-delayed-init-variables)
+    (setq custom-delayed-init-variables
+          ;; Initialize them in the same order they were loaded, in case there
+          ;; are dependencies between them.
+          (nreverse custom-delayed-init-variables))
+    (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
+    (setq custom-delayed-init-variables t))
 
   ;; Warn for invalid user name.
   (when init-file-user
-- 
2.25.0





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#48492; Package emacs. (Tue, 18 May 2021 14:39:01 GMT) Full text and rfc822 format available.

Message #8 received at 48492 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Gong Qijian <gongqijian <at> gmail.com>
Cc: 48492 <at> debbugs.gnu.org
Subject: Re: bug#48492: [PATCH] Fix wrong-type-argument error while loading
 pdump file
Date: Tue, 18 May 2021 16:37:52 +0200
Gong Qijian <gongqijian <at> gmail.com> writes:

> This issue was introduced by commit 2fb271ca "Fix unload+reload of
> files using `custom-initialize-delay` (bug#47072)" which changed the
> initial value of `custom-delayed-init-variables` from nil to t.

[...]

> -  (setq custom-delayed-init-variables
> -        ;; Initialize them in the same order they were loaded, in case there
> -        ;; are dependencies between them.
> -        (nreverse custom-delayed-init-variables))
> -  (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
> -  (setq custom-delayed-init-variables t)
> +  (when (listp custom-delayed-init-variables)
> +    (setq custom-delayed-init-variables
> +          ;; Initialize them in the same order they were loaded, in case there
> +          ;; are dependencies between them.
> +          (nreverse custom-delayed-init-variables))
> +    (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
> +    (setq custom-delayed-init-variables t))

Thanks -- I've applied this with a change: The pre-patched version would
set `custom-delayed-init-variables' to t always, but with this patch,
it's only set if `custom-delayed-init-variables' is a proper list.  So I
moved the last setq out of the `when'.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) fixed. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Tue, 18 May 2021 14:39:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 28.1, send any further explanations to 48492 <at> debbugs.gnu.org and Gong Qijian <gongqijian <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Tue, 18 May 2021 14:39:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#48492; Package emacs. (Tue, 18 May 2021 14:49:02 GMT) Full text and rfc822 format available.

Message #15 received at 48492 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: 48492 <at> debbugs.gnu.org
Cc: Gong Qijian <gongqijian <at> gmail.com>
Subject: Re: master ab20f38: Fix `custom-delayed-init-variables' problem
 when re-dumping emacs
Date: Tue, 18 May 2021 10:48:16 -0400
>     * lisp/startup.el (command-line): Don't bug out on redumping Emacs
>     (bug#48492).
[...]
> @@ -1197,11 +1197,11 @@ please check its value")
>  
>    ;; Re-evaluate predefined variables whose initial value depends on
>    ;; the runtime context.
> -  (setq custom-delayed-init-variables
> -        ;; Initialize them in the same order they were loaded, in case there
> -        ;; are dependencies between them.
> -        (nreverse custom-delayed-init-variables))
> -  (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
> +  (when (listp custom-delayed-init-variables)
> +    (mapc #'custom-reevaluate-setting
> +          ;; Initialize them in the same order they were loaded, in
> +          ;; case there are dependencies between them.
> +          (reverse custom-delayed-init-variables)))
>    (setq custom-delayed-init-variables t)
>  
>    ;; Warn for invalid user name.

While this is a good short term fix, I think what we would ideally want
instead is that those settings be re-evaluated yet-again when we start
the re-dumped Emacs.

So maybe instead of setting the var to t, we should use another var to
denote that we've already init'd those vars (and re-set that other var
some time when we redump).


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#48492; Package emacs. (Tue, 18 May 2021 15:15:02 GMT) Full text and rfc822 format available.

Message #18 received at 48492 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: 48492 <at> debbugs.gnu.org
Cc: Gong Qijian <gongqijian <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: bug#48492: master ab20f38: Fix `custom-delayed-init-variables'
 problem when re-dumping emacs
Date: Tue, 18 May 2021 17:13:52 +0200
Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:

> So maybe instead of setting the var to t, we should use another var to
> denote that we've already init'd those vars (and re-set that other var
> some time when we redump).

Yeah, overloading `custom-delayed-init-variables' with two different
semantics is a bit awkward.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 16 Jun 2021 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 363 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.