Subject: Re: bug#61667: 29.0.60; Failure to redisplay

From: Po Lu <[email-masked]>
Date: Fri, 03 Mar 2023 08:54:43 +0800

Dmitry Gutov <[email-masked]> writes:

> I've done so further investigation. Started with trying to find out
> which part of x_set_name_internal causes the problem. Commented out
> this or that call, and none seemed to make a difference.
>
> So I commented out both existing calls to x_set_name_internal: in
> x_set_name and x_set_title. Recompiled -- and the problem still
> reproduces.
>
> Then I added --eval "(setq frame-title-format \"aaa\")" to the command
> line, which we previously identified as potential fix/workaround --
> the problem _still_ reproduces. The frequency seems to be ~the same as
> without it, as long as the x_set_name_internal calls are commented
> out.
>
> With x_set_name_internal not commented out, (setq frame-title-format
> "aaa") seems to lower the frequency of the issue, which coupled with
> blink-cursor-mode (which was previously on, and which fires timers
> over regular intervals) made it rare enough for me to declare the
> problem absent. And also this addition, which now seems to make the
> problem _more_ likely to happen"
>
>   --eval "(add-hook 'find-file-hook #'redisplay t)
>
> So I went back to the previous Emacs versions.
>
> This MRE:
>
>   src/emacs -Q --eval "(tool-bar-mode -1)" --eval "(menu-bar-mode -1)"
>   --eval "(scroll-bar-mode -1)" --eval "(global-set-key \"a\" (lambda
>   () (interactive) (insert \"!\") (redisplay) (find-file
>   \"xassociations.rb\") ))" --eval "(add-hook 'find-file-hook
>   #'redisplay t)" --eval "(blink-cursor-mode -1 )" --eval "(setq
>   frame-title-format \"aaa\")"
>
>   Press 'a'. See if the buffer is displayed after a delay.

Could you send me xassociations.rb?  I can't reproduce this with any
file of my own.

> reproduces (though a little less frequently) in Emacs 28, 27, 26
>
> In 26 it happened ~5 times over 100 tries.
>
> It doesn't seem to reproduce in Emacs 25, though that version is
> pretty buggy here: it tends to hang during startup (around 1 in 6
> times) and I have to pass --eval "(set-frame-size nil 40 18)" for its
> window to have a reasonable size.

I'm not surprised: Emacs 25 doesn't support double buffering.

> --eval "(modify-frame-parameters nil '((undecorated . t)))", OTOH, we
>   can also cross out from the list of fixes: the problem still happens
>   with it, though seemingly less often (first repro at the 15th try).

OK, thanks.  Damned blink-cursor-mode!  Does the frame still refresh
when you hover over the title bar buttons?

Also, since we now know blink-cursor-mode was previously screwing with
the results, would you please try some other window manager again and
see if the problem reproduces without GNOME?