GNU bug report logs - #16003
24.3.50; "Stack overflow in equal" in advice--member-p

Previous Next

Package: emacs;

Reported by: Dmitry Gutov <dgutov <at> yandex.ru>

Date: Fri, 29 Nov 2013 18:04:01 UTC

Severity: normal

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 16003 <at> debbugs.gnu.org
Subject: Re: bug#16003: 24.3.50; "Stack overflow in equal" in advice--member-p
Date: Fri, 29 Nov 2013 14:09:02 -0500
> I've been getting this kind of errors lately.  Unfortunately, I've been
> unable to reproduce it from `emacs -Q' so far, but here are two
> backtraces, one from `vc-dir-mode', and another from
> `diff-hl-dired-mode'.

The patch below should avoid the problem.
But we really should try and improve `equal' not to fail this way.


        Stefan


=== modified file 'lisp/vc/vc-dispatcher.el'
--- lisp/vc/vc-dispatcher.el	2013-11-28 01:49:25 +0000
+++ lisp/vc/vc-dispatcher.el	2013-11-29 19:03:35 +0000
@@ -239,10 +239,12 @@
      ;; If a process is running, add CODE to the sentinel
      ((eq (process-status proc) 'run)
       (vc-set-mode-line-busy-indicator)
-      (letrec ((fun (lambda (p _msg)
-                      (remove-function (process-sentinel p) fun)
+      (let* ((funsym (make-symbol "fun"))
+             (fun (lambda (p _msg)
+                    (remove-function (process-sentinel p) funsym)
                       (vc--process-sentinel p code))))
-        (add-function :after (process-sentinel proc) fun)))
+        (fset funsym fun)
+        (add-function :after (process-sentinel proc) funsym)))
      (t (error "Unexpected process state"))))
   nil)
 





This bug report was last modified 11 years and 260 days ago.

Previous Next


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