Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs

From: Len Trigg <[email-masked]>
Date: Sun, 29 Dec 2024 08:55:51 +1300

On Sat, 28 Dec 2024 at 20:52, Eli Zaretskii <[email-masked]> wrote:

> Could you please extend your recipe so it starts from "emacs -nw -Q"?
> See, I don't have posframe or elpaca installed and don't use them, and
> don't want to install them just to reproduce and debug this problem.
>

Unless there's something I'm missing, the init file and startup command I
provided did the installation of those files for you into a temporary
directory, so I thought that was the easiest self-contained path to
reproducing. Let me assume you've run it once that way initially in order
to fetch the packages (otherwise you can manually download the files if you
want and adjust the paths in the below command line, but be aware that you
need new enough versions of posframe that understands tty child frame).
Then to get a "emacs -nw -Q" initialization you can use the attached
test.el to do:

emacs -nw -Q --init-directory=~/emacs-test -l
~/emacs-test/elpaca/repos/vertico/vertico.el -l
~/emacs-test/elpaca/repos/vertico/extensions/vertico-multiform.el -l
~/emacs-test/elpaca/repos/posframe/posframe.el -l
~/emacs-test/elpaca/repos/vertico-posframe/vertico-posframe.el  test.el

Then manually "eval" the remaining commands in test.el
(in another terminal) emacsclient -nw
Then invoke the child frame pop up: (C-x b and C-n to select *Messages* and
RET). Now we're no longer in a minibuffer.
Switch back to the original emacs terminal
Invoke the child frame pop up: (C-x b and C-n to select *Messages* and
RET). Now we're no longer in a minibuffer.
Swap to the emacsclient terminal, and note that the client is "hung".

I think this gives a specific enough recipe to minimally reproduce.