GNU bug report logs - #75056
31.0.50; tty-child-frames with server / multiple clients possible hangs

Previous Next

Package: emacs;

Reported by: Len Trigg <lenbok <at> gmail.com>

Date: Tue, 24 Dec 2024 05:44:02 UTC

Severity: normal

Found in version 31.0.50

Full log


View this message in rfc822 format

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Len Trigg <lenbok <at> gmail.com>, 75056 <at> debbugs.gnu.org
Subject: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs
Date: Thu, 23 Jan 2025 18:34:25 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Len Trigg <lenbok <at> gmail.com>
>> Date: Fri, 24 Jan 2025 05:00:33 +1300
>> Cc: gerd.moellmann <at> gmail.com, 75056 <at> debbugs.gnu.org
>> 
>> #0  combine_updates_for_frame (f=f <at> entry=0x555556ca8d58,
>> inhibit_scrolling=inhibit_scrolling <at> entry=false) at dispnew.c:3973
>
> The crash is here:
>
>   for (Lisp_Object tail = XCDR (z_order); CONSP (tail); tail = XCDR (tail))
>     {
>       topmost_child = XFRAME (XCAR (tail));
>       copy_child_glyphs (root, topmost_child);
>     }
>
> What is the value of z_order?

Len, can you please print

  p root->visible

I have a suspicion that it might not be FRAME_VISIBLE_P. Alternatively,
you could configure with --enable-checking in which case we would see an
abort in combine_updates_for_frame.

The place in redisplay_internal where it is called is

      if (mini_frame != sf)
	{
	  XWINDOW (mini_window)->must_be_updated_p = true;
	  update_frame (mini_frame, false);
	  if (is_tty_frame (mini_frame))
	    combine_updates_for_frame (mini_frame, false);
	  mini_frame->cursor_type_changed = false;

There is no check for mini_frame being visible. At least not with a
quick look.




This bug report was last modified 110 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.