Subject: bug#17975: 24.3.92; assertion failure deleting frames with varying names for the same display (and, using multiple X11 connections in that case too)

From: Dmitry Antipov <[email-masked]>
Date: Mon, 14 Jul 2014 11:23:36 +0400

On 07/14/2014 09:13 AM, Ken Raeburn wrote:

> Would it not be enough to do a similar canonicalization of $DISPLAY
> and the make-frame-on-display argument, if that was enough in emacsclient?

Probably no - the following example also crashes:

./src/emacs -Q --eval '(let ((f (selected-frame))) (make-frame-on-display ":1.0") (delete-frame f))'

where :1.0 is Xnest running on the same machine.

> I don't think it would be practical for me to run a patched X11 at work. I was going to run a test at home,
> but my home GNU/Linux setup (Debian "wheezy" distro) seems to have a newer X11 package (1.5.0, with patches
> including ximcp/imLcPrs.c and imTrX.c but not imInsClbk.c) than the one at work (Ubuntu "precise" distro,
> 1.4.99.1 with patches), and I haven't been able to reproduce the problem yet.

I tried both stock Fedora 20 libX11-1.6.1 and 1.6.2 recompiled from rawhide,
and was able to reproduce with both.

This mess raises up an old question: should Emacs treat localhost:0/unix:0/:0.0/:0 etc.
like the same display and has the only connection for all of them? It was discussed a long
time ago, at least at http://lists.gnu.org/archive/html/emacs-devel/2011-10/msg00363.html.

Dmitry