Subject: bug#72517: 31.0.50; [PATCH] Close X connection upon deletion of last emacsclient frame

From: Po Lu <[email-masked]>
Date: Thu, 08 Aug 2024 15:23:56 +0800

Eli Zaretskii <[email-masked]> writes:

>> From: Thomas Fitzsimmons <[email-masked]>
>> Date: Wed, 07 Aug 2024 20:47:48 -0400
>> 
>> The attached patch fixes an issue reported on the mailing list [1].
>> After quitting a remote "emacsclient -c" frame using C-x 5 0, the SSH
>> session will hang on exit.  It is waiting for the X11 display connection
>> to be closed, but Emacs never closes it.
>> 
>> I have been using this patch for a few months without issue, with the
>> Lucid toolkit, running "emacsclient -c" over a remote X11 connection.
>> 
>> I just retested it on master (423c86cbde7b1ed1d42c7e21fef6e8be872857b0)
>> with "./configure --with-x-toolkit=lucid" and it works for me.
>> 
>> I would like others who use remote X11 emacsclient to try the patch, to
>> make sure it does not introduce crashes, error messages or warnings.  If
>> it works for others, I can push the patch to master.
>
> Thanks, but "ssh -X" is not the only way of starting a remote client
> session, is it?  How do we know closing the X connection is TRT in all
> the cases, and cannot do any harm in some use cases other than yours?
>
> I'm also surprised that such a fundamental problem is raised only now,
> when remote connections existed for decades.  Are you saying this is a
> regression due to some recent change we installed?  If not, how come
> this went undetected for so many years?
>
> Po Lu, any comments or suggestions?

The issue that ought to be fixed is emacsclient's waiting for the
display connection to be closed before exiting, as the automatic closure
of connections without frames is expressly disabled on X toolkit builds,
since closing a display connection is liable to induce crashes in the X
toolkit.  Unless I misunderstand Thomas and it is ssh that is refusing
to exit.