GNU bug report logs - #17577
24.3.91; Error during redisplay prevent quitting.

Previous Next

Package: emacs;

Reported by: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>

Date: Sat, 24 May 2014 04:51:03 UTC

Severity: normal

Found in version 24.3.91

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

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 17577 in the body.
You can then email your comments to 17577 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#17577; Package emacs. (Sat, 24 May 2014 04:51:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thierry Volpiatto <thierry.volpiatto <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 24 May 2014 04:51:04 GMT) Full text and rfc822 format available.

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

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 06:50:26 +0200
Hi,

we have an issue in helm that prevent quitting with C-g and return a
error:

Error during redisplay: (eval (helm-show-candidate-number [...]

With this version of emacs (24.3.91) it is usable because I let-bounded
`pre-redisplay-function' to nil, but the message is still here, with
Emacs-24.4.50, quitting is nearly impossible, and the message contain
byte-code.
With emacs-24.3 it is working normally.
This is relatively recent.

This is happening when hitting C-g on a helm command that use an async
process, but only on the helm-locate command.

Another strange thing is when hitting C-g on a long helm-grep process,
C-g works normally but return "Emacs-lisp:" in the minibuffer when done.

To reproduce:(best from emacs-24.4.50)

1) install helm from git: 
   git-clone https://github.com/emacs-helm/helm.git
2) cd to helm
3) run make
4) ./emacs-helm.sh
5) C-x c l
6) Enter something in minibuffer (e.g "emacs") that lead to a long
   search and hit C-g (repeat to really quit).
7) Look the "Message" buffer so see error.
   The error is coming from safe_eval_handler in xdisp.c.

See Issue here for more details:

https://github.com/emacs-helm/helm/issues/522

Thanks.



In GNU Emacs 24.3.91.1 (x86_64-unknown-linux-gnu, X toolkit)
 of 2014-05-23 on dell-14z
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04 LTS

Configured using:
 `configure --with-x-toolkit=lucid --without-toolkit-scroll-bars
 --without-dbus --without-gconf --without-gsettings'

Important settings:
  value of $LANG: C
  locale-coding-system: utf-8-unix

Major mode: C

Minor modes in effect:
  diff-auto-refine-mode: t
  psession-mode: t
  golden-ratio-mode: t
  winner-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  auto-image-file-mode: t
  eldoc-in-minibuffer-mode: t
  show-paren-mode: t
  display-time-mode: t
  recentf-mode: t
  savehist-mode: t
  minibuffer-depth-indicate-mode: t
  helm-mode: t
  helm-descbinds-mode: t
  shell-dirtrack-mode: t
  helm-adaptative-mode: t
  helm-match-plugin-mode: t
  helm-occur-match-plugin-mode: t
  tooltip-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> d <down> d d d q q y C-x c l e m a c s <up> 
<up> <up> <up> <up> <down> <down> <down> <down> C-x 
C-² <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <up> <up> <up> <f8> U b 
u <return> n <return> <return> <return> <return> <return> 
<return> <return> C-x C-b <C-down> <C-down> <C-down> 
<C-down> <C-down> <C-down> <C-down> <up> <up> <up> 
<up> <up> <up> <return> C-< <return> q q q C-x C-² 
C-x c l e m a c s C-h C-e C-x C-f <left> <left> e m 
a <left> l i s <right> C-u C-s <return> e r r o r SPC 
d u r i n g C-g C-h C-e C-g C-x C-f <left> <left> e 
m C-x C-d <tab> <down> <down> <down> <down> C-u C-u 
C-s C-g C-u C-x C-f <return> <tab> <down> <down> <down> 
<down> <up> <up> <tab> C-x C-d <tab> <down> <down> 
<down> <down> C-u C-u <return> E r r o r SPC d u r 
i n g <down> <down> <down> <down> <down> <return> <up> 
<up> C-s C-w C-w C-w <down> <up> <down> <up> C-g C-M-SPC 
M-w M-x r e p o r t <return>

Recent messages:
Quit
Preparing diary...done
[mu4e] Retrieving mail...done
[mu4e] Indexing... processed 13000, updated 2
[mu4e] Indexing completed; processed 13348, updated 2, cleaned-up 0
[mu4e] mu4e-main-mode
[mu4e] Found 2 matching messages
Error during redisplay: (eval (helm-show-candidate-number (when (listp helm-mode-line-string) (car-safe helm-mode-line-string)))) signaled (quit)
Quit [3 times]
Mark set

Load-path shadows:
~/elisp/auctex/lpath hides ~/elisp/emacs-wget/lpath
/usr/local/share/emacs/24.3.91/lisp/emacs-lisp/tq hides ~/elisp/emms/lisp/tq

Features:
(shadow emacsbug cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs flow-fill mm-archive
gnus-html url-cache gnus-cite gnus-async gnus-bcklg gnus-ml nndraft nnmh
nnml nnfolder parse-time netrc gnutls network-stream starttls tls
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache cl-indent helm-eshell tabify imenu woman man helm-man
vc-annotate magit-blame helm-command mail-extr epa-mail smiley gnus-art
mm-uu mml2015 mm-view mml-smime smime dig w3m-form mule-util helm-ring
magit-cherry magit-bisect magit-log-edit log-edit add-log magit-key-mode
magit magit-version view ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff diff-mode magit-compat eieio-opt
help-mode tramp-sh conf-mode sh-script smie executable vc-rcs vc-git
naquadah-theme em-unix em-script em-prompt em-ls em-hist em-pred em-glob
em-dirs em-cmpl em-basic em-banner em-alias align-let git-gutter server
psession golden-ratio winner undo-tree diff image-file newsticker
newst-treeview newst-plainview newst-reader newst-ticker newst-backend
xdvi-search preview-latex tex-site auto-loads pcomplete-extension
em-term term disp-table ehelp helm-ipython helm-elisp helm-eval python
eldoc-eval warnings whitespace paren time recentf tree-widget savehist
mu4e-config org-mu4e helm-mu mu4e-contrib mu4e mu4e-speedbar speedbar
sb-image ezimage dframe mu4e-main mu4e-view mu4e-headers mu4e-compose
mu4e-draft mu4e-actions ido rfc2368 mu4e-mark mu4e-message html2text
mu4e-proc mu4e-utils mu4e-lists mu4e-about mu4e-vars mu4e-meta
gnus-dired nnir gnus-sum gnus-group gnus-undo nnmail mail-source
gnus-start gnus-spec gnus-int gnus-range gnus-win nnoo config-w3m
w3m-search w3m timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util w3m-load smtpmail-async smtpmail
sendmail dired-async iterator iedit-rect iedit iedit-lib smallurl mm-url
gnus gnus-ems nnheader wid-edit rectangle-utils rect ledger-config
ledger esh-var esh-io esh-cmd esh-opt esh-ext esh-proc eldoc esh-groups
eshell esh-module esh-mode esh-arg esh-util tv-utils async pcvs vc-cvs
pcvs-parse pcvs-info pcvs-defs pcvs-util ewoc mb-depth cl-info
slime-autoloads esh-toggle flymake no-word htmlize cl dired-extension
emms-mpd-config emms-playlist-limit emms-volume emms-volume-amixer
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd tq emms-playing-time emms-lyrics emms-url hl-line
emms-tag-editor emms-mark emms-mode-line emms-cache emms-info-ogginfo
emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mplayer
emms-info emms-streams later-do emms-source-playlist emms-source-file
emms-player-simple emms-setup emms emms-compat org-config-thierry ob-sh
org-crypt cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew
holidays hol-loaddefs appt diary-lib diary-loaddefs org-element
org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view
jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m org-agenda
org-annotation-helper addressbook-bookmark message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev mail-utils gmm-utils mailheader firefox-protocol
bookmark-firefox-handler bookmark-extensions org org-macro org-footnote
org-pcomplete org-list org-faces org-entities noutline outline
easy-mmode org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob
ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs init-helm-thierry
helm-mode helm-dictionary helm-ls-git helm-descbinds helm-ls-hg
helm-files image-dired tramp tramp-compat tramp-loaddefs trampver shell
pcomplete format-spec dired-x dired-aux ffap thingatpt helm-buffers
helm-elscreen helm-tags helm-bookmark helm-adaptative helm-info helm-net
browse-url xml url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util url-parse url-vars mailcap
helm-plugin bookmark pp helm-help helm-match-plugin helm-grep wgrep-helm
wgrep helm-regexp grep helm-external helm-utils dired compile comint
ansi-color ring helm-locate helm vc vc-dispatcher helm-config
helm-aliases epa-file epa derived epg epg-config auth-source eieio
byte-opt bytecomp byte-compile cconv eieio-core gnus-util time-date
mm-util mail-prsvr password-cache package avoid cus-start cus-load info
easymenu cl-macs gv edmacro kmacro advice help-fns net-utils cl-loaddefs
cl-lib tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process gfilenotify dynamic-setting
font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 844064 70139)
 (symbols 48 62961 0)
 (miscs 40 3559 655)
 (strings 32 177777 25521)
 (string-bytes 1 5667382)
 (vectors 16 71888)
 (vector-slots 8 1983908 164451)
 (floats 8 2618 1028)
 (intervals 56 68268 430)
 (buffers 960 186)
 (heap 1024 70116 6693))
-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 07:39:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 10:38:16 +0300
> From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
> Date: Sat, 24 May 2014 06:50:26 +0200
> 
> we have an issue in helm that prevent quitting with C-g and return a
> error:
> 
> Error during redisplay: (eval (helm-show-candidate-number [...]

Please look in the helm code to find this eval expression.  The
problem is likely there.  In a nutshell, some helm code seems to be
incompatible with pre-redisplay-function (probably something related
to region or some such, but that's just a guess at this time).

> With this version of emacs (24.3.91) it is usable because I let-bounded
> `pre-redisplay-function' to nil, but the message is still here, with
> Emacs-24.4.50, quitting is nearly impossible, and the message contain
> byte-code.
> With emacs-24.3 it is working normally.
> This is relatively recent.
> 
> This is happening when hitting C-g on a helm command that use an async
> process, but only on the helm-locate command.
> 
> Another strange thing is when hitting C-g on a long helm-grep process,
> C-g works normally but return "Emacs-lisp:" in the minibuffer when done.
> 
> To reproduce:(best from emacs-24.4.50)

See above: please investigate helm code some more, it shouldn't be
necessary for us to install helm to find the offending code.  You are
the helm maintainer, so you are in a much better position to find the
offending code there.

Once the code is found, please show it here, and we can take it from
there, perhaps asking you a few questions.

Thank you.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 10:29:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 13:28:23 +0300
> From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
> Date: Sat, 24 May 2014 10:43:33 +0200
> 
> 
> The function is `helm-show-candidate-number', it is evaluated in
> `helm-display-mode-line'.
> 
> 
>         (setq mode-line-format
>               `(" " mode-line-buffer-identification " "
>                     (line-number-mode "L%l") " " ,follow
>                     (:eval (when ,helm--mode-line-display-prefarg
>                              (let ((arg (prefix-numeric-value (or prefix-arg
>                                                                   current-prefix-arg))))
>                                (unless (= arg 1)
>                                  (propertize (format "[prefarg:%s] " arg)
>                                              'face 'helm-prefarg)))))
>                     (:eval (helm-show-candidate-number
>                             (when (listp helm-mode-line-string)
>                               (car-safe helm-mode-line-string))))
>                     " " helm-mode-line-string-real " -%-")
> 

What does helm-show-candidate-number do that causes the problem,
though?

> I knowed you will say that, I will fix this on my side like I do
> usually, it is already done anyway.
> Expect other bugs outside of helm with this.

Let's not hurry too much here, OK?  I just asked for the details to be
able to discuss the problem without having to study helm too much.  I
didn't mean to imply that the problem must necessarily be solved in
helm.  Apologies if my wording somehow implied that.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 11:07:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: thierry.volpiatto <at> gmail.com
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 14:07:05 +0300
> From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
> Date: Sat, 24 May 2014 06:50:26 +0200
> 
> we have an issue in helm that prevent quitting with C-g and return a
> error:
> 
> Error during redisplay: (eval (helm-show-candidate-number [...]

On second thought, perhaps I don't understand  what is considered to
be a bug here.  AFAIU from the discussion here:

  https://github.com/emacs-helm/helm/issues/522

the problem is that C-g during "a long search" doesn't exit helm.  Is
that true?  IOW, if you don't type C-g, is everything working
correctly, as it did in Emacs 24.3?

Or does the problem happen even if one doesn't type C-g?  If so, what
are the manifestations of the problem?  (The error shown in the above
URL clearly talks about a quit.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 15:51:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 11:50:08 -0400
For:

  Error during redisplay: (#[128 "\300\301\"\210\300\302\"\207" [apply redisplay--update-region-highlights ignore nil] 4 nil nil] (#<window 174 on *helm locate*>)) signaled (quit)

the problem is probably that xdisp.c should set inhibit-quit while
running pre-redisplay-function.

But you also quote:

> Error during redisplay: (eval (helm-show-candidate-number [...]

This doesn't come from pre-redisplay-function but from updating the
mode-line, and I can't remember modifying this code.  And it seems that
this code has never run with inhibit-quit.  At least, that's what

(setq header-line-format '("" (:eval (format "inhibit-quit=%S" inhibit-quit))))

tells me in Emacs-23.4.  Actually, I see that inhibit-quit is also nil
while running jit-lock, which baffles me.  But indeed, if I add a slow
font-lock rule and hit C-g while it's processing that rule, I get:

   Error during redisplay: (quit)

So I wonder why this is new.  My best explanation is that it's actually
not new, but for some odd reason the timing has changed such that it
happens more often now.

> With this version of emacs (24.3.91) it is usable because I let-bounded
> `pre-redisplay-function' to nil,

Since pre-redisplay-function is new in 24.4, it's important we fix the
bugs it introduces, so please remove this workaround from helm.el.

>                     (:eval (helm-show-candidate-number
>                             (when (listp helm-mode-line-string)
>                               (car-safe helm-mode-line-string))))

The "when" check is redundant.

> but the message is still here, with Emacs-24.4.50, quitting is nearly
> impossible, and the message contain byte-code.

Sounds like the pre-redisplay-function message, then.  This one is
indeed new.

> Another strange thing is when hitting C-g on a long helm-grep process,
> C-g works normally but return "Emacs-lisp:" in the minibuffer when done.

Hmm... grepping around, "Emacs-lisp:" seems extremely unlikely, but
maybe you meant "Emacs-Lisp:" which I guess could potentially come from
the rarely used "menu in echo area" feature, i.e. "Emacs-Lisp" would
come from the name of a keymap.  Why/how this happens, I don't know.

I installed the patch below into the `emacs-24' branch.  Could you try
it and see if it solves the problem for you?


        Stefan


=== modified file 'src/ChangeLog'
--- src/ChangeLog	2014-05-22 05:00:39 +0000
+++ src/ChangeLog	2014-05-24 15:48:59 +0000
@@ -1,3 +1,11 @@
+2014-05-24  Stefan Monnier  <monnier <at> iro.umontreal.ca>
+
+	* xdisp.c: Bind inhibit-quit during pre-redisplay-function.
+	(safe__call, safe__call1, safe__eval): New functions.
+	(safe_call): Use it.
+	(prepare_menu_bars): Use it for pre-redisplay-function (bug#17577).
+	(display_mode_element): Same for `:eval'.
+
 2014-05-22  Paul Eggert  <eggert <at> cs.ucla.edu>
 
 	Fix port to 32-bit AIX (Bug#17540).

=== modified file 'src/xdisp.c'
--- src/xdisp.c	2014-05-21 15:03:18 +0000
+++ src/xdisp.c	2014-05-24 15:45:51 +0000
@@ -2591,8 +2591,8 @@
    following.  Return the result, or nil if something went
    wrong.  Prevent redisplay during the evaluation.  */
 
-Lisp_Object
-safe_call (ptrdiff_t nargs, Lisp_Object func, ...)
+static Lisp_Object
+safe__call (bool inhibit_quit, ptrdiff_t nargs, Lisp_Object func, ...)
 {
   Lisp_Object val;
 
@@ -2615,6 +2615,8 @@
       GCPRO1 (args[0]);
       gcpro1.nvars = nargs;
       specbind (Qinhibit_redisplay, Qt);
+      if (inhibit_quit)
+	specbind (Qinhibit_quit, Qt);
       /* Use Qt to ensure debugger does not run,
 	 so there is no possibility of wanting to redisplay.  */
       val = internal_condition_case_n (Ffuncall, nargs, args, Qt,
@@ -2626,6 +2628,11 @@
   return val;
 }
 
+Lisp_Object
+safe_call (ptrdiff_t nargs, Lisp_Object func, ...)
+{
+  return safe__call (false, nargs, func);
+}
 
 /* Call function FN with one argument ARG.
    Return the result, or nil if something went wrong.  */
@@ -2633,7 +2640,13 @@
 Lisp_Object
 safe_call1 (Lisp_Object fn, Lisp_Object arg)
 {
-  return safe_call (2, fn, arg);
+  return safe__call (false, 2, fn, arg);
+}
+
+Lisp_Object
+safe__call1 (bool inhibit_quit, Lisp_Object fn, Lisp_Object arg)
+{
+  return safe__call (inhibit_quit, 2, fn, arg);
 }
 
 static Lisp_Object Qeval;
@@ -2641,7 +2654,13 @@
 Lisp_Object
 safe_eval (Lisp_Object sexpr)
 {
-  return safe_call1 (Qeval, sexpr);
+  return safe__call1 (false, Qeval, sexpr);
+}
+
+Lisp_Object
+safe__eval (bool inhibit_quit, Lisp_Object sexpr)
+{
+  return safe__call1 (inhibit_quit, Qeval, sexpr);
 }
 
 /* Call function FN with two arguments ARG1 and ARG2.
@@ -11549,7 +11568,7 @@
 		}
 	    }
 	}
-      safe_call1 (Vpre_redisplay_function, windows);
+      safe__call1 (true, Vpre_redisplay_function, windows);
     }
 
   /* Update all frame titles based on their buffer names, etc.  We do
@@ -21863,7 +21882,7 @@
 	    if (CONSP (XCDR (elt)))
 	      {
 		Lisp_Object spec;
-		spec = safe_eval (XCAR (XCDR (elt)));
+		spec = safe__eval (true, XCAR (XCDR (elt)));
 		n += display_mode_element (it, depth, field_width - n,
 					   precision - n, spec, props,
 					   risky);





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 17:28:02 GMT) Full text and rfc822 format available.

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

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 19:27:14 +0200
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

> This doesn't come from pre-redisplay-function but from updating the
> mode-line, and I can't remember modifying this code.  And it seems that
> this code has never run with inhibit-quit.  At least, that's what
>
> (setq header-line-format '("" (:eval (format "inhibit-quit=%S" inhibit-quit))))
>
> tells me in Emacs-23.4.  Actually, I see that inhibit-quit is also nil
> while running jit-lock, which baffles me.  But indeed, if I add a slow
> font-lock rule and hit C-g while it's processing that rule, I get:
>
>    Error during redisplay: (quit)
>
> So I wonder why this is new.  My best explanation is that it's actually
> not new, but for some odd reason the timing has changed such that it
> happens more often now.

This one is indeed not new, the new thing is quit is involved here, and
it seems your patch fix the issue with redisplay and this one too, don't
know why though.

> Since pre-redisplay-function is new in 24.4, it's important we fix the
> bugs it introduces, so please remove this workaround from helm.el.

Done.

> The "when" check is redundant.

Indeed yes, a vestige of code using only car, thanks.

> Hmm... grepping around, "Emacs-lisp:" seems extremely unlikely, but
> maybe you meant "Emacs-Lisp:" which I guess could potentially come from
> the rarely used "menu in echo area" feature, i.e. "Emacs-Lisp" would
> come from the name of a keymap.  Why/how this happens, I don't know.

I don't know too, seems fixed now after updating emacs-24 branch, same,
don't know why.

> I installed the patch below into the `emacs-24' branch.  Could you try
> it and see if it solves the problem for you?

Yes it is fixed, many thanks for this.

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 18:30:04 GMT) Full text and rfc822 format available.

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

From: Ken Brown <kbrown <at> cornell.edu>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>,
 Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 17577 <at> debbugs.gnu.org
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 14:29:44 -0400
On 5/24/2014 11:50 AM, Stefan Monnier wrote:
> I installed the patch below into the `emacs-24' branch.

This patch is causing a problem with emacsclient, at least on Cygwin. 
I've tested both the GTK build and the w32 build.  To reproduce:

$ emacs --daemon -Q
Starting Emacs daemon.

$ emacsclient.exe -c
Waiting for Emacs...

Now do `C-x 5 0' to close the client window; emacsclient is still 
running and has to be killed from the shell.

Ken




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 19:22:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: 17577 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca,
 thierry.volpiatto <at> gmail.com
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 22:20:58 +0300
> Date: Sat, 24 May 2014 14:29:44 -0400
> From: Ken Brown <kbrown <at> cornell.edu>
> Cc: 17577 <at> debbugs.gnu.org
> 
> On 5/24/2014 11:50 AM, Stefan Monnier wrote:
> > I installed the patch below into the `emacs-24' branch.
> 
> This patch is causing a problem with emacsclient, at least on Cygwin. 
> I've tested both the GTK build and the w32 build.  To reproduce:
> 
> $ emacs --daemon -Q
> Starting Emacs daemon.
> 
> $ emacsclient.exe -c
> Waiting for Emacs...
> 
> Now do `C-x 5 0' to close the client window; emacsclient is still 
> running and has to be killed from the shell.

On w32, Emacs crashed at startup.

I think I fixed this, please try the latest branch.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 20:40:02 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: 17577 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 16:39:20 -0400
>> I installed the patch below into the `emacs-24' branch.
> This patch is causing a problem with emacsclient, at least on Cygwin. I've
> tested both the GTK build and the w32 build.  To reproduce:

> $ emacs --daemon -Q
> Starting Emacs daemon.

> $ emacsclient.exe -c
> Waiting for Emacs...

> Now do `C-x 5 0' to close the client window; emacsclient is still running
> and has to be killed from the shell.

Hmm... I can't imagine how this patch could have such an effect.
Can you confirm that the problem appears really with this precise patch
rather than some other one applied recently?


        Stefan




bug closed, send any further explanations to 17577 <at> debbugs.gnu.org and Thierry Volpiatto <thierry.volpiatto <at> gmail.com> Request was from Stefan Monnier <monnier <at> iro.umontreal.ca> to control <at> debbugs.gnu.org. (Sat, 24 May 2014 21:29:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17577; Package emacs. (Sat, 24 May 2014 22:14:01 GMT) Full text and rfc822 format available.

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

From: Ken Brown <kbrown <at> cornell.edu>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 17577 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#17577: 24.3.91; Error during redisplay prevent quitting.
Date: Sat, 24 May 2014 18:13:44 -0400
On 5/24/2014 4:39 PM, Stefan Monnier wrote:
>>> I installed the patch below into the `emacs-24' branch.
>> This patch is causing a problem with emacsclient, at least on Cygwin. I've
>> tested both the GTK build and the w32 build.  To reproduce:
>
>> $ emacs --daemon -Q
>> Starting Emacs daemon.
>
>> $ emacsclient.exe -c
>> Waiting for Emacs...
>
>> Now do `C-x 5 0' to close the client window; emacsclient is still running
>> and has to be killed from the shell.
>
> Hmm... I can't imagine how this patch could have such an effect.
> Can you confirm that the problem appears really with this precise patch
> rather than some other one applied recently?

I could double-check, but the point is moot now.  Eli's patch (rev 
117148) fixed it.

Ken




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

This bug report was last modified 9 years and 310 days ago.

Previous Next


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