GNU bug report logs -
#30846
26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)'
Previous Next
Reported by: Noam Postavsky <npostavs <at> gmail.com>
Date: Sun, 18 Mar 2018 13:11:02 UTC
Severity: normal
Found in version 26.0.91
Fixed in versions 27.1, 26.2
Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 30846 <at> debbugs.gnu.org (full text, mbox):
> From: Noam Postavsky <npostavs <at> gmail.com>
> Date: Sun, 18 Mar 2018 09:10:41 -0400
>
> Evaluate the following from 'emacs -Q':
>
> (setq-local foo 1)
>
> ;; Simulate (debug-watch 'foo) + continue from *Backtrace*
> (add-variable-watcher 'foo (lambda (symbol newval operation where)
> (with-temp-buffer
> (kill-all-local-variables))))
> (fundamental-mode)
>
> This results in
>
> ../../src/data.c:98: Emacs fatal error: assertion failed: found == !EQ (blv->defcell, blv->valcell)
>
> Backtrace attached. I guess it has something to do with the recursive
> `kill-all-local-variables' call, although I'm not familiar enough with
> the local variable machinery to say more about it.
Do you mean that the inner call to kill-all-local-variables steps on
toes of the outer call, and thus corrupts the local values or
something? If so, do you see any signs of such a corruption? Because
otherwise maybe the assertion is wrong?
This bug report was last modified 6 years and 348 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.