Subject: bug#30846: closed (Re: bug#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)')

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 23 Mar 2018 15:30:02 +0000

Your bug report

#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)'

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

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

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

Subject: Re: bug#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)'
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Cc: Noam Postavsky <[email-masked]>
Date: Fri, 23 Mar 2018 11:29:55 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 27.1

> The patch doesn't only fix this problem, it also changes the time at
> which we run the watcher: in the current emacs-26 code,

Installed into master,

        Stefan

Subject: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)'
From: Noam Postavsky <[email-masked]>
To: [email-masked]
Date: Sun, 18 Mar 2018 09:10:41 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

In GNU Emacs 26.0.91 (build 54, x86_64-pc-linux-gnu, X toolkit, Xaw scroll bars)
 of 2018-03-18 built on zebian
Repository revision: 10bd3b3af8acfc226acadc654298865cffc19cc9

Configured using:
 'configure --cache-file=../../debug-config.cache 'CC=ccache gcc'
 'CFLAGS=-O0 -g3 -march=native' --enable-checking=yes
 --enable-check-lisp-object-type --with-x-toolkit=lucid
 --with-toolkit-scroll-bars --with-gif=no --with-jpeg=no'