Subject: bug#61667: 29.0.60; Failure to redisplay

From: Dmitry Gutov <[email-masked]>
Date: Fri, 24 Feb 2023 15:12:53 +0200

On 23/02/2023 18:46, Dmitry Gutov wrote:
> Here's one repro:
> 
> emacs -Q --eval "(tool-bar-mode -1)" --eval "(menu-bar-mode -1)" --eval 
> "(scroll-bar-mode -1)" --eval "(global-set-key \"a\" (lambda () 
> (interactive) (find-file \"test.c\")))"
> 
> Where "test.c" is the name of a file in the current dir. Different files 
> can work, but for some the repro doesn't happen, like those, apparently, 
> which start with a paren (which makes show-paren-mode trigger its own 
> redisplay).
> 
> So, to repro:
> 
> - Run the command above
> - Press "a"
> - Look for the delay between the title bar and the window updates
> 
> With the above 'emacs -Q' it's not as prominent as with my config, but 
> it can reach what looks like 100-200ms. Once every 10 tries or so.
> 
> This particular scenario, however, I haven't been able to repro with 
> Emacs 25 or 26 or 27. It does reproduce with Emacs 28 and 29.

So, I finished bisecting, at it points to:

817dd546497aadefbe9acc8762e3f7190799c5e6 is the first bad commit
commit 817dd546497aadefbe9acc8762e3f7190799c5e6
Author: Stefan Kangas <[email-masked]>
Date:   Sun Sep 13 18:24:31 2020 +0200

     Improve frame-title-format and icon-title-format

     * src/xdisp.c (syms_of_xdisp): Replace 'invocation-name' with the text
     "%b - GNU Emacs" and replace "@" with " at ".  (Bug#41147)
     * etc/NEWS: Announce the above change.

  etc/NEWS    | 11 +++++++++++
  src/xdisp.c |  3 +--
  2 files changed, 12 insertions(+), 2 deletions(-)

Triple-checked that as well: the commit before it doesn't reproduce the 
above scenario, and this one does.

Looking at the commit, there is another difference in behavior too:

- With this commit, all is as described previously: I press 'a', window 
title changes, there is a delay (randomly), then the window contents change.

- Before this commit: the window title doesn't change, it's always 
emacs@hostname. But when I press 'a' (bound to 'find-file' lambda), 
there never is a noticeable delay before the window contents change. The 
buffer is displayed instantly.