GNU bug report logs - #73022
31.0.50; Crash in build_frame_matrix_from_leaf_window after C-x 2 and reducing terminal size

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Daniel Clemente <n142857@HIDDEN>; dated Wed, 4 Sep 2024 06:12:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 12 Sep 2024 09:49:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 12 05:49:58 2024
Received: from localhost ([127.0.0.1]:40164 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sogSb-0006pk-RN
	for submit <at> debbugs.gnu.org; Thu, 12 Sep 2024 05:49:58 -0400
Received: from mout.gmx.net ([212.227.17.21]:53353)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sogSX-0006pN-RE
 for 73022 <at> debbugs.gnu.org; Thu, 12 Sep 2024 05:49:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1726134577; x=1726739377; i=rudalics@HIDDEN;
 bh=vXGZBQcPFbqzPEud+39t0pkdEF4ilcKrxsT1ZZVaaMQ=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=iiztHktz8ZkSfVfEvJVc4NZrOcJRibEolN9iMbaf15mtPjlwJ5ZYiNn5ue26MvR0
 zqqrQh5em4CRNWj1uRL2bdoNHtYeg3KVfT+CTxb+OSe0Lk8uHFRxMUm06CSeaEXWS
 gM4zgrQUA2UxI3KlOaRzyd/1se9pJRbW0MGUx76YTOar2DqI2oqAxxGTN2Z+qndeq
 uD+YtPDlMfeSjUJ8n2w3bkREIObZVu5N/n1rz5uGYbid7ZlX8VGL2ptYj1OlxmtGz
 cBK5tpmYdwrXfwHfN8l+B+SDBzWljfzTUEgN3NC4Q8rm1So8Gm9tFDZpzGcll4Pfz
 ALP2k66VMuWpw0OXWw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.45]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MowGU-1sDe4V0NxO-00qW39; Thu, 12
 Sep 2024 11:49:37 +0200
Message-ID: <718661cf-90f1-4590-b635-778dc3a5a099@HIDDEN>
Date: Thu, 12 Sep 2024 11:49:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
 <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
 <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN> <861q1qpehg.fsf@HIDDEN>
 <0e489c29-8274-4610-835a-b01c66a48fca@HIDDEN> <86wmjinsao.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86wmjinsao.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:gZ4Bdk8Ne2QG5303yBKvlLsldVW85qvGPHNZRu88BBjbcUYkMI7
 LlI96iY4GSosNol7dlYTbJjgHiIUR1JrXQcwStmlSxd463r1sXEvCT8/GPSGPOh+8YK08C1
 kRo3Ar8xz/jH0rrgtfTTdbfNfV51CtNLLxZs5NLMrUR21sJQ0OFoce99fV6NH0VKSg1qFom
 F1n46yxmSgMzeWrK98aqA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:gOEBjfKPQNg=;q1CbYekKkSvTVBPp+o3n3Xznzjd
 nVkXnPzj3cMsAnSersgg5HyIp5Z6Oj6ormLXFUXjDbA+TLmvCLnB/xG17i+gMqyeQQTmHIJv8
 iC4K/wDvmyJw6J0M7V03k/vMpqZgVLl28vVMq6cJK++B+WxNTgq2lq1UyV80R0WgMM84/rR0d
 mzLfKDRE9flpMBwSdcwqeRb2BpBRZhfd8HMl5OAv2tiEC2OI57IDUrxA0x8SJdJXfGqS6P2bY
 vm4KRjl0mfn9HsU9/V/1nc8+x3FF6QBlbeiAODBUQhAjSuRQn2twGuDA++B5kM/HSSOjxOwf1
 r79sEKL7V4q6xcUg2CU7Ul8BdLNUKXF8XJaW0t5XBqAipt4sAnDgsQEUd5bOCmG9vEsm4GQi8
 NjtBUkvHgQU0Uqx/hoL+/hFAZk0mkYXjSxky/K3bDdaSIwIoeesvLjQ3zlBvmSkEAKS+3wvVv
 aQiEjBbK7cistRMNM85IGcEzxoBaQJFlJSQBHxnSpFbSTRX5VOGMWnjkove15C+kgEnmh7W3E
 Zu+S+IjXgF+NYBXiHgI3x+a9U+LYjMMUBmosnKOmNn84zBN7tZnCzQSYlvvnFx7HHfJPeDObc
 1maiSrxX4hXHe6nOLyCWIutFry30DIrJNsXxGZG3vmJKl7HehNapdCNprSYat8zbtkOGeJU+2
 F0v5qceU4m3veTXL89JNmcmurbqphbsdFPFWdAyy4/TXQvkKlmzwpkwStOodlXv4U2fb4kCg2
 /wRGXGmE393CrZOrvCaW+4JjyE/ha3egHAKVooDYi28yrwqHNhC8hA4/e8zWpZYfaak6xMtNt
 rJFcEu8yc1jihdzIAP84Bg2g==
X-Spam-Score: 2.8 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  >> It _might_ be incorrect when we allow FRAME_TOTAL_LINES
 (f) to exceed >> FrameRows (FRAME_TTY (f)) because we refuse to shrink a
 frame below some >> height. That's why I used the term "probably". [...] 
 Content analysis details:   (2.8 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [46.125.249.45 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.21 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [212.227.17.21 listed in wl.mailspike.net]
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.8 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  >> It _might_ be incorrect when we allow FRAME_TOTAL_LINES
    (f) to exceed >> FrameRows (FRAME_TTY (f)) because we refuse to shrink a
   frame below some >> height. That's why I used the term "probably". [...] 
 
 Content analysis details:   (1.8 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
                             [212.227.17.21 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [46.125.249.45 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.21 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 >> It _might_ be incorrect when we allow FRAME_TOTAL_LINES (f) to exceed
 >> FrameRows (FRAME_TTY (f)) because we refuse to shrink a frame below some
 >> height.  That's why I used the term "probably".  If I knew what that
 >> code does in all consequences, I could tell you more.  But I don't know.
 >
 > If FRAME_TOTAL_LINES is different from FrameRows at that spot, it's a
 > bug, isn't it?

It depends.  On a GUI frame do the following: In *scratch* insert the
two lines

(insert (format "%s" (frame-native-height)))
(insert (format "%s" (window-pixel-height (frame-root-window))))

and then do C-x 2 three times so yet get four windows.  Now with the
mouse drag the lower border upwards as far as you can.  The minibuffer
window should have disappeared by now.  Evaluate the two lines above by
putting point at their end and typing C-x e.  You will see that the
second value exceeds the first one - the root window got larger than
its frame.  So the window dimensions as Emacs can reasonably draw them
exceed the dimensions of the window as the WM gives them to us.

The same thing happens on TTY frames.  With split windows, the size of
the root window may exceed the size of the terminal window.  Whether we
now synch FRAME_TOTAL_LINES and FrameRows is just a matter of taste.

 > I still don't understand what is supposed to happen when we shrink the
 > frame to less lines/columns than the minimum window dimensions we
 > allow.

There are two minimum window dimensions we "allow": The first are the
hard-coded 5/2 values in handle_window_change_signal and additionally
imposed in frame_windows_min_size.  IIUC neither of these takes care of
menu or tab bars nor of any window splitting.  The second is the
'frame-windows-min-size' code that takes care of the entire frame layout
in an equal fashion for GUI frames and TTY frames.  In either case we do
not shrink the dimensions of our windows but keep them as in the GUI
example above.

 > Also, I'd be happier if you could describe the sequence of
 > events that lead to frame and window resizing following a SIGWINCH.

IIUC we call change_frame_size, possibly delay it, and eventually call
adjust_frame_size just as we do for GUI frames.  There's no special
magic involved.

The problematic thing I see is that the entire cursor wrapping code
including the check in cmcheckmagic seem botched because when a window
is virtually drawn below the border of the terminal window (as in the
GUI example sketched above) we do not check whether the cursor ends up
below that border too.  In particular the form

   /* First the degenerate case */
     if (row == curY (tty) && col == curX (tty)) /* already there */
     return;

in cmgoto seems to indicate that we leave the cursor at its current
location.  Maybe we do that even earlier, for example, in

   if (curY (tty) == vpos
       && curX (tty) == hpos)
     return;

of tty_cursor_to.  And maybe neither of these is relevant because
redisplay simply does nothing if the size of the root window does not
change (I wouldn't know where and how redisplay checks that).  At the
very end the check in cmcheckmagic aborts us in any such case.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 11 Sep 2024 15:07:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 11 11:07:00 2024
Received: from localhost ([127.0.0.1]:39399 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1soOvs-0007X4-6s
	for submit <at> debbugs.gnu.org; Wed, 11 Sep 2024 11:07:00 -0400
Received: from eggs.gnu.org ([209.51.188.92]:40266)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1soOvp-0007Wq-Q3
 for 73022 <at> debbugs.gnu.org; Wed, 11 Sep 2024 11:06:58 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1soOvd-0000tQ-0P; Wed, 11 Sep 2024 11:06:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=bkmtF2qRgzjOo/DFqGQjui/IwG1wnk2NI4ZFNtAGBYU=; b=JOsR/zsZ68vW
 DYql6xFGqR5OXS4AusUil7FQaxNeDDUfpic7wxbLnvwYnV0fS1fszmsK8vtmldqxMHRG8WLm9keDw
 WyO+OxxjFwvoOY+7UoxO4Gor21L4e2lkxx3ASCqONqIwCkMdW1PXqTsvpa4Be0WNgjftG1DVz7nrb
 p1hwX6LJbXYvJtlEYE85wPecfMMRUK9DYDF0u3DqCDHKthyG86aVTi+RBzkRJAlbw+Zq/CMOOUQx3
 jBT5RJEBRinVbZmieXj1CIu/l173HAbHLK3Ldf3Zi+xhyDqR0VmFxql9k8+mBvWVCqjASKaoGx84M
 xGqahn9cPupwTmldo7HeQA==;
Date: Wed, 11 Sep 2024 18:06:39 +0300
Message-Id: <86wmjinsao.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <0e489c29-8274-4610-835a-b01c66a48fca@HIDDEN> (message from
 martin rudalics on Wed, 11 Sep 2024 16:37:58 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
 <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
 <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN> <861q1qpehg.fsf@HIDDEN>
 <0e489c29-8274-4610-835a-b01c66a48fca@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 11 Sep 2024 16:37:58 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  >>   > For instance, Eli recently added this code (dispnew.c):
>  >>   >
>  >>   >    /* This should never happen, but evidently sometimes does if one
>  >>   >       resizes the frame quickly enough.  Prevent aborts in cmcheckmagic.  */
>  >>   >    if (vpos >= FRAME_TOTAL_LINES (f))
>  >>   >      return;
>  >>   >
>  >>   > But this is checking the *frame*.  Later, the assertion in
>  >>   > cmcheckmagic will be made about the *terminal*.
>  >>
>  >> Right.  This should probably be
>  >>
>  >>     if (FRAME_TERMCAP_P (f) && vpos >= FrameRows (FRAME_TTY (f)))
>  >>       return;
>  >
>  > That code is in update_frame_line, which is used only for TTY frames
>  > and uses frame glyph matrices.  IOW, it updates the entire frame as a
>  > single large window.  In addition, on a TTY terminal there's only one
>  > frame visible at any given time, and only that one frame is being
>  > redrawn, ever.
>  >
>  > Given the above, why is that code incorrect?
> 
> It _might_ be incorrect when we allow FRAME_TOTAL_LINES (f) to exceed
> FrameRows (FRAME_TTY (f)) because we refuse to shrink a frame below some
> height.  That's why I used the term "probably".  If I knew what that
> code does in all consequences, I could tell you more.  But I don't know.

If FRAME_TOTAL_LINES is different from FrameRows at that spot, it's a
bug, isn't it?

The reason I didn't want to depend on FrameRows is that it might be
modified by a signal handler, and I couldn't convince myself that they
will always be in sync when we get to that spot.  FRAME_TOTAL_LINES is
the result of us adjusting the frame size when it's safe to do so, and
it sounded like a better idea to me.

>  >> And it's not about resizing frames "quickly".  Here I can crash it in a
>  >> very slow fashion too.
>  >
>  > Good for you, but my comment describes the situation in which I saw
>  > that particular problem.  As I already said, I can never crash Emacs
>  > if I resize the terminal emulator window slowly.
> 
> And as I already said I can crash Emacs reliably if I slowly shrink the
> window, slowly expand it again, precisely at the moment it should reshow
> the minibuffer window.  You can ask me any question about the state of
> the frame and its windows at the time of the crash.

I still don't understand what is supposed to happen when we shrink the
frame to less lines/columns than the minimum window dimensions we
allow.  Also, I'd be happier if you could describe the sequence of
events that lead to frame and window resizing following a SIGWINCH.

>  > Most probably because the terminal driver simply ignores such writes.
>  > AFAIU, the assertion there is not because of the terminal, it is there
>  > to catch Emacs bugs.
> 
> Then tell us how to catch it.  I'm already out of ideas.

Maybe later, when I have more time to think about this.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 11 Sep 2024 14:38:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 11 10:38:18 2024
Received: from localhost ([127.0.0.1]:39353 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1soOU6-00060o-Cr
	for submit <at> debbugs.gnu.org; Wed, 11 Sep 2024 10:38:18 -0400
Received: from mout.gmx.net ([212.227.17.21]:35829)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1soOU4-00060U-2T
 for 73022 <at> debbugs.gnu.org; Wed, 11 Sep 2024 10:38:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1726065480; x=1726670280; i=rudalics@HIDDEN;
 bh=ncoLq5uwQ6neWh2sEMhFuGkOC5Yf63LXoMWGtBDrEP4=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=RZLC3C2FJ/AmLX20Sh7zq8PHkSB1gtCx0Yq+VDrGcYYCRH9OmaovnEuoz29IgXjP
 AtToDeg/tvCRA1+hwoAd5azf255F45QrHMJfHv8/KozpjSzaBhfs0XEcp3oAIDjiX
 8IOw1EV3RXLHJux8wiDgQaReUQPZ304VexT0E8JKGMCG0O1MtGSMeRSukyMVETk0q
 dBnAzhkDMI85dRb+iUI/vpMQOSWXX15YUac6NMoNBs4HHC8rSeD2oKtQiPR1Jm/3G
 SGxWdkMoTxQAJB+oyEvToPEOSu4EmIblkdgOshARd4+kaPgQSvlV6kbDi0PLqmXKh
 tYYdIzZXB13WoAzukA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.97.126]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N63RQ-1rvIrg2IRs-016OZw; Wed, 11
 Sep 2024 16:38:00 +0200
Message-ID: <0e489c29-8274-4610-835a-b01c66a48fca@HIDDEN>
Date: Wed, 11 Sep 2024 16:37:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
 <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
 <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN> <861q1qpehg.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <861q1qpehg.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:Xky8pCJEtsKWwkCEbnLqXDEvt1hoLOoMfnUeO1X2qWuiIqeyAb7
 YakMJdZ4Wk40d0Puz9SUVenCnfzOyla9xQSDE+Dvlbu8WjpzF7sKAstCM/YvjHDOAkcipGp
 k3I8cTgpVkw5/yb1dKNlRy4nR3yG3eptoaGDjmtNN2mClW/xcPrLl6U0QeLAwdo15LT9csC
 rzf9aF+r3jGH92qylzxMw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:ROh3u0vfuiQ=;D4UzFMN23s7vdEW2wChsTw7C4PU
 lfRs+HLIAoIg5uStRyjMDKqLCoSt1tHgKMXGDkQyQsTXftfq/bP5QyWaFrnfZ5LaKsCqGkicJ
 F/57uVdKMZQtbXFI00RaJ+RdUhL2YC/S6uvODMiZk5Lrtg6GWn1Mi1jUI+DT7aoecxNVDKsrk
 GmEtIG+CUgf7OkNvDxaqGGZyYhQOPNlVPsIgVe0wzOzSmdIvNToRRgq8nL3/dSdF6k6Qxo0Fc
 m8iR58Yw868EoWk2zwFPDszAMl+EQi/7hxfu6HyvNbeFCiLvUagLNrR1fswqmCKUnU89feGvO
 OhwtXExYj51UO2q2vDyRUArTPmfp0SAs+LLhFiMyUdhq5UZiQ9DpjdGajGvg7nt6GtJLcBgq8
 z+ZqxIgh6YJzUJ3hQHLYz4BF/QDtGi3I1mxrFVQ62FA6LGxE7RfjCqw/0amii/OpPW+Wp+zQb
 yxgwI4mzfof1UH8+9+y/8i8wtRiR9wWd7do9M/eIs4GHvOcdJLh7V06ML+ea+wekYBcE4TNgB
 TXORw27Uy8VN6mu3rOzaIACA1PpD4eSCwGSBtDvQj+hBgxbHdQ5kD47usttcW1TQI5dyEru5Y
 IByaaStyZvD2KH6snrOAWCVHMPt0QmBfRqwDWMOGTlw2lH2oXuRGHxjJkQkZCycrL1i0CiC82
 /ZrZAHYqQhiJb36xJkuyfUTNR8snGwkA93sVUiQSKp6qEIAEhSyaXBUkmseAMNbsZK9/NeaHS
 JivCEhdkDBVv6sgyGS4EaMdtRkMOmg7k3YmN1GIqs3i5WQihJAEfhiBzbv9iOMkUCTw7bzxZ5
 lo1Rc9pkDsLGT8L/7hm307Xg==
X-Spam-Score: 2.8 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  >> > For instance, Eli recently added this code (dispnew.c):
 >> > >> > /* This should never happen, but evidently sometimes does if one
 >> > resizes the frame quickly enough. Prevent aborts in cmchec [...] 
 Content analysis details:   (2.8 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [213.142.97.126 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.21 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [212.227.17.21 listed in wl.mailspike.net]
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.8 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  >> > For instance, Eli recently added this code (dispnew.c):
    >> > >> > /* This should never happen, but evidently sometimes does if one
    >> > resizes the frame quickly enough. Prevent aborts in cmchec [...] 
 
 Content analysis details:   (1.8 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
                             [212.227.17.21 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [213.142.97.126 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.21 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 >>   > For instance, Eli recently added this code (dispnew.c):
 >>   >
 >>   >    /* This should never happen, but evidently sometimes does if one
 >>   >       resizes the frame quickly enough.  Prevent aborts in cmcheckmagic.  */
 >>   >    if (vpos >= FRAME_TOTAL_LINES (f))
 >>   >      return;
 >>   >
 >>   > But this is checking the *frame*.  Later, the assertion in
 >>   > cmcheckmagic will be made about the *terminal*.
 >>
 >> Right.  This should probably be
 >>
 >>     if (FRAME_TERMCAP_P (f) && vpos >= FrameRows (FRAME_TTY (f)))
 >>       return;
 >
 > That code is in update_frame_line, which is used only for TTY frames
 > and uses frame glyph matrices.  IOW, it updates the entire frame as a
 > single large window.  In addition, on a TTY terminal there's only one
 > frame visible at any given time, and only that one frame is being
 > redrawn, ever.
 >
 > Given the above, why is that code incorrect?

It _might_ be incorrect when we allow FRAME_TOTAL_LINES (f) to exceed
FrameRows (FRAME_TTY (f)) because we refuse to shrink a frame below some
height.  That's why I used the term "probably".  If I knew what that
code does in all consequences, I could tell you more.  But I don't know.

 >> And it's not about resizing frames "quickly".  Here I can crash it in a
 >> very slow fashion too.
 >
 > Good for you, but my comment describes the situation in which I saw
 > that particular problem.  As I already said, I can never crash Emacs
 > if I resize the terminal emulator window slowly.

And as I already said I can crash Emacs reliably if I slowly shrink the
window, slowly expand it again, precisely at the moment it should reshow
the minibuffer window.  You can ask me any question about the state of
the frame and its windows at the time of the crash.

 > Most probably because the terminal driver simply ignores such writes.
 > AFAIU, the assertion there is not because of the terminal, it is there
 > to catch Emacs bugs.

Then tell us how to catch it.  I'm already out of ideas.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 11 Sep 2024 12:22:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 11 08:22:22 2024
Received: from localhost ([127.0.0.1]:37911 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1soMMX-0007AY-Mx
	for submit <at> debbugs.gnu.org; Wed, 11 Sep 2024 08:22:22 -0400
Received: from eggs.gnu.org ([209.51.188.92]:44852)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1soMMV-0007AI-Ag
 for 73022 <at> debbugs.gnu.org; Wed, 11 Sep 2024 08:22:20 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1soMMI-00083v-Uo; Wed, 11 Sep 2024 08:22:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=oJxoF/Z+AGwPv0KDytYiHBCqIXhg0q1opSVAw2sIt9U=; b=MDiU9DCuRlH2
 FPRxkAjMgXr2BlvBdVVJsO4e0o+lruqNeoGBBnKd/bc/PWh0WxPvcWiKzD+RpIoO1MgJ+bbn/JbJ/
 KFFyB9r4nnFJ0rgRF6y0RfnTm9sTGPmfwN/xD1d/SyxhAeo5EtY8gglKAWzHpNUt/Mi9zg31RzLHy
 Wx5ZqNULAjrhx9Bnq6HxPlT1V9Ol2bLyFnjkvxrje5jl3MEt4FQ6YvuZfzNpEpVtI4nvCfCX7M4Kj
 IidipkuHiscjgiWDW3QLilvpFLjwk4Inw1mvdSvifScRUbI2D5Xe/nqwpBBi3Kv0E+gPH8vYzrk0d
 TGbV7mmC/TbjTuA2oYKorA==;
Date: Wed, 11 Sep 2024 15:22:03 +0300
Message-Id: <861q1qpehg.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN> (message from
 martin rudalics on Wed, 11 Sep 2024 10:07:21 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
 <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
 <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 11 Sep 2024 10:07:21 +0200
> Cc: Eli Zaretskii <eliz@HIDDEN>, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  > For instance, Eli recently added this code (dispnew.c):
>  >
>  >    /* This should never happen, but evidently sometimes does if one
>  >       resizes the frame quickly enough.  Prevent aborts in cmcheckmagic.  */
>  >    if (vpos >= FRAME_TOTAL_LINES (f))
>  >      return;
>  >
>  > But this is checking the *frame*.  Later, the assertion in
>  > cmcheckmagic will be made about the *terminal*.
> 
> Right.  This should probably be
> 
>    if (FRAME_TERMCAP_P (f) && vpos >= FrameRows (FRAME_TTY (f)))
>      return;

That code is in update_frame_line, which is used only for TTY frames
and uses frame glyph matrices.  IOW, it updates the entire frame as a
single large window.  In addition, on a TTY terminal there's only one
frame visible at any given time, and only that one frame is being
redrawn, ever.

Given the above, why is that code incorrect?

> And it's not about resizing frames "quickly".  Here I can crash it in a
> very slow fashion too.

Good for you, but my comment describes the situation in which I saw
that particular problem.  As I already said, I can never crash Emacs
if I resize the terminal emulator window slowly.

> The cmcheckmagic code is about a very peculiar situation that is hardly
> relevant for today's terminals I think.  Here I can never crash a build
> that doesn't check assertions.

Most probably because the terminal driver simply ignores such writes.
AFAIU, the assertion there is not because of the terminal, it is there
to catch Emacs bugs.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 11 Sep 2024 08:07:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 11 04:07:49 2024
Received: from localhost ([127.0.0.1]:37752 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1soIOD-0002iO-6M
	for submit <at> debbugs.gnu.org; Wed, 11 Sep 2024 04:07:49 -0400
Received: from mout.gmx.net ([212.227.15.15]:40913)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1soIOA-0002i8-D3
 for 73022 <at> debbugs.gnu.org; Wed, 11 Sep 2024 04:07:47 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1726042047; x=1726646847; i=rudalics@HIDDEN;
 bh=vlSz759Mgl1EWpYoosYJC8/dMDASGJ+hsvqCpBk7tjM=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=NTt2LOHQIJKEhAbokAycGdEm7xMNDGcTF6+w33VdpSxduwuOVtdiGzg6KZI+qVoN
 5VutZRfijPHmq5bUZcXOw6yVP00LeT4V9i4QHd3vKw91EWxzH0dCD0UtvSKQyqRtV
 DKvaoX7bhK9XXzhIZ3VrNb4tpZIE1/YZs3tOd1QPi2qe1d4PwS/iJuk4Ts5Jq3/2Z
 3//h0L+QwP8gDBOV9D8qCzWdcFtjmcMNnT13X6g6hAyQClyCLIWesnmXg1YoHcsgU
 liiw0z+SmkFp3h3qSD8ZDzdKdX1nkt7F4UvxGgVoOt3W4//SU0jcR2mxWlbzIr0JR
 ciQVfwsQN8tyzZWVJw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.97.126]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MZCfD-1sS0II2rB3-00LECE; Wed, 11
 Sep 2024 10:07:27 +0200
Message-ID: <4c3591f1-7c26-489f-ba68-8586e98cd99e@HIDDEN>
Date: Wed, 11 Sep 2024 10:07:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Daniel Clemente <n142857@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
 <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64
X-Provags-ID: V03:K1:xWc3d68MsOZBO/YxR+glmN03GSC+31AebW4fI1YzQCEcSeR1k5j
 OS4tzOxzB3P/7WEGEMTTS3N4QlFrwFeP3WfDId4qNCW9rU4YOFMgigTp+OKqQIyfKNn5vWw
 dWfbQwJ9soVIUOHdA1Buz1kediIhLIC2J6arWEcxPWd1GbY9PkWeLzqG+Yqd3sRCNqni014
 sX5i/U6NMH+mz2lmNCH8w==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:8tHdtj66ugQ=;HJ5APkY+wuO2+DRt3gvBYgjSCjI
 eaPZakc4+tcaiyGeUJZR4tcBoifiCjo6BtV7k5nZRJFufr4Wj7O06UMuX1rVJIOn9ovs00LCh
 MCZrjoZqQ9PRHAvel2IHIaUGbdzNbgPFawFB7pJGehdJ019CevWhXe0hgcf6OgKwyXBu25QjK
 SwRldXnXrqybUjdjiwl98Y4HsHU77KMasNRMYWyVEjhzORL5NZRXP4f/51TzhOk5NA/psomf7
 rHx0rQPa562MhUW+LnazhG6+Lyld141dHoS1lo+o8BpWFCoilUjIq+CLfwCBK4S91dYBgzZ0s
 fR2AVIgCZJXFeYyyfA/T/Ygqp6C08uHvkVUN7aTKefye9eVNfDMlnr3l6jaIrUpZX5lDZ8Fw7
 hu07f2zBdLtTih9n3smtgy2OwniHpQkZ7w3hmZAfiLMy2SEI8zVmaFtXXxtB2eqVscA0YKima
 y2pVXN8cnL3F8lSXHkJLBKBhxFFwj8o3xkjRzTSZXmFqD2VS+vKFP5lvlgrALy2kL+zFK9Qyx
 fARnSqdqOYAIzUCa7wEhelwLc+THjQ95p2oGbQFGQWWqwOyj+xOMwvg1Y6VsbpakpXfusYWdf
 fpNqL/OXp9ipV5v6YrF4DS5qKr+QSUMLfcAW96IKDVk2d8ZkHU+JRVlzb89jsbLpRLOPpC2jK
 a8Ke12GWjbcOPAP1GW8ifWKgSErLYuZbffLuS5yTc5/V8Zp6rvZUboF+I8i+InKmNfIfctxMR
 ouT/mU9Q0iuCKhh0nlUOWZhAjTw+FzS/h2QReIUXJIEXMIOrEdnJmhznoRC4NpXyRqIq+ZIAz
 WfowpRccFQnpH7iuKOeRQfVw==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > It applies well; thanks. > By the way, (window-min-size)
 still answers 4 (with and without your patch). That's expected. But
 (window-min-size
 (minibuffer-window)) should now always evaluate to 1 and
 (frame-windows-min-size)
 should now give 5 instead of 8. As for 'window-min-size' you can 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [213.142.97.126 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.15 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.15 listed in wl.mailspike.net]
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > It applies well; thanks. > By the way, (window-min-size)
    still answers 4 (with and without your patch). That's expected. But (window-min-size
    (minibuffer-window)) should now always evaluate to 1 and (frame-windows-min-size)
    should now give 5 instead of 8. As for 'window-min-size' you can 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.15 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [213.142.97.126 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.15 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

ID4gSXQgYXBwbGllcyB3ZWxsOyB0aGFua3MuDQogPiBCeSB0aGUgd2F5LCAod2luZG93LW1p
bi1zaXplKSBzdGlsbCBhbnN3ZXJzIDQgKHdpdGggYW5kIHdpdGhvdXQgeW91ciBwYXRjaCku
DQoNClRoYXQncyBleHBlY3RlZC4gIEJ1dCAod2luZG93LW1pbi1zaXplIChtaW5pYnVmZmVy
LXdpbmRvdykpIHNob3VsZCBub3cNCmFsd2F5cyBldmFsdWF0ZSB0byAxIGFuZCAoZnJhbWUt
d2luZG93cy1taW4tc2l6ZSkgc2hvdWxkIG5vdyBnaXZlIDUNCmluc3RlYWQgb2YgOC4gIEFz
IGZvciAnd2luZG93LW1pbi1zaXplJyB5b3UgY2FuDQoNCi0gZWl0aGVyIChzZXRxIHdpbmRv
dy1taW4taGVpZ2h0IDApIGFuZCB0aGVuICh3aW5kb3ctbWluLXNpemUpDQoNCi0gb3IgZGly
ZWN0bHkgKHdpbmRvdy1taW4tc2l6ZSBuaWwgbmlsIHQpDQoNCndoaWNoIHNob3VsZCBib3Ro
IHlpZWxkIDIuICBCVFcsIG5laXRoZXIgb2YgdGhlIG1pbiBzaXplIGNoYW5nZXMgc2hvdWxk
DQpoYXZlIGFueSBlZmZlY3Qgb24gdGhlIGJ1ZyBwZXIgc2UuICBCdXQgaXQgbWlnaHQgY2F1
c2UgaXQgdG8gb2NjdXINCmVhcmxpZXIgb3IgbGF0ZXIgYW5kIGFsc28gaW4gdGhlIG9uZSB3
aW5kb3cgY2FzZSB5b3UgbWVudGlvbiBiZWxvdy4NCg0KID4gRW1hY3MgZmVlbHMgYSBiaXQg
InN0cm9uZ2VyIiBpbiB0aGUgQy14IDIgc2NlbmFyaW8sIG1lYW5pbmcgdGhhdCBpdA0KID4g
c3Vydml2ZXMgc2hyaW5raW5nK2VubGFyZ2luZyB0aGUgdGVybWluYWwsIGJ1dCBpdCBzdGls
bCBjcmFzaGVzDQogPiBzb21ldGltZXMuDQoNCldpdGhvdXQgdGhlIHBhdGNoIEkgY291bGQg
bWFrZSBpdCBjcmFzaCByZWxpYWJseS4gIEkgY2FuJ3Qgd2l0aCBpdC4NCg0KID4gQnV0IGl0
IGFsc28gY3Jhc2hlcyBpbiBhIG5ldyBzaXR1YXRpb246IGp1c3QgYnkgc2hyaW5raW5nIHRo
ZQ0KID4gbm9ybWFsL2luaXRpYWwvdW5zcGxpdCBmcmFtZSwgaS5lLiB3aXRob3V0IG5lZWRp
bmcgdG8gZG8gQy14IDIuIEl0DQogPiBkaWRuJ3QgY3Jhc2ggYmVmb3JlLCBzbyB0aGUgcGF0
Y2ggZG9lc24ndCBtYWtlIHRoZSB3aG9sZSBFbWFjcyBtb3JlDQogPiBzdGFibGUgeWV0Lg0K
ID4NCiA+DQogPiBXaXRob3V0IGRvaW5nIEMteCAyOg0KID4NCiA+ICM0ICAweDAwMDA1NTU1
NTU2YzMwMTYgaW4gZW1hY3NfYWJvcnQgKCkgYXQgc3lzZGVwLmM6MjM5MQ0KID4gIzUgIDB4
MDAwMDU1NTU1NTY2ZDM2ZiBpbiBjbWNoZWNrbWFnaWMgKHR0eT0weDU1NTU1NjA4ZmE4MCkg
YXQgY20uYzoxMjINCiA+ICM2ICAweDAwMDA1NTU1NTU2NzFiMWIgaW4gdHR5X3dyaXRlX2ds
eXBocyAoZj0weDU1NTU1NjAxMmZmMCwNCiA+IHN0cmluZz0weDdmZmZmMGY0ZWMxMCwgbGVu
PTgwKSBhdCB0ZXJtLmM6ODMxDQogPiAjNyAgMHgwMDAwNTU1NTU1NjdjMTFkIGluIHdyaXRl
X2dseXBocyAoZj0weDU1NTU1NjAxMmZmMCwNCiA+IHN0cmluZz0weDdmZmZmMGY0ZGQxMCwg
bGVuPTgwKSBhdCB0ZXJtaW5hbC5jOjE2NA0KID4gIzggIDB4MDAwMDU1NTU1NTU5MWI2MCBp
biB1cGRhdGVfZnJhbWVfbGluZSAoZj0weDU1NTU1NjAxMmZmMCwgdnBvcz0zLA0KID4gdXBk
YXRpbmdfbWVudV9wPWZhbHNlKSBhdCBkaXNwbmV3LmM6NTMyNg0KID4NCiA+IDEyNiAgICAg
ICAgICBpZiAodHR5LT50ZXJtc2NyaXB0KQ0KID4gKGdkYikgcCBjdXJZICh0dHkpDQogPiAk
MSA9IDMNCiA+IChnZGIpIHAgRnJhbWVSb3dzICh0dHkpIC0gMQ0KID4gJDIgPSAzDQogPiAo
Z2RiKQ0KDQpNYXliZSBiZWNhdXNlIHRoZSBmcmFtZSBjYW4gbm93IGdldCBzbWFsbGVyIGFm
dGVyIHJlc2l6ZV9mcmFtZV93aW5kb3dzLg0KSUlVQyBpdCBhbGwgZGVwZW5kcyBvbiB3aGVy
ZSB0aGUgY3Vyc29yIHdpdGhpbiB0aGUgZnJhbWUgaXMuICBJbiB0aGUNCnNwbGl0IHdpbmRv
dyBjYXNlIHlvdSBwcm9iYWJseSBnZXQgY3Jhc2hlcyBzb29uZXIgaWYgdGhlIGN1cnNvciBp
cyBpbg0KdGhlIGxvd2VyIHdpbmRvdy4gIE1heWJlIHN0aWxsIHNvb25lciBpZiB5b3UgcmVz
aXplIHRoZSBmcmFtZSB3aGlsZSB0aGUNCm1pbmlidWZmZXIgaXMgYWN0aXZlLiAgSSBkaWRu
J3QgdHJ5IHN1Y2ggc2NlbmFyaW9zLg0KDQogPiBUaGlzIG9uZSBzdGlsbCBoYXBwZW5zICh0
aGlzIGlzIGFmdGVyIEMteCAyKToNCiA+ICM1ICAweDAwMDA1NTU1NTU1OGI2OTcgaW4gYnVp
bGRfZnJhbWVfbWF0cml4X2Zyb21fbGVhZl93aW5kb3cNCiA+IChmcmFtZV9tYXRyaXg9MHg1
NTU1NTYwNTA0MjAsDQogPiAgICAgIHc9MHg1NTU1NTYwMTMyMTApIGF0IGRpc3BuZXcuYzoy
NjQ3DQogPg0KID4+DQogPj4gQW5kIGl0IG1vdmVzIHRoZSBhc3NpZ25tZW50IG9mIEZyYW1l
Um93cyB0byBoYW5kbGVfd2luZG93X2NoYW5nZV9zaWduYWwNCiA+PiBpbiBkaXNwbmV3LmMu
ICBEb2luZyBpdCBpbiBhZGp1c3RfZnJhbWVfc2l6ZSB3YXMgc2lsbHkgKGFzIEdlcmQgTcO2
bGxtYW5uDQogPj4gbm90aWNlZCBlYXJsaWVyKS4gIEZyYW1lUm93cyBzaG91bGQgYmUgdGhl
IGhlaWdodCBvZiB0aGUgdHR5IHdoaWNoIGNhbg0KID4+IGJlIHNtYWxsZXIgdGhhbiB0aGUg
aGVpZ2h0IG9mIG91ciBmcmFtZS4gIEVtYWNzIGlzIHN1cHBvc2VkIHRvIHN0b3JlIGl0DQog
Pj4gYnV0IG5vdCB0byBtb2RpZnkgaXQgYWNjb3JkaW5nIHRvIG91ciBjYXBhYmlsaXRpZXMu
DQogPj4NCiA+DQogPiBJIGRvbid0IGhhdmUgdGhlIGV4cGVydCBvcGluaW9uIG9mIGhvdyBp
dCBzaG91bGQgYmUuIEJ1dCBJIGFncmVlIHRoYXQNCiA+IGEgc291cmNlIG9mIHRoZSBwcm9i
bGVtIGlzIHRoYXQgdGhlIHR0eSBjYW4gYmUgc21hbGxlciB0aGFuIHRoZSBmcmFtZS4NCiA+
IEZyYW1lIGFuZCB0ZXJtaW5hbCBtYXkgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgYW5kIHRoaXMg
Y3JlYXRlcw0KID4gaW5jb25zaXN0ZW5jaWVzLg0KDQpJbmRlZWQuICBUaGUgR1VJIGNvZGUg
ZG9lc24ndCBoYXZlIHRoZSBjdXJzb3IgcHJvYmxlbS4gIFRoZXJlIGFuDQphcmJpdHJhcmls
eSBsYXJnZSBFbWFjcyBmcmFtZSBtYXkgY29udGludWUgdG8gbGl2ZSB3aXRoaW4gYSB0aW55
IFdNDQp3aW5kb3cgd2l0aCBhbiBpbnZpc2libGUgY3Vyc29yLg0KDQogPiBGb3IgaW5zdGFu
Y2UsIEVsaSByZWNlbnRseSBhZGRlZCB0aGlzIGNvZGUgKGRpc3BuZXcuYyk6DQogPg0KID4g
ICAgLyogVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgZXZpZGVudGx5IHNvbWV0aW1l
cyBkb2VzIGlmIG9uZQ0KID4gICAgICAgcmVzaXplcyB0aGUgZnJhbWUgcXVpY2tseSBlbm91
Z2guICBQcmV2ZW50IGFib3J0cyBpbiBjbWNoZWNrbWFnaWMuICAqLw0KID4gICAgaWYgKHZw
b3MgPj0gRlJBTUVfVE9UQUxfTElORVMgKGYpKQ0KID4gICAgICByZXR1cm47DQogPg0KID4g
QnV0IHRoaXMgaXMgY2hlY2tpbmcgdGhlICpmcmFtZSouICBMYXRlciwgdGhlIGFzc2VydGlv
biBpbg0KID4gY21jaGVja21hZ2ljIHdpbGwgYmUgbWFkZSBhYm91dCB0aGUgKnRlcm1pbmFs
Ki4NCg0KUmlnaHQuICBUaGlzIHNob3VsZCBwcm9iYWJseSBiZQ0KDQogICBpZiAoRlJBTUVf
VEVSTUNBUF9QIChmKSAmJiB2cG9zID49IEZyYW1lUm93cyAoRlJBTUVfVFRZIChmKSkpDQog
ICAgIHJldHVybjsNCg0KQW5kIGl0J3Mgbm90IGFib3V0IHJlc2l6aW5nIGZyYW1lcyAicXVp
Y2tseSIuICBIZXJlIEkgY2FuIGNyYXNoIGl0IGluIGENCnZlcnkgc2xvdyBmYXNoaW9uIHRv
by4NCg0KID4gSSB0aGluayB0aGUgZnJhbWUgbmV2ZXIgZ2V0cyBzbWFsbGVyIHRoYW4gMiBs
aW5lcyAodGhlcmUncyBjb2RlIGluDQogPiBoYW5kbGVfd2luZG93X2NoYW5nZV9zaWduYWwg
dG8gcHJldmVudCBpdCksIGJ1dCB0aGUgdHR5IGNhbi4gU28gaWYNCiA+IHdlJ3JlIGluIGEg
MS1saW5lIHRlcm1pbmFsLCBhbmQgdXBkYXRpbmcgdGhlIDJuZCBsaW5lLCB0aGUgYWJvdmUg
Y29kZQ0KID4gc2VlcyBub3RoaW5nIHdyb25nICh0aGUgZnJhbWUgc3RpbGwgaGFzIDIgbGlu
ZXMpIGJ1dCBjbWNoZWNrbWFnaWNrDQogPiB3b24ndCBsaWtlIGl0ICh0aGUgdGVybWluYWwg
ZG9lc24ndCBoYXZlIGEgMm5kIGxpbmUpLg0KID4gKFVzdWFsIGRpc2NsYWltZXI6IEkgZG9u
J3Qga25vdyB2ZXJ5IHdlbGwgaG93IHRoaXMgd29ya3MuIEknbSBvZnRlbg0KID4gYnJhaW5z
dG9ybWluZykuDQoNClJpZ2h0LiAgQnV0IEkgY2FuIGdldCBjbWNoZWNrbWFnaWMgY3Jhc2gg
aGVyZSB3aXRoIGEgMjAgbGluZXMgZnJhbWUgdG9vLg0KDQogPj4gQW5kIGl0IG1vdmVzIHRo
ZSBhc3NpZ25tZW50IG9mIEZyYW1lUm93cyB0byBoYW5kbGVfd2luZG93X2NoYW5nZV9zaWdu
YWwNCiA+PiBpbiBkaXNwbmV3LmMuDQogPg0KID4gSW4gcHJhY3RpY2UsIHRoYXQgY29kZSAo
aW4gdGhlIG5ldyBwbGFjZSB5b3UgcHV0IGl0KSBpcyBzdGlsbCBpbnNpZGUgYW4gaWY6IHRo
ZQ0KID4gICAgaWYgKHdpZHRoID4gNSAmJiBoZWlnaHQgPiAyKQ0KID4gaW4gaGFuZGxlX3dp
bmRvd19jaGFuZ2Vfc2lnbmFsLiBUaGlzIG1lYW5zIHRoYXQgaW4gZS5nLiBhIDEtbGluZQ0K
ID4gdGVybWluYWwsIHlvdSB3b24ndCBiZSBzZXR0aW5nIEZyYW1lUm93cyB0byB0aGUgYWN0
dWFsIG51bWJlciBvZiBsaW5lcw0KID4gb2YgdGVybWluYWwgKDEpLCBhcyB5b3Ugd2FudGVk
LiBJdCB3aWxsIHN0aWxsIGJlIHRoZSBvbGQgdmFsdWUsIGUuZy4NCiA+IDIsIGFuZCBpdCBt
YXkgbWFrZSBjbWNoZWNrbWFnaWMgY3Jhc2ggYnkgdHJ5aW5nIHRvIGRvIHRoaW5ncyBpbiBs
aW5lIDINCiA+ICh3aGljaCBleGlzdHMgaW4gdGhlIGZyYW1lLCB3aGljaCBoYXMgMiBsaW5l
cykgYnV0IG5vdCBpbiB0aGUgdGVybWluYWwNCiA+ICh3aGljaCBkb2Vzbid0IGhhdmUgYSAy
bmQgbGluZSkuDQoNClRoZSA1LzIgY2hlY2tzIGNhbm5vdCBoYW5kbGUgc3BsaXQgd2luZG93
cy4gIFRoZXNlIGFyZSBhcnRpZmFjdHMgZnJvbQ0KdGhlIHBhc3QuDQoNCiA+IE9uZSBvcHRp
b24gc2VlbXMgdG8gaGF2ZSBGcmFtZVJvd3MgYWx3YXlzIG1hdGNoIHRoZSBhbW91bnQgb2Yg
dGVybWluYWwNCiA+IGxpbmVzLiBDYW4gd2UgcmVtb3ZlIHRoZSAiaWYgKOKApiBoZWlnaHQg
PjIpIiBsaW1pdGF0aW9uLCBhbmQgYWxsb3cNCiA+IDEtbGluZSwgMi1saW5lIGZyYW1lcyBl
dGMuPyAoVG8gcmVhbGx5IG1hdGNoIHRoZSB0ZXJtaW5hbCBzaXplKS4gT3RoZXINCiA+IGNo
YW5nZXMgbWF5IGJlIG5lZWRlZCBpbiBvdGhlciBwbGFjZXMsIHRvIGF2b2lkIHdvcmtpbmcg
d2l0aCB2ZXJ5DQogPiBzbWFsbCBmcmFtZXMuLg0KDQpXZSBzaG91bGQgZG8gdGhhdC4gIElu
IHByaW5jaXBsZSB3ZSBzaG91bGQgYWxsb3cgaGVpZ2h0IGFuZCB3aWR0aCB0bw0KYmVjb21l
IHplcm8uICBXaG8ga25vd3Mgd2hhdCB0b2RheSdzIHRlcm1pbmFscyBwZXJtaXQ/DQoNCiA+
IE90aGVyd2lzZSwgaWYgd2UgbGV0IEZyYW1lUm93cyBiZSBsYXJnZXIgdGhhbiB0aGUgYW1v
dW50IG9mIHRlcm1pbmFsDQogPiBsaW5lcywgYW5vdGhlciBvcHRpb24gY291bGQgYmU6DQog
PiBBdCB0aGUgYmVnaW5uaW5nIG9mIHR0eV93cml0ZV9nbHlwaHMsIGNoZWNrIHdoZXRoZXIg
d2UndmUgYmVlbiBhc2tlZA0KID4gdG8gd3JpdGUgZ2x5cGhzIGluIGEgbGluZSB3aGljaCBp
cyBoaWdoZXIgdGhhbiB0aGUgYW1vdW50IG9mIGxpbmVzIGluDQogPiB0aGUgdGVybWluYWwu
IElmIHNvLCByZXR1cm4gd2l0aG91dCB3cml0aW5nIGFueXRoaW5nLiAoQmVjYXVzZSB0aGUN
CiA+IGxpbmUgd291bGQgYmUgaW52aXNpYmxlKS4NCiA+IE9yIG1heWJlIGluIHNvbWUgb2Yg
dGhlIGNhbGxlcnMgb2YgdHR5X3dyaXRlX2dseXBocy4gRG9uJ3QgY2FsbA0KID4gdHR5X3dy
aXRlX2dseXBocyB0byB3cml0ZSBnbHlwaHMgaW4gYSBsaW5lIHdoaWNoIGlzIG5vdCB2aXNp
YmxlIChpdA0KID4gZXhpc3RzIGluIHRoZSBmcmFtZSwgYnV0IGRvZXNuJ3QgZXhpc3QgaW4g
dGhlIHRlcm1pbmFsKS4NCg0KSSB0aGluayBGcmFtZVJvd3Mgc2hvdWxkIGFsd2F5cyByZWZs
ZWN0IHRoZSBzaXplIG9mIHRoZSB0ZXJtaW5hbCBhcyBpdA0Kd2FzIHJlcG9ydGVkIHRvIHVz
LiAgSWYgaXQgZG9lc24ndCwgd2UnbGwgbmV2ZXIgYmUgYWJsZSB0byB0cmFjZSBjaGFuZ2Vz
DQpvZiB0aGUgdGVybWluYWwgc2l6ZSBjb3JyZWN0bHkuDQoNCiA+IEJ5IHRoZSB3YXksIEkg
c2F3IHRoYXQgdGhlIGNtY2hlY2ttYWdpYyBjb2RlIGNoZWNrcyBjdXJZICh0dHkpID49DQog
PiBGcmFtZVJvd3MgKHR0eSkgLSAxLCBub3RlIHRoZSAtMSwgd2hlcmVhcyB0aGUgZGlzcG5l
dy5jIGNvZGUgSSBxdW90ZQ0KID4gYWJvdmUgZG9lc24ndCB1c2UgdGhlIC0xLiBJIGhvcGUg
dGhpcyBpcyBvay4gQXMgbWVudGlvbmVkIHRoZXkncmUNCiA+IGNoZWNraW5nIGRpZmZlcmVu
dCB0aGluZ3Mgc28gaXQgbWF5IGJlIG9rLCB0aG91Z2ggSSBkb24ndCB1bmRlcnN0YW5kDQog
PiB3aHkgdGhlIC0xLg0KDQpUaGUgY21jaGVja21hZ2ljIGNvZGUgaXMgYWJvdXQgYSB2ZXJ5
IHBlY3VsaWFyIHNpdHVhdGlvbiB0aGF0IGlzIGhhcmRseQ0KcmVsZXZhbnQgZm9yIHRvZGF5
J3MgdGVybWluYWxzIEkgdGhpbmsuICBIZXJlIEkgY2FuIG5ldmVyIGNyYXNoIGEgYnVpbGQN
CnRoYXQgZG9lc24ndCBjaGVjayBhc3NlcnRpb25zLiAgQ2FuIHlvdT8NCg0KbWFydGluDQo=





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 10 Sep 2024 17:45:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 10 13:45:37 2024
Received: from localhost ([127.0.0.1]:36977 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1so4vp-0000r2-5u
	for submit <at> debbugs.gnu.org; Tue, 10 Sep 2024 13:45:37 -0400
Received: from mail-ua1-f48.google.com ([209.85.222.48]:56764)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1so4vn-0000qp-49
 for 73022 <at> debbugs.gnu.org; Tue, 10 Sep 2024 13:45:35 -0400
Received: by mail-ua1-f48.google.com with SMTP id
 a1e0cc1a2514c-846bcf3677dso1595629241.1
 for <73022 <at> debbugs.gnu.org>; Tue, 10 Sep 2024 10:45:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725990264; x=1726595064; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=p6WDnKGDCyjk05NRZA+pWOKu2FiqrZWkui4QJEG2L2I=;
 b=mWpDkWMt/f+XDub6AbmMKI3HLxzLHJOk5+7XPpnWrQDFJxPFXKJzpcRlSmU3aN9b6i
 6KyHGe/eheFWURbvFXiy8FrV+xurTicfTMjnvDrx6CvcIZYntxNi90qlpjx/88Dj2bkC
 +zmq21LUUmEOzbn8CsWSiGepexPsEhHZq+NIVDkTjbWahv1gW5iC2UuYREokQSToCysn
 5VHPJ1Oh4LkYK01jRjHBG0fDdhMrFb+Uj31cVdmLmEU0yI9ASELDSFrxmYtp1FGm811e
 met7T93zMvEq3YPS9RfvCgxr9VS/gkZ1k6+YJioDIUk2h0OwlBITBfBngYv4SKJo7lQp
 aYuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725990264; x=1726595064;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=p6WDnKGDCyjk05NRZA+pWOKu2FiqrZWkui4QJEG2L2I=;
 b=qGqi7TFbSvGAViOvmV1TKhX+WTNVqwf7kFeVvGP8V9Rhj6Su6AkhsCDmSdewzAjn8j
 dfpeLD+ATrggMFC6HpdiKtGNSQzZZtglU5r+D06lH0DbUWA0UYGw8fBSixUfPdYLK70t
 uXPFBw6aidrnFqCMTPz6k4vEpkWRf+ryo+dwgk6mIZAkJiLTnSMdKiPIBpGZhjnuI5JT
 KjA7CA/LAdeePwwt/iB83tohH7d1LInmTpncQZEfCncGZjNcdMhMhmubxB6aMtzrYrSk
 LzMdVQErRrhkyIjAJfqcKUjmYtacsRMUMHwq9xz28KFlUoAqYRe7QWDYNhG+wvkwxjKf
 gdVQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCVEd/wd5LX40OP6T6oTALobVUsKxKLLO2cvMtoVRZY97H5QXlykzqpIYweH6lekHWEnPESTIw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzzuDtchTbAnQ5bHS8FfL3VouZX1lvLSMS3lgd4TwwW3PN3uzux
 UEEN1Ud+JBn0kWOYiIGkA25eLK3+9PfU3YSKrzPZzVDP1Q+Ti14cL6v9rWV/Hfh96oTvvQ5Mjt8
 reqy4HcJUm86NmQwh1P68M6Z131k=
X-Google-Smtp-Source: AGHT+IFXUtprgJUA4mCupzYlRyUSi6NB0GTcaGFzG5CXUcsg8PLqh96SMGmct5EiRm3H9Bo3gPy1uzrG9Up8CtrPG0U=
X-Received: by 2002:a05:6102:f0b:b0:48f:4a50:233e with SMTP id
 ada2fe7eead31-49bde2647b5mr16641846137.21.1725990264299; Tue, 10 Sep 2024
 10:44:24 -0700 (PDT)
MIME-Version: 1.0
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
In-Reply-To: <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
From: Daniel Clemente <n142857@HIDDEN>
Date: Tue, 10 Sep 2024 17:43:57 +0000
Message-ID: <CAJKAhPDgWxYLpGsWHF9TFZ3SbBrJgt_07JryK6_fsBh-q_JSwg@HIDDEN>
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: martin rudalics <rudalics@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

> Please try the attached diff (from my heavily edited copy of master, if
> it doesn't apply cleanly, complain immediately rather than messing up
> your Emacs).  It should fix two silly bugs in window.el that make a
> frame's safe minimum size much too large and includes the fix I proposed
> earlier here.

It applies well; thanks.
By the way, (window-min-size) still answers 4 (with and without your patch)=
.

Emacs feels a bit "stronger" in the C-x 2 scenario, meaning that it
survives shrinking+enlarging the terminal, but it still crashes
sometimes.
But it also crashes in a new situation: just by shrinking the
normal/initial/unsplit frame, i.e. without needing to do C-x 2. It
didn't crash before, so the patch doesn't make the whole Emacs more
stable yet.


Without doing C-x 2:

#4  0x00005555556c3016 in emacs_abort () at sysdep.c:2391
#5  0x000055555566d36f in cmcheckmagic (tty=3D0x55555608fa80) at cm.c:122
#6  0x0000555555671b1b in tty_write_glyphs (f=3D0x555556012ff0,
string=3D0x7ffff0f4ec10, len=3D80) at term.c:831
#7  0x000055555567c11d in write_glyphs (f=3D0x555556012ff0,
string=3D0x7ffff0f4dd10, len=3D80) at terminal.c:164
#8  0x0000555555591b60 in update_frame_line (f=3D0x555556012ff0, vpos=3D3,
updating_menu_p=3Dfalse) at dispnew.c:5326

126          if (tty->termscript)
(gdb) p curY (tty)
$1 =3D 3
(gdb) p FrameRows (tty) - 1
$2 =3D 3
(gdb)


This one still happens (this is after C-x 2):
#5  0x000055555558b697 in build_frame_matrix_from_leaf_window
(frame_matrix=3D0x555556050420,
    w=3D0x555556013210) at dispnew.c:2647

>
> And it moves the assignment of FrameRows to handle_window_change_signal
> in dispnew.c.  Doing it in adjust_frame_size was silly (as Gerd M=C3=B6ll=
mann
> noticed earlier).  FrameRows should be the height of the tty which can
> be smaller than the height of our frame.  Emacs is supposed to store it
> but not to modify it according to our capabilities.
>

I don't have the expert opinion of how it should be. But I agree that
a source of the problem is that the tty can be smaller than the frame.
Frame and terminal may have different sizes and this creates
inconsistencies.

For instance, Eli recently added this code (dispnew.c):

  /* This should never happen, but evidently sometimes does if one
     resizes the frame quickly enough.  Prevent aborts in cmcheckmagic.  */
  if (vpos >=3D FRAME_TOTAL_LINES (f))
    return;

But this is checking the *frame*.  Later, the assertion in
cmcheckmagic will be made about the *terminal*.
I think the frame never gets smaller than 2 lines (there's code in
handle_window_change_signal to prevent it), but the tty can. So if
we're in a 1-line terminal, and updating the 2nd line, the above code
sees nothing wrong (the frame still has 2 lines) but cmcheckmagick
won't like it (the terminal doesn't have a 2nd line).
(Usual disclaimer: I don't know very well how this works. I'm often
brainstorming).

> And it moves the assignment of FrameRows to handle_window_change_signal
> in dispnew.c.

In practice, that code (in the new place you put it) is still inside an if:=
 the
  if (width > 5 && height > 2)
in handle_window_change_signal. This means that in e.g. a 1-line
terminal, you won't be setting FrameRows to the actual number of lines
of terminal (1), as you wanted. It will still be the old value, e.g.
2, and it may make cmcheckmagic crash by trying to do things in line 2
(which exists in the frame, which has 2 lines) but not in the terminal
(which doesn't have a 2nd line).


One option seems to have FrameRows always match the amount of terminal
lines. Can we remove the "if (=E2=80=A6 height >2)" limitation, and allow
1-line, 2-line frames etc.? (To really match the terminal size). Other
changes may be needed in other places, to avoid working with very
small frames..

Otherwise, if we let FrameRows be larger than the amount of terminal
lines, another option could be:
At the beginning of tty_write_glyphs, check whether we've been asked
to write glyphs in a line which is higher than the amount of lines in
the terminal. If so, return without writing anything. (Because the
line would be invisible).
Or maybe in some of the callers of tty_write_glyphs. Don't call
tty_write_glyphs to write glyphs in a line which is not visible (it
exists in the frame, but doesn't exist in the terminal).


By the way, I saw that the cmcheckmagic code checks curY (tty) >=3D
FrameRows (tty) - 1, note the -1, whereas the dispnew.c code I quote
above doesn't use the -1. I hope this is ok. As mentioned they're
checking different things so it may be ok, though I don't understand
why the -1.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 17:01:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 13:01:48 2024
Received: from localhost ([127.0.0.1]:59972 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snLIK-0007nt-Cy
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 13:01:48 -0400
Received: from mout.gmx.net ([212.227.15.18]:32835)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1snLIJ-0007ng-Dh
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 13:01:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725814896; x=1726419696; i=rudalics@HIDDEN;
 bh=vqDm2GVgbI40WWphiAXiJlCCt1/Dp7sZoI6NxIgD4ao=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=WIUn/6hERy8bhXt/9+c2LC1y0jTRioS4viorM0zmhm++IDYC6sL7GEYRQnZxqlM+
 s60oNbOQhv1Kg3GVrlq7pNFMz6/8HW18pAleVTIeqguJ3E8S0AND1Zja4q7oZ3ZqG
 f1/LaT1fASaHpgZcUL+cD7+t1VgW30AIaxrKgXzw1KhRz41uIrJFV6DPIIHdLGkaY
 z+7PwxWkSwb/VM3y8L4HOp+/BRsEe5+nSq0oXuKhMK59i1ABaDVxLaZ9vnHzC/HfY
 M3nTWCgCM0H0ls5l3vwOfPxF8lKbbvTcsVPD8S64vPBvk6+J8j3YW1gDxb0+NKPm+
 ScHBuc5acPA9EaDyJg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.217]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N0oBr-1rqYMv0aU1-017Slg; Sun, 08
 Sep 2024 19:01:36 +0200
Message-ID: <9aba8074-9556-4a6a-bb7b-7a4f92ea96d1@HIDDEN>
Date: Sun, 8 Sep 2024 19:01:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
 <CAJKAhPDWJD-zbsomqr+BzxgP0hJH=vBnBPN74K0+0eN8xY6fzg@HIDDEN>
 <d4740e50-0a25-4a9f-88b4-de46aa532dc1@HIDDEN> <86ed5uw48a.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86ed5uw48a.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:w70CLnG+ZQTzcfbIm3YGbXVgJ8YIAq5OB4VvXEBa0bW3I/utIX6
 rFarqriUqhYtKLm0EoEzw+m5bFWvc6wp98j52ZbYxv94fu/qzQZN5OE0lFf/ifITxJt4G2z
 wXEjJPw6cH4XjIVb0nIvw7Q7o/gcvOc9sMOY4O9MmoR45ueAH7i0JwR9T3jjt6v9d69gBh3
 I2fMZAh3xMK4uESgGsghA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:jsWkIsqxlxU=;uA7xOGIbXLHaIf6NlbTtsrYxWOa
 Kfp+y+1Xm2z8TB0HnpREcejYTNjXXsz4xhUAnCNINsbR2M2QHgaNtVQDHMqzCUk7REAC7M4ZU
 CnvXSm3eJ43AnDboFxgyB6bU8lQEPSiM+3Tsmzd/pGkqw0TjYFhTrId1qUlJDQgZYPiLp6jk6
 WSZeSA2QgDAgrnx/cNdsBovLvon5IANHOG8oTZWoKjNwqTcYHvxT28w001cG6WuvC/Xgm2kcp
 zfjxTXXORIJmm9jS6O7fB2hfajnFN3fvJ0mMeoM21ZLyzaRLKLY9n7eWnRk26M58qgkOEPKJG
 sKEheIyPYL/1BbDi2/yT94NpVH2schGCUpfoJeW19XiIWphjBxOiTzfJ9LSU4m7BOt4z9NmpZ
 EFYJmNvQtgaquId1sLZ+eQ22YmhpDG80vyA8maZAW1hDJU/ENkJxSTAbprUr5VwqAlVESn7gt
 04iRzUnozC5UBsPKmKPSsi7Kp86/kfRzhAsSTEKXGV4WaIDWWH9JuXxbnFpClu1qRlkDw//R1
 VmGQioYFbyP4ctQBO/YkiwmZXoFiDkR253zetreu8fupuczW21ef1Iz4KJVZO6GSFXNuqfQtK
 XJhm78y94Hm1n3lHygDXAgUtjZLJ/ouEwb2uj8nAr1kdFEfgznif1gB4kb+MPlAYVGrEh3JWX
 4SokItwFO8maElfytgkovhriX+slPjz7WNzKHPLdP+8UjMjrZ/JqthXBnC19pOrzT8ABqhFct
 ivMWxHyhruow5XDBFhY9REMuD8PkrdbX8MFC6ZBn99CXpJX5rtv+Clz1lDAW3uGT71pv87i3C
 VSXDVcb8Uwx/Dd7MxM9d3NrrSKpQi7/7puYoZssLeli1U=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > I don't think it's an off-by-one.  It's simply that Emacs draws the
 > screen top to bottom, so the very first row that violates the
 > assertion by exceeding FrameRows is the only one that is seen.

You're right.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 15:35:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 11:35:01 2024
Received: from localhost ([127.0.0.1]:59906 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snJwK-0003C8-UK
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 11:35:01 -0400
Received: from eggs.gnu.org ([209.51.188.92]:59270)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1snJwJ-0003Br-KB
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 11:35:00 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1snJu4-0004MT-NB; Sun, 08 Sep 2024 11:32:40 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=wc7WYbQD3Wev74WONx5e8Le3VXBfsWx6DV183IerOIM=; b=jvCsLV5MlV+X
 CgOU3+ECPo7zpVQNE9/cidosPAIhvzZnw3r37Uhg+KKFAiBn0m1VWjL5Wiq3DK1imOGvXx1ubJEqo
 PpR0WkhgtEFXGwEFMv8Ygi4vohwmvta8/6sNW7+GBiyCbd7V5KMz4vBWb+EZx/crKVqeZ6vuA7Gof
 vKQs6e5IP0c023Dhs/bpmsO8HLSCkF2QUcnMEERPX9hg4jpZP53ropvnkU8nhAH59xiBspzSnppD7
 TIXb+gZjfQH1p9MgfHBUvpr38u5ka4ywmM7ZC7lm2soq9yIKQRw+Hzre7Yo7OWSAoPDyz9ebQObcG
 zsh8who1ZUv9hWhJvHb/Jg==;
Date: Sun, 08 Sep 2024 18:32:37 +0300
Message-Id: <86ed5uw48a.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <d4740e50-0a25-4a9f-88b4-de46aa532dc1@HIDDEN> (message from
 martin rudalics on Sun, 8 Sep 2024 16:43:54 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
 <CAJKAhPDWJD-zbsomqr+BzxgP0hJH=vBnBPN74K0+0eN8xY6fzg@HIDDEN>
 <d4740e50-0a25-4a9f-88b4-de46aa532dc1@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sun, 8 Sep 2024 16:43:54 +0200
> Cc: Eli Zaretskii <eliz@HIDDEN>, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  > In cmcheckmagic we have:
>  >        if (!MagicWrap (tty) || curY (tty) >= FrameRows (tty) - 1)
>  >            emacs_abort ();
>  >
>  > Is this an assertion that needs to always hold?
> 
> I very strongly doubt so myself.  And strangely it's _always_ an
> off-by-one error here just as you sketched below.

I don't think it's an off-by-one.  It's simply that Emacs draws the
screen top to bottom, so the very first row that violates the
assertion by exceeding FrameRows is the only one that is seen.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 14:59:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 10:59:00 2024
Received: from localhost ([127.0.0.1]:59879 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snJNT-0001HK-Eu
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:58:59 -0400
Received: from mout.gmx.net ([212.227.17.20]:45883)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1snJNR-0001H4-GY
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:58:58 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725807526; x=1726412326; i=rudalics@HIDDEN;
 bh=6egIgnx24OknKrDvmiNl1y9KVwLyd/Q1/ocFH+oyIE4=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=jVnsdg/3wA8uqCr6n7TDN40LpeSdSTlYLm+wVpzeE9LQD0M4pLqxbwkDli2pToWq
 uIQL+GFrVqC4qGcVrn9C7WH58DKp9ugO0l00hkjC8NjEvTv5y9qNUd0XJ7ZPEI1eU
 MlQv6YaZXnFBgFr2J4k6PTBoYTORrRdv12bnzPsqgyZW89UjUAXQweSSoAQEJGEf3
 02B7Txxl/BrGkF3Hu7aeSLJ3XQJatxEb7v+7wy2T91vl9YXVIKlM6B0RhMfk/VlP9
 CWaj1mWfVOemnlcIPfvAhk1Nr7SijFKFQWRcyfQ9ExtlRopDXQ6/ARZTOGNU11+ZT
 KGGSgegxuT0bE3oymA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.217]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MBm1U-1sslwo17PA-000QLE; Sun, 08
 Sep 2024 16:58:46 +0200
Content-Type: multipart/mixed; boundary="------------qCWD7mi1hQmE6Wjh4Ckg0R2c"
Message-ID: <2d8e4603-5ea6-41e9-abfe-461392f717db@HIDDEN>
Date: Sun, 8 Sep 2024 16:58:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Daniel Clemente <n142857@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
X-Provags-ID: V03:K1:b901M27oDLYL5n3S8apidXIHQs33V46uEXI7CQiC7skITI0ZOrE
 oJUUnHeeSulPe+tCG02/YqZ3imZS3ulUwv59rz8jMz58wxlv10PyWumKFxwBxwsB9hl7L20
 qCM1+pRqRJvqq+pQNqQHUp+GfP8Kcp0QkJqnLzhaHc2KWRzx+9bhdqg4KO0p+3zv9umMdVt
 9bvPenwIdzxC2j8IaUHUA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:HQDpzcExmZc=;4Yb/9LY1ftwGQ+Q4p4D5421vqMj
 rkHP71Z4y99WWjKdRTFbZqGq1q1+2LvetRNRxSacujw21FeTD+Gui/J6puNk/E3+y92NSsNGl
 R6mnqfzXOOOk/ah7lhzPRN2eO7nE34B8S84/q5K7aZiWB9uupoIsrywnxJmW2D1Zj8F/SiDWW
 CqD09lFN3RNMRF6s7WRti4IdowfwilrSCj6I0Riig+BZUr49ekoUoOSx5HzSZpsYdor4cZrcq
 oEPxxd1Xuz+oHYDDUf+yB7Jr2ku3LqOBaw3AdvnBh3FbZoqD7BslG8CMDyoeJVVlVWYTC1kU+
 /qVei5gAVcAFn4Q1XcasCt8lDZySPrd7ye69UARuqC1YkkcEOrqVHJ1flTE5vKtZDhkhzjmTV
 OE5aoHKpGTF9YrVHu3hC0RpfX26ocy31tDCwibcgY1cUKIG2ceDDxwCH0FbVjbcSS3+Xp7ZfJ
 dyoSOG8WKtAfGZ3TDEWQvtfuN0w2r9pz8yOkWmVBA73pS39QK6jiM+xd9RGCsA+bpkkmC52vP
 FczK211cd1MEqqasTHcfXKBl+0le9lv95C5szNrikyf71ip2eCICg+6AWbNIoFuxV9amOlvsR
 jBsroOKRCY7wLkOrzP/3T8v8E+82x1TfZvticFgdFSvxrlRvXP0SHLNWWjx2q7zx/wfa/yn1G
 +yTUko4Fj43l8sZiYal0CLM5PlJ8klxELNEP+OD0L6yRubyLBumkDYGtGSuA6dRQeFx8fSygI
 06jgQ5tepAThP22QyTXjypL+8ma05u3Ir0U0p/PK/4d+5mm9vCqK2NWegEIFcSx09ylU/58PB
 aaNwuIMAiTNpGTSZ8PvYrLJA==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is a multi-part message in MIME format.
--------------qCWD7mi1hQmE6Wjh4Ckg0R2c
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

ID4gSSBjYW4gY2F1c2UgdGhlIGJ1aWxkX2ZyYW1lX21hdHJpeF9mcm9tX2xlYWZfd2luZG93
IGZhaWxlZCBhc3NlcnRpb24gKA0KID4gICAgZ2x5cGhfcm93X3NsaWNlX3Aod2luZG93X3Jv
dywgZnJhbWVfcm93KSBpcyBmYWxzZSAgKSB3aGVuIHNsb3dseQ0KID4gcmVzaXppbmcgcm93
IGJ5IHJvdyAoN+KGkjbihpI1IHJvd3MpLiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgZG9lc24n
dCBtYXR0ZXINCiA+IChjYW4gYmUgYSBub3JtYWwgb25lKS4NCiA+DQogPiBZb3UgY2FuIGFs
c28gdHJ5IG1heGltaXppbmcvdW5tYXhpbWl6aW5n4oCcdGhlIHdpbmRvdyBpZiB5b3Ugd2lu
ZG93DQogPiBtYW5hZ2VyIHN1cHBvcnRzIGl0LiBUaGF0J3MgYSB3YXkgb2Ygc3VkZGVubHkg
Y2hhbmdpbmcgdGhlIG51bWJlciBvZg0KID4gcm93cyBmcm9tIGEgbm9ybWFsIHZhbHVlIChl
LmcuIDIwKSB0byBhIGRhbmdlcm91cyB2YWx1ZSAoZS5nLiA0KS4NCiA+IEFmdGVyIHVubWF4
aW1pemluZyBpdCBpbW1lZGlhdGVseSBjcmFzaGVzIChpZiB5b3UgZGlkIHRoZSBDLXggMg0K
ID4gc3BsaXQpLg0KDQpQbGVhc2UgdHJ5IHRoZSBhdHRhY2hlZCBkaWZmIChmcm9tIG15IGhl
YXZpbHkgZWRpdGVkIGNvcHkgb2YgbWFzdGVyLCBpZg0KaXQgZG9lc24ndCBhcHBseSBjbGVh
bmx5LCBjb21wbGFpbiBpbW1lZGlhdGVseSByYXRoZXIgdGhhbiBtZXNzaW5nIHVwDQp5b3Vy
IEVtYWNzKS4gIEl0IHNob3VsZCBmaXggdHdvIHNpbGx5IGJ1Z3MgaW4gd2luZG93LmVsIHRo
YXQgbWFrZSBhDQpmcmFtZSdzIHNhZmUgbWluaW11bSBzaXplIG11Y2ggdG9vIGxhcmdlIGFu
ZCBpbmNsdWRlcyB0aGUgZml4IEkgcHJvcG9zZWQNCmVhcmxpZXIgaGVyZS4NCg0KQW5kIGl0
IG1vdmVzIHRoZSBhc3NpZ25tZW50IG9mIEZyYW1lUm93cyB0byBoYW5kbGVfd2luZG93X2No
YW5nZV9zaWduYWwNCmluIGRpc3BuZXcuYy4gIERvaW5nIGl0IGluIGFkanVzdF9mcmFtZV9z
aXplIHdhcyBzaWxseSAoYXMgR2VyZCBNw7ZsbG1hbm4NCm5vdGljZWQgZWFybGllcikuICBG
cmFtZVJvd3Mgc2hvdWxkIGJlIHRoZSBoZWlnaHQgb2YgdGhlIHR0eSB3aGljaCBjYW4NCmJl
IHNtYWxsZXIgdGhhbiB0aGUgaGVpZ2h0IG9mIG91ciBmcmFtZS4gIEVtYWNzIGlzIHN1cHBv
c2VkIHRvIHN0b3JlIGl0DQpidXQgbm90IHRvIG1vZGlmeSBpdCBhY2NvcmRpbmcgdG8gb3Vy
IGNhcGFiaWxpdGllcy4NCg0KVGhlIHBhdGNoIGRvZXMgbm90IGZpeCB0aGUgY21jaGVja21h
Z2ljIHByb2JsZW0gYnV0IG1ha2VzIGl0IG11Y2ggbGVzcw0KbGlrZWx5IHRvIG9jY3VyLiAg
QW5kIHJlZGlzcGxheSBvZiBhbiBpbnNhbmVseSBzbWFsbCB0dHkgd2luZG93IGxvb2tzDQpt
dWNoIGJldHRlciBoZXJlLg0KDQptYXJ0aW4NCg==
--------------qCWD7mi1hQmE6Wjh4Ckg0R2c
Content-Type: text/x-patch; charset=UTF-8; name="terminal-resize.diff"
Content-Disposition: attachment; filename="terminal-resize.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggZjQy
MjZmYTQ0MjguLmU2NDhjY2IyNzBhIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtMTY5Miw5ICsxNjkyLDEwIEBAIHdpbmRvdy0tbWluLXNp
emUtMQogCQkgICAgIDAKIAkJICAgKHdpbmRvdy1taW4tcGl4ZWwtaGVpZ2h0IHdpbmRvdykp
KQogCSAgICAgIChtYXggKGNlaWxpbmcgcGl4ZWwtaGVpZ2h0IGNoYXItc2l6ZSkKLQkJICAg
KGlmICh3aW5kb3ctLW1pbi1zaXplLWlnbm9yZS1wIHdpbmRvdyBpZ25vcmUpCi0JCSAgICAg
ICAwCi0JCSAgICAgd2luZG93LW1pbi1oZWlnaHQpKSkpKSkpKSkpCisJCSAgIChjb25kCisJ
CSAgICAoKHdpbmRvdy0tbWluLXNpemUtaWdub3JlLXAgd2luZG93IGlnbm9yZSkgMCkKKwkJ
ICAgICgod2luZG93LW1pbmlidWZmZXItcCB3aW5kb3cpIDEpCisJCSAgICAodCB3aW5kb3ct
bWluLWhlaWdodCkpKSkpKSkpKSkpCiAKIChkZWZ1biB3aW5kb3ctc2l6YWJsZSAod2luZG93
IGRlbHRhICZvcHRpb25hbCBob3Jpem9udGFsIGlnbm9yZSBwaXhlbHdpc2UpCiAgICJSZXR1
cm4gREVMVEEgaWYgREVMVEEgbGluZXMgY2FuIGJlIGFkZGVkIHRvIFdJTkRPVy4KQEAgLTE4
ODgsNyArMTg4OSw3IEBAIGZyYW1lLXdpbmRvd3MtbWluLXNpemUKIAkgKG1pbmkgKHdpbmRv
dy1uZXh0LXNpYmxpbmcgcm9vdCkpKQogICAgICgrICh3aW5kb3ctbWluLXNpemUgcm9vdCBo
b3Jpem9udGFsIGlnbm9yZSBwaXhlbHdpc2UpCiAgICAgICAgKGlmIChhbmQgbWluaSAobm90
IGhvcml6b250YWwpKQotCSAgICh3aW5kb3ctbWluLXNpemUgbWluaSBob3Jpem9udGFsIG5p
bCBwaXhlbHdpc2UpCisJICAgKHdpbmRvdy1taW4tc2l6ZSBtaW5pIGhvcml6b250YWwgaWdu
b3JlIHBpeGVsd2lzZSkKIAkgMCkpKSkKIAogKGRlZnVuIHdpbmRvdy0tbWF4LWRlbHRhLTEg
KHdpbmRvdyBkZWx0YSAmb3B0aW9uYWwgaG9yaXpvbnRhbCBpZ25vcmUgdHJhaWwgbm91cCBw
aXhlbHdpc2UpCmRpZmYgLS1naXQgYS9zcmMvZGlzcG5ldy5jIGIvc3JjL2Rpc3BuZXcuYwpp
bmRleCAxYTI0MzA3OWU0Ni4uOGE1Nzg2NmQzZWQgMTAwNjQ0Ci0tLSBhL3NyYy9kaXNwbmV3
LmMKKysrIGIvc3JjL2Rpc3BuZXcuYwpAQCAtNjA1NCw2ICs2MDU0LDExIEBAIGNoYW5nZV9m
cmFtZV9zaXplXzEgKHN0cnVjdCBmcmFtZSAqZiwgaW50IG5ld193aWR0aCwgaW50IG5ld19o
ZWlnaHQsCiAgICAgICBhZGp1c3RfZnJhbWVfc2l6ZSAoZiwgRlJBTUVfUElYRUxfVE9fVEVY
VF9XSURUSCAoZiwgbmV3X3dpZHRoKSwKIAkJCSBGUkFNRV9QSVhFTF9UT19URVhUX0hFSUdI
VCAoZiwgbmV3X2hlaWdodCksIDUsCiAJCQkgcHJldGVuZCwgUWNoYW5nZV9mcmFtZV9zaXpl
KTsKKyAgICAgIGlmICgoRlJBTUVfVEVSTUNBUF9QIChmKSAmJiAhcHJldGVuZCkgfHwgRlJB
TUVfTVNET1NfUCAoZikpCisJeworCSAgRnJhbWVSb3dzIChGUkFNRV9UVFkgKGYpKSA9IG5l
d19oZWlnaHQ7CisJICBGcmFtZUNvbHMgKEZSQU1FX1RUWSAoZikpID0gbmV3X3dpZHRoOwor
CX0KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9mcmFtZS5jIGIvc3JjL2ZyYW1lLmMK
aW5kZXggN2Y0YmYyNzRhZDkuLjk5MDhlYzMwN2Y3IDEwMDY0NAotLS0gYS9zcmMvZnJhbWUu
YworKysgYi9zcmMvZnJhbWUuYwpAQCAtODI3LDE0ICs4MjcsMjYgQEAgYWRqdXN0X2ZyYW1l
X3NpemUgKHN0cnVjdCBmcmFtZSAqZiwgaW50IG5ld190ZXh0X3dpZHRoLCBpbnQgbmV3X3Rl
eHRfaGVpZ2h0LAogICBuZXdfdGV4dF9saW5lcyA9IGRvc19uZXdfdGV4dF9saW5lcyAtIEZS
QU1FX1RPUF9NQVJHSU4gKGYpOwogI2VuZGlmCiAKKyAgLyogQXNzaWduIG5ldyBzaXplcy4g
IERvIGl0IGhlcmUgdG8gbWFrZSBzdXJlIHRoYXQgZnJhbWUgYmFzZWQKKyAgICAgcmVkaXNw
bGF5IGdldHMgY29uZ3J1ZW50IHNpemVzIGZvciB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZnJh
bWUKKyAgICAgbWF0cml4IGFuZCB0aGUgY29tYmluZWQgd2luZG93IG1hdHJpY2VzLiAgKi8K
KyAgRlJBTUVfQ09MUyAoZikgPSBuZXdfdGV4dF9jb2xzOworICBGUkFNRV9MSU5FUyAoZikg
PSBuZXdfdGV4dF9saW5lczsKKyAgRlJBTUVfVEVYVF9XSURUSCAoZikgPSBuZXdfdGV4dF93
aWR0aDsKKyAgRlJBTUVfVEVYVF9IRUlHSFQgKGYpID0gbmV3X3RleHRfaGVpZ2h0OworICBG
UkFNRV9QSVhFTF9XSURUSCAoZikgPSBuZXdfbmF0aXZlX3dpZHRoOworICBGUkFNRV9QSVhF
TF9IRUlHSFQgKGYpID0gbmV3X25hdGl2ZV9oZWlnaHQ7CisgIEZSQU1FX1RPVEFMX0NPTFMg
KGYpID0gRlJBTUVfUElYRUxfV0lEVEggKGYpIC8gRlJBTUVfQ09MVU1OX1dJRFRIIChmKTsK
KyAgRlJBTUVfVE9UQUxfTElORVMgKGYpID0gRlJBTUVfUElYRUxfSEVJR0hUIChmKSAvIEZS
QU1FX0xJTkVfSEVJR0hUIChmKTsKKwogICBpZiAobmV3X2lubmVyX3dpZHRoICE9IG9sZF9p
bm5lcl93aWR0aCkKICAgICB7CiAgICAgICByZXNpemVfZnJhbWVfd2luZG93cyAoZiwgbmV3
X2lubmVyX3dpZHRoLCB0cnVlKTsKIAogICAgICAgLyogTVNET1MgZnJhbWVzIGNhbm5vdCBQ
UkVURU5ELCBhcyB0aGV5IGNoYW5nZSBmcmFtZSBzaXplIGJ5CiAJIG1hbmlwdWxhdGluZyB2
aWRlbyBoYXJkd2FyZS4gICovCi0gICAgICBpZiAoKEZSQU1FX1RFUk1DQVBfUCAoZikgJiYg
IXByZXRlbmQpIHx8IEZSQU1FX01TRE9TX1AgKGYpKQotCUZyYW1lQ29scyAoRlJBTUVfVFRZ
IChmKSkgPSBuZXdfdGV4dF9jb2xzOworLyoqICAgICAgIGlmICgoRlJBTUVfVEVSTUNBUF9Q
IChmKSAmJiAhcHJldGVuZCkgfHwgRlJBTUVfTVNET1NfUCAoZikpICoqLworLyoqIAlGcmFt
ZUNvbHMgKEZSQU1FX1RUWSAoZikpID0gbmV3X3RleHRfY29sczsgKiovCiAKICNpZiBkZWZp
bmVkIChIQVZFX1dJTkRPV19TWVNURU0pCiAgICAgICBpZiAoV0lORE9XUCAoZi0+dGFiX2Jh
cl93aW5kb3cpKQpAQCAtODY3LDIyICs4NzksMTIgQEAgYWRqdXN0X2ZyYW1lX3NpemUgKHN0
cnVjdCBmcmFtZSAqZiwgaW50IG5ld190ZXh0X3dpZHRoLCBpbnQgbmV3X3RleHRfaGVpZ2h0
LAogCiAgICAgICAvKiBNU0RPUyBmcmFtZXMgY2Fubm90IFBSRVRFTkQsIGFzIHRoZXkgY2hh
bmdlIGZyYW1lIHNpemUgYnkKIAkgbWFuaXB1bGF0aW5nIHZpZGVvIGhhcmR3YXJlLiAgKi8K
LSAgICAgIGlmICgoRlJBTUVfVEVSTUNBUF9QIChmKSAmJiAhcHJldGVuZCkgfHwgRlJBTUVf
TVNET1NfUCAoZikpCi0JRnJhbWVSb3dzIChGUkFNRV9UVFkgKGYpKSA9IG5ld190ZXh0X2xp
bmVzICsgRlJBTUVfVE9QX01BUkdJTiAoZik7CisvKiogICAgICAgaWYgKChGUkFNRV9URVJN
Q0FQX1AgKGYpICYmICFwcmV0ZW5kKSB8fCBGUkFNRV9NU0RPU19QIChmKSkgKiovCisvKiog
CUZyYW1lUm93cyAoRlJBTUVfVFRZIChmKSkgPSBuZXdfdGV4dF9saW5lcyArIEZSQU1FX1RP
UF9NQVJHSU4gKGYpOyAqKi8KICAgICB9CiAgIGVsc2UgaWYgKG5ld190ZXh0X2xpbmVzICE9
IG9sZF90ZXh0X2xpbmVzKQogICAgIGNhbGwyIChRd2luZG93X19waXhlbF90b190b3RhbCwg
ZnJhbWUsIFFuaWwpOwogCi0gIC8qIEFzc2lnbiBuZXcgc2l6ZXMuICAqLwotICBGUkFNRV9D
T0xTIChmKSA9IG5ld190ZXh0X2NvbHM7Ci0gIEZSQU1FX0xJTkVTIChmKSA9IG5ld190ZXh0
X2xpbmVzOwotICBGUkFNRV9URVhUX1dJRFRIIChmKSA9IG5ld190ZXh0X3dpZHRoOwotICBG
UkFNRV9URVhUX0hFSUdIVCAoZikgPSBuZXdfdGV4dF9oZWlnaHQ7Ci0gIEZSQU1FX1BJWEVM
X1dJRFRIIChmKSA9IG5ld19uYXRpdmVfd2lkdGg7Ci0gIEZSQU1FX1BJWEVMX0hFSUdIVCAo
ZikgPSBuZXdfbmF0aXZlX2hlaWdodDsKLSAgRlJBTUVfVE9UQUxfQ09MUyAoZikgPSBGUkFN
RV9QSVhFTF9XSURUSCAoZikgLyBGUkFNRV9DT0xVTU5fV0lEVEggKGYpOwotICBGUkFNRV9U
T1RBTF9MSU5FUyAoZikgPSBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpIC8gRlJBTUVfTElORV9I
RUlHSFQgKGYpOwotCiAgIHsKICAgICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAoRlJB
TUVfU0VMRUNURURfV0lORE9XIChmKSk7CiAgICAgaW50IHRleHRfYXJlYV94LCB0ZXh0X2Fy
ZWFfeSwgdGV4dF9hcmVhX3dpZHRoLCB0ZXh0X2FyZWFfaGVpZ2h0Owo=

--------------qCWD7mi1hQmE6Wjh4Ckg0R2c--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 14:44:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 10:44:16 2024
Received: from localhost ([127.0.0.1]:59874 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snJ9E-0000Y0-0E
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:44:16 -0400
Received: from mout.gmx.net ([212.227.17.21]:57205)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1snJ9B-0000Xk-SK
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:44:14 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725806641; x=1726411441; i=rudalics@HIDDEN;
 bh=1VUAK0XkslIxoK7EAjKNUIA1hwnRVftTwPRr420PO/M=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=SSxVAfjtL111BNKSUKMJ8Jo2ksk0nAZ4vs6ZqTazmxQ0mxkNCJRk7kFHRhJXLBjB
 OC7Ghk3xwEcpiWeUhagbalpQ/xQWR/hFmg83XQQMwh69rFZ2mFCVjj8Nz3avetGid
 +mJO+cNxmC5fxmZJKpVaWGxK5mWWZa7h/zHjKAouirxAZU+TxOwk64kS/dqg1MJJO
 PEdnB4RIjR5/2mblJN9Q7q9wwRwPWu8oe2RWIpd0kNkpg3Pk1jLR4z+eOW84bWUzG
 VJJWHSiSf73TaSgTq8tVoFFHXciZ5YAX/ZbFrbuEAhocmHeAZvB+ksPnQIHQLZX6b
 zsu3VVzNwai3jnAcrA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.217]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MWASY-1sYTAw3Tfm-00OA21; Sun, 08
 Sep 2024 16:44:00 +0200
Message-ID: <d4740e50-0a25-4a9f-88b4-de46aa532dc1@HIDDEN>
Date: Sun, 8 Sep 2024 16:43:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Daniel Clemente <n142857@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
 <CAJKAhPDWJD-zbsomqr+BzxgP0hJH=vBnBPN74K0+0eN8xY6fzg@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <CAJKAhPDWJD-zbsomqr+BzxgP0hJH=vBnBPN74K0+0eN8xY6fzg@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:WVOW8762wRAeM4buKePoCat/BfqOYa2L7lX/isk3IUTcTUglMkm
 81kFe43tJckl4vjhmHV2k/092C2c6arWDhCsY3WyTaOBsjlJL1aQ1fuXbynQPt1AOG3D8WY
 wTQCyiKOx9FUKDYPpavQ/U+Ld/K1v73H8v1Z+4HQXOKwW2vU9LOraln5+FAavEtNAyrOklU
 XcDFRWGEwT2yPxX/5wN3A==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:+poM+66lQxY=;OL+Won5hFQiN05LoEANhyq8T3Ix
 +7TF2GSKzZJiJ/2z2W2TmaVNOYXhjfSkEDiEzMPhvkK2cJVBmX3IXA7hgTYsUlLWGJwpVJB/X
 Y97wf/NstFsa+7nmIW7n7maw/ty4x4gksY2NHbdrtYUqHwTPsWZN1xIGgGD3DHHqF7QTiRrNL
 c+JMv0Lzt8UhUb56tUxSzQCYsVvvOG5SeKM3lvmn18yHhTjxOVa0sXRT7HBoiH3dx8f7EbT3z
 7Ae+rlLf4sM8rNyDnWD5PIKXappDCltwJy9lV2+t0KqylWpYglUev64f+TfUVhhyyIOuaywlH
 jQTLfCMtBL/zxZCXxa1XjtOkPLvpPd82aCNaIqrUrJp0E4ixXSV1P0se9yVw+sCPGTV6mtnNT
 4xTlFEPBIseIZSQv7Sl3KlxbSTEJeGjTmzT2BUw30rBxtDnerVL3t/MtA46FZyB5GRKp9KTB7
 IkHaBsjDyz7PL49G0sjmV/jiLeUL2ocX47QRYujsC7LBL/RcRXs8SMvJUJnOlZVUGMQ3XVjmC
 yfd1xvbNGBZe7rMR+Ltw463uRl7O5nONr/o5ddeVhspMa5CgKJz+GuP7YUwKzoR4NrOQkVLmd
 oVztCwiiylW8AHJ9evKpyGnluRp4+iOoepDgAywnf7we0/qKFQTG2dHbxHxr0tEM/z+geKK+2
 wPi6HePKA8SIOkgdA5Pu8VMol3g2Spcs7XIGG+Sao+mInm7IgWJD7WYbJgLQ2ZykGXTtfyEH0
 WNp1R7J7sW9TOzfJL3zBweOrJx0LvKbVPup5yizdCzQWOKYn/HtZCp2HKzkhLPrJq6YLWhoyg
 7rUijpEbPVZbNp7xoYzaTf5A==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > In cmcheckmagic we have:
 >        if (!MagicWrap (tty) || curY (tty) >= FrameRows (tty) - 1)
 >            emacs_abort ();
 >
 > Is this an assertion that needs to always hold?

I very strongly doubt so myself.  And strangely it's _always_ an
off-by-one error here just as you sketched below.

 > I have tried
 > copy-pasting it at the beginning of tty_write_glyphs and I found that
 > it fails continuously (e.g. it tests: 62 >= 63-1). Actually I used a
 > breakpoint instead of emacs_abort.
 > Are there useful places where I could trace that  the assertion holds
 > true?, earlier places than the current place.

I suppose in all those cases curX (tty) == FrameCols (tty) does not hold
so the assertion does not trigger.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 14:36:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 10:36:37 2024
Received: from localhost ([127.0.0.1]:59800 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snJ1o-00009O-SU
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:36:37 -0400
Received: from mout.gmx.net ([212.227.17.22]:39277)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1snJ1m-00009B-E6
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 10:36:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725806185; x=1726410985; i=rudalics@HIDDEN;
 bh=THz/3j8BMtnMdChHD1cozTchIBeIsxvK/rQpURODiMk=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=HUgs8xOsESlSqX+UO7OluBOTI+1o7aX956p1kblb3YejMNSTjw0mIVEiGHvH3edC
 i6HDDq1C3SffOlmGepynNLUcXSP7QegVsLLKrqszIU0csJxIyQU02sy4jIUfDL9bJ
 YEF7DI0kNJsN6AMHUrRBRdO3wBqmoa7kKvwAWGTUi5Ao/xVewHdTOl531/8G9Hh3G
 +gx7ke1Vl1C2MvLp8p5J5IaO+eG9fYmr42WNrU/FQwzJxKiu7DQkJGWxHawdV1A8R
 pz+EvgqxoCe0wqW6mfvSswVt/i0Gn7VsdkNpuNsKFNHCktotXq2G7xycdKXzLlhUJ
 ESdNpvSp2idJG+7MDg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.217]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N3bX1-1s5TnW2xnf-010b5G; Sun, 08
 Sep 2024 16:36:25 +0200
Message-ID: <6421c647-1675-4e28-80ad-43eea06cf5fe@HIDDEN>
Date: Sun, 8 Sep 2024 16:36:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Daniel Clemente <n142857@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <CAJKAhPBjuvicyTcDcjxmx5xCRsUqWkUw9LEOf7oQoHr6trVh_w@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <CAJKAhPBjuvicyTcDcjxmx5xCRsUqWkUw9LEOf7oQoHr6trVh_w@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:Ui89ExYxeAN5mf8+GI62q21gnihYldzeH4BFYMXFZ520B0ytJOr
 7oObjcD5Gb0B9+FYj3C1H2csAd2kkxod+9yTC9fMSduXSVd7W7wEUvoUVQYg00K4Hxun2+i
 QPUVTV7GhUejm725iJz1EgUaymMuNPuX9/+4NGUiBAwm9GxhhGxMRJebkmORxHz91sYQ1RT
 Az6+ALLXjy6xHzZLgujdg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:LG/RF/sH4JA=;A/YKeSwF2OyoJX+2S9471QKaS4w
 ySrwZOIUZ9LxjEgmsvWgttj9HKb/u/KlKApxgpUYMpreX6xKx/jSYGtTVxYTIqirbSjmVwC3q
 TJko7ee1A+YzxelKX0sMOqxV0SxrjPyf/JM5tS+2qApkB6Ego9bAjhrpUqMUSfAC6Pd+2Sj9G
 bh+LJe1QkzWm1Cwg1ONUvJ+cJjpumWvp831pvxCt0QahwnShyjZEviB+ZWUu2KB+SA39sDQg5
 yhdS6QutSnB5/7JE5AN9y/OXLEh2OQzhf3uqAn8cpGy966fzwEz3AvqT1elHol4Qk/2LCs7MB
 4iNJFgETDaLeMnvgZCavclawWG5kOC8yZBTKg9y7OMLK0oAtxZYL8A79zUoLihEizWc+6sie0
 BLoyQeg63kIi4N6TZFdgJFnF6Cen1GqNIvOlRJSRNhXHMWInys957zXgS/aTqnkG2ZM79X4Zs
 t6nM72sJZ/v/7tWKz0VYIv+JDO89ie1za0zax1Y0creyTzYFtVTj5p4C8Y0afAOZZiH0LZjj7
 G37CXm7s+xPBQiT/wAZKwIK5vF8fh4sg+78BTNtBsb8WmKE9enYeVytQSuEGb1Rq5T77RavzL
 Yr9VYj7yu8ilo/G/MrTFnwfg2A3LxOqfpm62e1suoFn+REa0slYBPGVNqWh7Ka6IGYzZ2ew/z
 VmexJ+irwGOQz6G5oU0a3oE8PNnyn/pO90f1sxpQ7mlof7TZRDhrtIZ4/Edkf/m1lcR5Waed6
 mlVUQZZiyXg1gJLborxKwAiuU8VH4bkHPyRPMP8ezYAdOL8DxPn4VM9xFqNVMqdLK/6/SM5c+
 xcHOvzJZoAA0Iu9Mct4aNz3A==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > We're dealing with two type of assertion violations / crashes / backtraces:
 > - in update_frame_line, that causes chcheckmagic to fail
 > - in build_frame_matrix_from_leaf_window, assertion violation
 >
 > With the same build I mentioned in the top post (that is, without any
 > code change), I can see both, after following the same instructions I
 > posted.
 > The update_frame_line happens much more frequently, therefore I
 > thought that the update_frame_line was fixed in 71289; but it's not: I
 > just reproduced the update_frame_line issue.

Good to know.

 > So you can't be sure that the original assertion violation is gone.

Right.

 > Your build may have crashed with the update_frame_line crash, before
 > reaching the build_frame_matrix_from_leaf_window crash.

Right again.  But I think that with my initial patch, the likeliness of
the later has decreased.

 > The best would be to solve both crashes :-)
 >
 > I don't know whether both crashes are related.

They are both caused by shrinking the frame size to something Emacs
doesn't like.  Note the

       if (width > 5 && height > 2)

check in handle_window_change_signal and the

   /* Don't allow too small height of text-mode frames, or else cm.c
      might abort in cmcheckmagic.  */
   if ((FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)) && NILP (horizontal))
     {
       int min_height = (FRAME_MENU_BAR_LINES (f)
			+ FRAME_TAB_BAR_LINES (f)
			+ FRAME_WANTS_MODELINE_P (f)
			+ 2);	/* one text line and one echo-area line */

       if (retval < min_height)
	retval = min_height;
     }

in frame_windows_min_size.  People always were aware of the problem but
with split windows these values are of no use.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 11:31:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 07:31:24 2024
Received: from localhost ([127.0.0.1]:58077 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snG8a-00071r-77
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:31:24 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56376)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1snG8Y-00071e-PQ
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:31:23 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1snG8Q-0007DZ-Ua; Sun, 08 Sep 2024 07:31:14 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=qoJNhtcWSxkFDGJ2J8WzD+ClEk1Qafu47q8XiJ0b2mc=; b=Do54uwPSJEUDF2tOXI41
 cfnoy3dziw7gjHLxn6dyUi6vdG7Spvsp/S3fp+A9qO8LG62pl2t7bc+PXsynTAUZSMT7YC2Mh1htr
 e2qbHnv2Hq7ENF8WjFog+UsiGQlHJqI14t0QT3gNyBtcAZRLyJtUXJomh6RxnsmcO3ICg2FTgu4p/
 2wFdE//3sULrL0zorWg6ElYDMEBSO+3hWe12p+HvPoTseDdsKyAfSG37VDuq8QqMMI0q9s2OUHqIb
 AINSip6FvZUCNre+WIRuCtiEb19gJYsr3jT2co+I7ossrG5E6m3QW/HarmPrwRXd/09TNv51Q8srV
 UO7PzMv3RFtsvQ==;
Date: Sun, 08 Sep 2024 14:31:08 +0300
Message-Id: <86h6aqwfer.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Daniel Clemente <n142857@HIDDEN>
In-Reply-To: <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
 (message from Daniel Clemente on Sun, 8 Sep 2024 11:08:14 +0000)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
 <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: rudalics@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Daniel Clemente <n142857@HIDDEN>
> Date: Sun, 8 Sep 2024 11:08:14 +0000
> Cc: martin rudalics <rudalics@HIDDEN>, 73022 <at> debbugs.gnu.org
> 
> > I noticed that causing this assertion to fail is not very easy.  For
> > example, if I drag the terminal emulator window one line at a time, I
> > can never cause it, even if I get to frame sizes that are much smaller
> > than the minimum we need for 2 windows.  Somehow, I need to drag the
> > frame so it resizes by several lines and/or columns.  Not sure why.
> >
> 
> I can cause the build_frame_matrix_from_leaf_window failed assertion (
>   glyph_row_slice_p(window_row, frame_row) is false  ) when slowly
> resizing row by row (7→6→5 rows). The number of columns doesn't matter
> (can be a normal one).

I cannot.  Slowly dragging the window never crashes.

> You can also try maximizing/unmaximizing“the window if you window
> manager supports it. That's a way of suddenly changing the number of
> rows from a normal value (e.g. 20) to a dangerous value (e.g. 4).
> After unmaximizing it immediately crashes (if you did the C-x 2
> split).

This also never crashes here.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 11:11:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 07:11:13 2024
Received: from localhost ([127.0.0.1]:58044 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snFp2-0005v5-T1
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:11:13 -0400
Received: from mail-ua1-f48.google.com ([209.85.222.48]:60684)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1snFp1-0005ut-UV
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:11:12 -0400
Received: by mail-ua1-f48.google.com with SMTP id
 a1e0cc1a2514c-846d536254fso1034799241.1
 for <73022 <at> debbugs.gnu.org>; Sun, 08 Sep 2024 04:11:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725793804; x=1726398604; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=QE07cERyDtP/gCwa1bjfglUiPe3CLB4ChkNzCYPNCO0=;
 b=kQu1Xlqued/xTuCuVgCx8vZnu1JYCQ/AnZQy7kd67jgl7rlw1BOn+bDj0tLofhs9ZD
 28FBJ1SUkzhZDp4YppF3Wt/++jHUGCcj5c15yGCz0LJgjNZpKzmUqJb5J/UNNfSykkZ1
 IQDhTueKvV0wDaR95glfpxtFofZNHcghY12W2Q/A2xwHhrkPUjDIEbsEwpfNC8h0Z3hp
 6/ynHgSv0t+ucs4lOUSqQ2JlegRCjO+Lib8QY0nZ58LZ8gnZH0iZRYAZdm35xgPJ5pu0
 KEq06XsX0MdFsTn//0KE3G9doRzc0hFGqFrkp4cQRBl/zP01p8BP1s58BLjDQ0gRCuPt
 c3fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725793804; x=1726398604;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=QE07cERyDtP/gCwa1bjfglUiPe3CLB4ChkNzCYPNCO0=;
 b=sg9NUUdQA37/rnX3b6MQGb1Y0HM1GwX15mT6cw2VHMC73Fmvll00bWS126d3IPL9LG
 LJq6ef6nzxUd8KaUairngZR/sfgKQpFoBjHjY1HYIzuWyBLto1HIi+aSMD1J8FAReXdB
 J7ieDtqxd0547dyoGKjqQU8yqHCK5bx3SuxGGota6OnIg9pu9QU2kX40Hk8h2ok+2Wqv
 uRcJwarUOgszWOOIG9HKoXUtkFdlROQzYWKeTFin2kcZ86RUVZyaTx5YrmfjMKcsDkpk
 FlzTxpt7ec3hTPDw7ojvHXkbovgBucT9eQ6VVrVoTfPXsUZGTfDFftT0jQijiPLyAkHR
 /HLA==
X-Forwarded-Encrypted: i=1;
 AJvYcCU1j/CiywfFTD6hYQyhYmGEb8+G3ozhpkRWwEg4Vl1AIUMSxZGFysd6/MgXP5xVxYfck16q/Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyzVKbpQf5RLkXFefgZwQpFMIsOvBhsbhByifIVbXxeg731tuBV
 0E6K/0c7hOFy59wJCkKSGDO9MhPaLpV7x2OH26CGhlhKwZpaIepI/Z2pDhX+IWVPHGF6Cw2rFdT
 v6OsrAoU/Y8Eu5IRybtkcN6Stw0WLG91VnRQ=
X-Google-Smtp-Source: AGHT+IFOjVmkGnnV3HxUf/lJq3nNRryPlRY8/8HNl6VxNGwHqW2fPrgCMPYv2PjwWuvoPXg/2+DHNBdMgvqnHs2MDp4=
X-Received: by 2002:a05:6102:4405:b0:48f:447d:7915 with SMTP id
 ada2fe7eead31-49bde1c58e8mr5711026137.15.1725793804281; Sun, 08 Sep 2024
 04:10:04 -0700 (PDT)
MIME-Version: 1.0
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
In-Reply-To: <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
From: Daniel Clemente <n142857@HIDDEN>
Date: Sun, 8 Sep 2024 11:09:40 +0000
Message-ID: <CAJKAhPDWJD-zbsomqr+BzxgP0hJH=vBnBPN74K0+0eN8xY6fzg@HIDDEN>
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: martin rudalics <rudalics@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

> I attach the patch now, sorry for not doing it earlier.
>

Please attach patches if I can help trying out things. I don't know
this code so I may break it if I change the low-level behavior. But I
can safely add many breakpoints and debug messages to research the
bugs.
Apparently we could use more assertions in other parts of the code, or
move the existing ones (under glyph debug) to catch the problem
earlier.

In cmcheckmagic we have:
      if (!MagicWrap (tty) || curY (tty) >= FrameRows (tty) - 1)
          emacs_abort ();

Is this an assertion that needs to always hold? I have tried
copy-pasting it at the beginning of tty_write_glyphs and I found that
it fails continuously (e.g. it tests: 62 >= 63-1). Actually I used a
breakpoint instead of emacs_abort.
Are there useful places where I could trace that  the assertion holds
true?, earlier places than the current place.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 11:09:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 07:09:48 2024
Received: from localhost ([127.0.0.1]:58038 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snFng-0005jy-EW
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:09:48 -0400
Received: from mail-vk1-f178.google.com ([209.85.221.178]:61495)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1snFne-0005ji-8W
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:09:46 -0400
Received: by mail-vk1-f178.google.com with SMTP id
 71dfb90a1353d-5012813249cso522961e0c.2
 for <73022 <at> debbugs.gnu.org>; Sun, 08 Sep 2024 04:09:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725793718; x=1726398518; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=1pYXpKl1Cc3D9RIN6Ga2xoKM8y04A6fjkG9eS9qeQ2Y=;
 b=fiMubweWbMsx6s1hoRU2N+4C6rnbttekR8RttC7nsBEJSTi8cHVM4hjiB8u0gCJhVE
 PIHObYhSsv+ou/mx1Ab755gNlJLiUKCQCQwmtKDzYBfqx+IpNsRO8kZcvLKPcJ6CG7uL
 rtpyrORJSPT7BjiKr4B+Nx/IN2i/uYsMnxpCEzB5oNuNwEQ1ro/LCc5N6RxLPAEFKDxw
 mtvvWZv27p6f37dJke4oqlS3J4Hs/yB26VwOxE7sPu0T3/gj9bzC+4cZnHAOWNE9OMa0
 nR7SEr0p3m711hWmUsyIVC0YFQVxZW5tGRCkXqOqi+clHkF4rh5tOTIHB7V773PMGpCC
 YEWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725793718; x=1726398518;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=1pYXpKl1Cc3D9RIN6Ga2xoKM8y04A6fjkG9eS9qeQ2Y=;
 b=CDh6X5/QEjU6wCc8KNhkcut/RBFA0i8ql9PpFeWvSJpIbG4JF5o/YYLJv8TQ2SKpNb
 O2NGgNptk3Ibip4AljHlRy4vDpndBlL1UApxAsA+Fc0Mv0YD+dYoWlYd3BV+vxuBuPJ4
 7/dKjUCw+yx0R5SFFWlVUDuD8ygl6eKfG0DlNAe/KjAwRY291N8664t8zxe8iRocRAGi
 hblsKpmbKqM8amdmh7MUgoDYZaoVXt7dCnmwv7DWrjOyUoQCd8CEiEPrYC2iTdE2qf7W
 cGMMycxLfTM2Yhi266nfqNleUqSmpSQK8rSzNoy49ILuFFYOfIsUdgQ0vym43W2VqxR+
 8czQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCXaHHOcdn2+5YqdQBZJKAKWxm4F9mu/SNlDLqOl+IYcC+FOVcjNISoLAMuX+fsCtOIKfhtiIw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyivsDg4ldRcejMSF6LChX2KIRTV/5zRecIsfQvikhHgoJq55YK
 w3KaFHVz5EDAQ0okGDAhh3evnCWVrT1Zuy4FDttFIN9tiRnDsK+bwPlZuOTZeuA4RxRWMhe1zco
 WLYXMYl87F95aNpKTVjo4QfrGWm2u1XHfoOA=
X-Google-Smtp-Source: AGHT+IGqr99BRn8s/3qbHv3n+2lnCieFzxsgvbmVbhQbR+tBGCZ/6BGrhxnjiLzmCSEyDhjXoxbCX2eXVrVo281CtFo=
X-Received: by 2002:a05:6122:3123:b0:4fc:e4f5:7f83 with SMTP id
 71dfb90a1353d-5021423527dmr6891127e0c.9.1725793718609; Sun, 08 Sep 2024
 04:08:38 -0700 (PDT)
MIME-Version: 1.0
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
In-Reply-To: <86seue2l2b.fsf@HIDDEN>
From: Daniel Clemente <n142857@HIDDEN>
Date: Sun, 8 Sep 2024 11:08:14 +0000
Message-ID: <CAJKAhPApQOrWm8ge+kp7RMNjn9aq=-FSo5aCY_1gheRwGi5zOQ@HIDDEN>
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73022
Cc: martin rudalics <rudalics@HIDDEN>, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

> I noticed that causing this assertion to fail is not very easy.  For
> example, if I drag the terminal emulator window one line at a time, I
> can never cause it, even if I get to frame sizes that are much smaller
> than the minimum we need for 2 windows.  Somehow, I need to drag the
> frame so it resizes by several lines and/or columns.  Not sure why.
>

I can cause the build_frame_matrix_from_leaf_window failed assertion (
  glyph_row_slice_p(window_row, frame_row) is false  ) when slowly
resizing row by row (7=E2=86=926=E2=86=925 rows). The number of columns doe=
sn't matter
(can be a normal one).

You can also try maximizing/unmaximizing=E2=80=9Cthe window if you window
manager supports it. That's a way of suddenly changing the number of
rows from a normal value (e.g. 20) to a dangerous value (e.g. 4).
After unmaximizing it immediately crashes (if you did the C-x 2
split).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 8 Sep 2024 11:09:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 07:09:22 2024
Received: from localhost ([127.0.0.1]:58035 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snFnG-0005j8-2b
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:09:22 -0400
Received: from mail-ua1-f52.google.com ([209.85.222.52]:60666)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1snFnE-0005iq-5I
 for 73022 <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:09:20 -0400
Received: by mail-ua1-f52.google.com with SMTP id
 a1e0cc1a2514c-846cdfbb153so935578241.0
 for <73022 <at> debbugs.gnu.org>; Sun, 08 Sep 2024 04:09:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725793692; x=1726398492; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=7wJViNcJJBcEbM87wmuOB/yUGru7q5EgZumHILOR+4k=;
 b=WB3tXbMN08VUAtVTDk4iruEmqScjeXCykPdahT/Uu6afMqw48WhyJUCZk19xPTcD2k
 iADpkF4c8HTE0ptVYqEQxTlNA8aaW+AHMAPsT5fXaeXkRRdNQp2oRZprLn8Lwy+CeYxL
 uGf3FEESwW28ZLcWazfAFXTy6N92ZyKhqfdxzMz6QkCX0RaJZ0D15kTn2G1uABwHZj4h
 DtP5w399HaQPgsfmQpNfMP1GCHdK3qWQJzJAfnylW69bvT6C8NHFYUP9E7TXjHnbiAKH
 c9W0ENaasaDB2uMqYLPMgfP1yby8jRoUyF2KIDd3718M28u66NK9p9M+KcSzuFrrQMY8
 5jjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725793692; x=1726398492;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=7wJViNcJJBcEbM87wmuOB/yUGru7q5EgZumHILOR+4k=;
 b=QFv55TsljKXWZFbDMHHYtOINHOSH0o1Q0WoyJxYF11Izn3TKPJH3fty1fCy0X64XVx
 NrfTNjX2A8FEdBGBZDB170uXY7YhZ8nDsH8UrvYWhpOom4tJfUoGfnTZ3prjeJ0yeqmV
 yApmc8cJIoJpCO1aK8BE3xDsXwSV+47oofiveJ8BH+kY3wZbRI4VU2o4saiFajQ/Hf3s
 S1BdsJHNMNAc+9JFwXto1mDf1O9Oig9cYyJli7crFar0DBQqa3PP2/1q8kmvoR7JRPJA
 UJb9kh6W2Wl5FXzsxAaoA6Wkr8L21ykBzrSEhQN8xGSs4efKS2WYkBlkKSkRSIwAuxfK
 4McQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUyMYtYPFu9W1q2njZE2Q2uLouzIHljF/8c+80E9tR0h5FadlF8PgBrJZJuiwRrpY6S/E759w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyyjqhpXGjN5x5nfdLMkCgQibJ1PrU0/MEbv+GUcbrX50lUX350
 aZAaHIGsP5eR4IbCOpsBWM6IjMPJ/FR8r3DQtbIPPZz1QbZBNJGQCup5b24DU41aeHeY7OR0+IB
 riAvjzvW8P1iws98LbsisFMvFISTBgZkY
X-Google-Smtp-Source: AGHT+IHYKvVtvjTwm/Yz3Tt9KbDd/y5D3jkNpbI0Z625WauYZmVdLUdMlK2+CXdbb3rkzXfSFScoyX4qdaYbm6I9WOo=
X-Received: by 2002:a05:6102:3a12:b0:49b:fe9f:42fb with SMTP id
 ada2fe7eead31-49bfe9f4601mr251211137.13.1725793692472; Sun, 08 Sep 2024
 04:08:12 -0700 (PDT)
MIME-Version: 1.0
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
In-Reply-To: <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
From: Daniel Clemente <n142857@HIDDEN>
Date: Sun, 8 Sep 2024 11:07:48 +0000
Message-ID: <CAJKAhPBjuvicyTcDcjxmx5xCRsUqWkUw9LEOf7oQoHr6trVh_w@HIDDEN>
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: martin rudalics <rudalics@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73022
Cc: 73022 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

> #0  terminate_due_to_signal (sig=3D6, backtrace_limit=3D40) at ../../src/=
emacs.c:432
> #1  0x000000000061b51b in emacs_abort () at ../../src/sysdep.c:2391
> #2  0x0000000000541fc2 in cmcheckmagic (tty=3D0x1ebe0d0) at ../../src/cm.=
c:122
> #3  0x0000000000546564 in tty_write_glyphs (f=3D0x1e7bb30, string=3D0x1e9=
afe0, len=3D80) at ../../src/term.c:819
> #4  0x00000000005508c9 in write_glyphs (f=3D0x1e7bb30, string=3D0x1e9a0e0=
, len=3D80) at ../../src/terminal.c:164
> #5  0x000000000042a6d7 in update_frame_line (f=3D0x1e7bb30, vpos=3D4, upd=
ating_menu_p=3Dfalse) at ../../src/dispnew.c:5326
> #6  0x00000000004298c5 in update_frame_1 (f=3D0x1e7bb30, force_p=3Dtrue, =
inhibit_id_p=3Dfalse, set_cursor_p=3Dtrue,
> [=E2=80=A6]
> so the original assertion violation is gone here.
>

We're dealing with two type of assertion violations / crashes / backtraces:
- in update_frame_line, that causes chcheckmagic to fail
- in build_frame_matrix_from_leaf_window, assertion violation

With the same build I mentioned in the top post (that is, without any
code change), I can see both, after following the same instructions I
posted.
The update_frame_line happens much more frequently, therefore I
thought that the update_frame_line was fixed in 71289; but it's not: I
just reproduced the update_frame_line issue.

So you can't be sure that the original assertion violation is gone.
Your build may have crashed with the update_frame_line crash, before
reaching the build_frame_matrix_from_leaf_window crash.
The best would be to solve both crashes :-)

I don't know whether both crashes are related.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 18:43:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 14:43:32 2024
Received: from localhost ([127.0.0.1]:38224 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smHS8-000841-BT
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 14:43:32 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51320)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smHS6-00083d-FH
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 14:43:30 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1smH1A-0001cH-Fi; Thu, 05 Sep 2024 14:15:40 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=WQDtD1ypVsMBjXhggEBekiORisWK/RDy57SduNXzVC8=; b=HKDhbEs1bR5T
 RbaM8KMqTHhT5z7gtv/cDuTgtUzUYNG9KYTv6eipqQ5zusYa4gKw94JfHdW2nhqzBVZDcQcRTpPRz
 ham7lyWhyo6o2zohXm57W+qp0qFW/RwGecC89xtT3BjRT2k6M3R68idHSNyQZOIT3lj3tFTLNhfZJ
 JZ38Du1I0dGUubP2UV+bG0cEetHSFVkQtheK9GoH1nQGXMMu5yfEJhB3t/KqZ3RnOWUnNfyGIgw1e
 STHCLS8nbqnx0UESicMZ/6DLB4Aj7aiv6W0cvJmD5uOoFKN5Nxpu13IsZbgtacBeMRYkPDV006SbC
 WPnW8mdd/4N6ZtZuI2aZLw==;
Date: Thu, 05 Sep 2024 21:15:37 +0300
Message-Id: <86ikva2chi.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 18:30:29 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN> <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
 <86o7522iil.fsf@HIDDEN> <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 18:30:29 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  > It doesn't crash for me when I repeat these steps, but I'm doing this
>  > in PuTTY logged into a remote GNU/Linux system, so maybe that's the
>  > reason.
> 
> Can you get the window as small as in my third screenshot?

Yes.

> In which order does it re-show windows when you re-enlarge the
> window?  From top to bottom with the minibuffer window last?

First I see just empty frame, even when I enlarge the frame to 4
lines.  Then I see both windows, including the menu bar and the
mini-window.

Sometimes I see different behavior: first just a mode line of the
upper window with one text line, and 1 or 2 empty lines below the mode
line; then menu bar, and finally the bottom window with its mode line
and the mini-window.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 18:43:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 14:43:32 2024
Received: from localhost ([127.0.0.1]:38222 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smHS8-00083z-1j
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 14:43:32 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51320)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smHS5-00083d-Hs
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 14:43:30 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1smHQw-0004VZ-BV; Thu, 05 Sep 2024 14:42:18 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=uhzdNsmI6F39Q8hmF9RJVyBDH7q8FloQ+hXBvfCeDJk=; b=oMWZvHCtM8CJ
 nGS11OniXNy8hZPQSlh1e3T8cequoDvWdBEFC1dvVLRG2Xb8bwbnyuQCg8+CQcCrTmDuDFBxNHjA5
 4BFnvgwMt9EEvEud254rlQEf7+WWqWkOPTZpHqy+uB9+2NE+Uc0BSx48yJjbID3dCnWWXu4kE/H+u
 jZnskP7AKhYTJ6QbhXJYnoQc+q2UDxWZ1hsXjKiX0a5uVrukP/RewhV/BBCyTxCy+yP0LiWciK78E
 bsDgxFlzp7+k/HEdxYiQcIfiy+fx2I8ZU9lqzzu9K/CwJhKVynG+dbvHBp0+Qoz3Vk+dZ/NKhxMOx
 pQdpeDPpkE6MRh8D9TNzOQ==;
Date: Thu, 05 Sep 2024 21:41:43 +0300
Message-Id: <86ed5y2ba0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <333ce596-479e-4b59-b2b7-84d446ca5962@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 18:58:47 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN> <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
 <86o7522iil.fsf@HIDDEN> <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN>
 <333ce596-479e-4b59-b2b7-84d446ca5962@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 18:58:47 +0200
> From: martin rudalics <rudalics@HIDDEN>
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> 
> One detail: If looking at the fourth, final screenshot I sent earlier,
> then I notice that the last character of the lower mode line is black
> which seems to correspond to curX (tty) == FrameCols (tty).  Does this
> mean that the cursor is on the mode line of the lower normal window?

Probably.  But the best way of figuring this out is to look at the
cursor coordinates in the debugger.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 17:00:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 13:00:06 2024
Received: from localhost ([127.0.0.1]:38081 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smFq2-0000YC-5V
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 13:00:06 -0400
Received: from mout.gmx.net ([212.227.15.18]:49377)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smFpz-0000XA-57
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 13:00:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725555531; x=1726160331; i=rudalics@HIDDEN;
 bh=hRc6Bna6mOtlMRyFRkNOmgmclFOwVi7FlYIjMcQBLqk=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:From:To:
 Cc:References:In-Reply-To:Content-Type:Content-Transfer-Encoding:
 cc:content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=Gf+7x9oU9rV76nXPoL/MJSOUVASprVbrVADGxWpLRFsGPCUTZLGdJ8RBHiBFCNXl
 zB4c8evTZahwJS2JJj+c9lGFfX32Ivp4R5oh+De18KjqamAyN5+UwRy/rgYpDI7fD
 L0BIg+jOIluoSbcomETkBDk7dnYJC1ccC2FHGbeBsb5d0Y4b1g4xlcO/j0zZzjTD1
 VyTZ17wBPro3H6GWbzrAQF8eVeE/Srl3azjbzGsGJuXTNeXxN2GMgXl7gmMYeseE6
 IuXL6eEFuuDpR27ptuWzELxP5WTkVFgqwq1FFzWIGJ5mWEQW7dMKcaTynbrkjCBSd
 6h+zAAp7rWjRx9uLEA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mw9UE-1rwM7b0tnA-013JG2; Thu, 05
 Sep 2024 18:58:51 +0200
Message-ID: <333ce596-479e-4b59-b2b7-84d446ca5962@HIDDEN>
Date: Thu, 5 Sep 2024 18:58:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
From: martin rudalics <rudalics@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN> <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
 <86o7522iil.fsf@HIDDEN> <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN>
Content-Language: en-US
In-Reply-To: <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:WVQBO+38XryknkBwzhXI5eZ8m3ccSzcIjbqs+BOYgfliUfZvW4z
 sjNQo8uGZFJpD0JONif24rRkITsa01cUC9YAIFSm0YQlyYKb24ww83TA9ewwJFT9DbFRdQp
 goIZg2x+Lo6j21UXjI/JdqBRs4iJ2AX23ZKHDQKP2ycece72yFypSn9yJSWkusZxVdGgywu
 TrklzccnHEDRQOwRUWfIg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:w+6vuQkuugU=;wiNozwo3dLJJ5MB6IJk3xouv/am
 thtnq3qoz2S0PnrPT+KMwvm9+Z706TjwRBwrVINFA5dl4uJk+M21aNs4bufn/uTY/4Qp9AY5r
 DpIzAWkAdSlheTNXa9H08i1xLkUrrzWKkz6brBlA0sUFXgJ5IKb2peSPcs0Q2zjJGqCYhr09P
 NUKPeshEH/2ANnCTW93ExJ8ztTkV8ERLsI4tnT+KqnCwl1KFvmPrHPyTWds8KLfLJgvvx9Xvd
 BzCdtPQ2Glr+zwJJShq2QXKaalEa2vdFp6MTOXoPd65lH7JCkAHLLSItKhtEZPn2YkCaZ96Oo
 gd9r7P3dLjbZJ/aUutDpbmzOSbVe7k1Bt6EF9ZEjS02YAZNIf+p+8N28eAxa+3EJSaC0x9chS
 Ys1J9GNmZXZ/7TB6sKN0adqe84KgfG85nJ0eW/83qN1Q1sH6DGuZ0zLcZ2G1aM2bbQxHyzXvM
 aiqRu8AjYJN3WinAEpdnOalPUTC9gZFGU9TgylxqmtQ+qXUKXm7G/omzREyybcNgRrSGkP22e
 CDC8tWnuUaM0GloLn2HcQYsHqJIFRrW4eIPadvgdjpG9Rz1vOCwTMgejlNKuQzyysVM4WUHwD
 JW71AdkQTy7fdEeOS+y/4J+g80SQ/XWPBWtuCLp4H7HvhbpdDLo+jWrVhShv1AEIEH17CAZD8
 sbvakAWkhdMRG5b/fybiJXVtYFmLNKpsvHwMw4LEOEJmuXN5ifprXGMD3BSgxBP97hOMWqp6a
 S0l/k6820T6RPuW+3b0VzrJjYmIuVPG/FtpLZSiiYoNKqdJLCeJkrcQnWD6O7LdOqbr1I1t+8
 TfFHtT1BKvN0qaFymFKv7ONw==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  One detail: If looking at the fourth, final screenshot I sent
 earlier, then I notice that the last character of the lower mode line is
 black which seems to correspond to curX (tty) == FrameCols (tty). [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.18 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  One detail: If looking at the fourth, final screenshot I sent
    earlier, then I notice that the last character of the lower mode line is
   black which seems to correspond to curX (tty) == FrameCols (tty). [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.18 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

One detail: If looking at the fourth, final screenshot I sent earlier,
then I notice that the last character of the lower mode line is black
which seems to correspond to curX (tty) == FrameCols (tty).  Does this
mean that the cursor is on the mode line of the lower normal window?

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 16:40:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 12:40:11 2024
Received: from localhost ([127.0.0.1]:38021 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smFWk-0007RH-Il
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:40:11 -0400
Received: from mout.gmx.net ([212.227.17.20]:51089)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smFOa-0006sB-K8
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:31:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725553833; x=1726158633; i=rudalics@HIDDEN;
 bh=agmMAqXAzjLxQUNOxafebC0O9e2MH3LFSoJQjpsqSPI=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=hVlqoBiTqR9ps7aC0uXlm/jpkVXbNGJ9kNIjyuTlooa5FjocidkrpoZ/Ats+dPBz
 kDDa3iGp2nSKVYJrwi0Jj8H7CJKXcQrx9LuhXrLFxvvVDCUNQKXempKwKX3jqdKPL
 Fv8AhTAG52GgV1bG+iWyp6RjGAOcMgrVvC7eklUT1YrGpA3FvzXfyPnlEIC4fHyNf
 MK14WI+G9CVeMwKz7CAlEWUkP66QG49P/nyeLj5QSAXdEdXEFjxBENupb0PrXsz5T
 1YRsofIbjfhV/TKTGVxEOa0Q1uQn3g/14c8hmjGraAaIf+CB0VAiJ9phgT6bbXNKR
 UoZFslA/cM8PYdyF1g==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MkYXm-1sLBTy2wWM-00m646; Thu, 05
 Sep 2024 18:30:32 +0200
Message-ID: <926a2250-8f1b-4bb4-921e-90abb62b9038@HIDDEN>
Date: Thu, 5 Sep 2024 18:30:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN> <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
 <86o7522iil.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86o7522iil.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:ACLwbSddSehfUyxpgABJPPEMXJy6B6zxMNXW5xliPD/gBya5eIp
 1EHE39Q2M2xHyHZC3qhYtV2b+Ey8pS3BUPCB6rr45mfcQZf+I34cL0xUIoED1bq95/tVB1Z
 laRXbwrmk4D1w0hUjTYJacWmDYFa+RJ5lLeicJ66jJeTkAwcgGA68WdfK/lOzy0t2BfDiMD
 etIgy+8PQQH07B1V9Cg1Q==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:BEFnR11o4KI=;ZGRafvYDzcwbA+GcB/K7HK7CgeH
 fPKkwwUJDE21aTYNkaZxy4JNEGL8rn+FTwIXcjIc8vHnEVbsf9ofEOAyvvIqK+j7IWSDuwqMP
 J/uUPOlkj04S3knQ2DX7OEEQg+ylmeQNtYhIaRDGdJfSDMkbV/yP9Zb8Sugj2ucazj2CFjvgz
 +6HmeDOoiRleiQmHuN8lLcH+LLCMgAyUU8pbwQUugHgbU2z64i1hBj5bgmb1l/MhG0sXjrwzx
 ymaYLUhSjTsxNhTNOLSlvXhO4f9BwkBnq9SF2QV+BuWS23wkYeLWqAP3O7Se6ltAcIWQ9GdJs
 wvcaOuqrbUBNEPUw+nmx4ZpueO3+1IIfNdUvqrGl2z0fQi8xGEIxpt8aw3gJW/UNKVn7YN+Jb
 kBuugunQaR9/wG+6jclupN5uneM2RXxqkDoZlAXa9vrBOJWfGIs1EzrZe9CcQ6baxndsW9gs3
 WcTv33iR1IWgCZCFdNa45uXmYcofWcyJ8Yt27hQvGBKkdkievc5LSKYIwWRLC3Z3NI7sbU7Kb
 eGvLiYKP5KmWSoQ856IjENDNuCODdFpEl3WPgWuQDH4jewd/WolnniPFcjz3zuR4/qIprzbyD
 uyWG3Yg56zASMuwyqscfsB0OTSUwZNwqGlH/1G3vSqtEo0SH/60i3oPZ6AxFvFDqsatJ/Gekv
 tQyywBKe9E0h1CtAn0yWJrUCKmaGmMTtFXQazbtzs+plCm40HJf6nr//b0w3bgpiwKBj5/F6G
 ND4jO1nUDUBiyef3DqOHvc4+hp7O9vjLesd4I/KU9vYhdWT5cgarcTpptIe6z+JzDAK2LTLeK
 s1ANq2yE9oxDwb+5hIdqp4MA==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > It doesn't crash for me when I repeat these steps, but
 I'm doing this > in PuTTY logged into a remote GNU/Linux system, so maybe
 that's the > reason. Can you get the window as small as in my third
 screenshot?
 In which order does it re-show windows when you re-enlarge the window? From
 top to bottom with the minibuffer window last? 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.20 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [212.227.17.20 listed in wl.mailspike.net]
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > It doesn't crash for me when I repeat these steps, but
   I'm doing this > in PuTTY logged into a remote GNU/Linux system, so maybe
   that's the > reason. Can you get the window as small as in my third screenshot?
    In which order does it re-show windows when you re-enlarge the window? From
    top to bottom with the minibuffer window last? 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.20 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
                             [212.227.17.20 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > It doesn't crash for me when I repeat these steps, but I'm doing this
 > in PuTTY logged into a remote GNU/Linux system, so maybe that's the
 > reason.

Can you get the window as small as in my third screenshot?  In which
order does it re-show windows when you re-enlarge the window?  From top
to bottom with the minibuffer window last?

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 16:28:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 12:28:28 2024
Received: from localhost ([127.0.0.1]:38002 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smFLQ-0006Z5-Df
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:28:28 -0400
Received: from mout.gmx.net ([212.227.17.20]:56965)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smFLO-0006YT-6n
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:28:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725553633; x=1726158433; i=rudalics@HIDDEN;
 bh=Ppu/atj9dBpMSK9voBWz1DcEMzF4/Xd1DZ+JOO/RdUc=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=FVYFW+8f0PU5sRtQvSOZDKydAIcIdDNZEq3RCvOaixjDpx+26mfaz0pUT68rkb9I
 FUolidWi6ZJHxlQDPPqyzSP8ulleFs5wyg9FyTER9jTzcaBIFn/ITqJGXvAklRFcQ
 ykCa9iviBJJXzcyqKDDqNFpZpMj4FIQbzSSlgm6pG1PrSxwTB0/Tbzojiw4vb87eG
 bvGBzgSVnXEzLCFk5W92rj6osR+AvRzsC1DhRsKWM0A9tAmE0jbellvRpS5l4ENaT
 fTtUfI4TELQN6d1VvyCZG75gT1G128FZEit14Ac6KKt/6eN7mr/+rUp7xQZQX/67b
 ZTFNIvfKmycHD82j1A==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N8ofO-1s1JN12zGo-00yJGy; Thu, 05
 Sep 2024 18:27:13 +0200
Message-ID: <24026689-43a7-4340-ba0e-54d8e8c655ed@HIDDEN>
Date: Thu, 5 Sep 2024 18:27:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> <86seue2l2b.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86seue2l2b.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:SIZkMwDoQSds5HD8saM+uBdXfKdnOGco07Vve8Qy7G/D/SH2hDh
 SIAXnAGoXGdr1KD5fyVdE9C1VDSjkp1pDpqOFrw2j5i+gkYAwfXM/E4y7SECYK7ozB2F37d
 GZhCl7GkMZMfkNJ1beSEy4RDin9KuSem3KTd5GsJBijfDnXhds4PoTdei5umWe8+TkdR32z
 TSyo9ujDtPbTOcLPt1GJg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:A33tYocSjZk=;Wi0LdGyE8GY7SHM2wV6PCB/rYJ4
 KtZqiznfn0Zv6x3YVHVKs+1SStJBmZolVA1YcyUxBap+YdFInnMi+Tq45oX2SX6bZFLuioueK
 +5TLPiQ7Si5qFPchveYIpD0AoEL1ATmhAoMRrlClpI+foUsETSiO/aMFcxBS9kG1cfe+Oqe/I
 tOa80mourkaRmHksTBPKlWUUfACcTtiqe9tWYemTx9cD68siSMBWV+EAR48Fq8lMKDMv8tdcV
 qT29TBhTk53duA/uwzK2Ows9G1s6mV1MYc9jwqzBmotlgR+c9uO4lorehVqqdrvTOApqgXVhK
 fgi8+tvV4z4lprJUAP7gJVaK8y9apjDDWVKhkhoMxhZcJ+8tnHwAdjQ97UH+HetF1w/VPsM1U
 Bw/e7SQ7ATsc9IPXQtgxerGQdjk4XTE1y1aID4CbAmkkAiEXzHk2Rtz/9V0g/WhYV5cDRddMt
 ZqEK49CN3yTjYSKY63AKo42/8wCfarjepuSXR/o/8ZIPqv5DZ126eCS1HiS9iDAA7/ZI8cjtD
 jSTtI4PyAuPaEfk7BdzkJ4fAO9Ga+1QtX4JcfG7zU1TUr87gEwoNIKdW5WZM/DXg9m4jigt6z
 Eoxi71JZmkN4AG6/4SyY45SRHutN/Bt+OG7Ov4zHUXhViQ8fbsHQezZYb6T9hiN0mlcVGe7ne
 BRgywmTufALg3i/SOiW+MlD67Jv1xUOMI3MgAP7VvzH1KTvRNhQSVd1Cts4tEd1gCsezJE9n9
 KtiP/a2Whvjy1Jsw9RUPIeBrMtSen82966dB07tv+7d4iLoKOjuVAtY54uxfvxBeDP4uWixRj
 z3/KkxwK+9XuSM2zW4WjfkVw==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > What is supposed to happen, with the current code, when
 the frame is > resized to less than the minimum dimensions we allow? Shouldn't
 we > disallow/refuse such resizes? And if we don't refuse, wha [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [212.227.17.20 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.20 listed in list.dnswl.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > What is supposed to happen, with the current code, when
    the frame is > resized to less than the minimum dimensions we allow? Shouldn't
    we > disallow/refuse such resizes? And if we don't refuse, wha [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
                             [212.227.17.20 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.20 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > What is supposed to happen, with the current code, when the frame is
 > resized to less than the minimum dimensions we allow?  Shouldn't we
 > disallow/refuse such resizes?  And if we don't refuse, what will
 > happen to the windows?  E.g., if the frame is not tall enough to show
 > the menu bar, the two mode lines, the mini-window, and at least one
 > line for each of the two windows, what should I expect to see on
 > display?

As for GUI frames I wrote some code to handle that but you didn't like
it back then.  Basically, we should do the following:

- Add min-size-hints so the window manage never tries to make the frame
   to small.  These have to correspond to the current window layout and
   the window decorations - a frame with split windows has a larger
   minimum size than one with one window only as we can see in the
   present thread.

- When the window manager doesn't comply, simple ignore the shrink
   request.  Portions of our frame that don't fit will be clipped by the
   window manager.  I wrote some code to always keep the minibuffer
   window visible in such case but cannot remember whether it works well.
   My WM (and Windows too) never tried to make a GUI frame smaller than I
   wanted.

On terminal emulators we should (or even do) conceptually the same as
with a non-compliant WM.  The terminal emulator has to do the clipping
just like the WM.

 > Taking some code and moving it to another place in the same function
 > can only affect what's going on in that function and the functions it
 > calls.  For example, if you had
 >
 >     foo ();
 >     bar ();
 >     baz ();
 >
 > and then you move the call to baz to be before the call to bar, like
 > this:
 >
 >     foo ();
 >     baz ();
 >     bar ();
 >
 > then I can understand why bar and its subroutines are affected.  But
 > once we are done with this code, all the 3 calls have been made, and
 > the order in which they were made can hardly matter for the code which
 > runs after that, right?

So I moved the assignments within adjust_frame_size (baz) in front of
the resize_frame_windows (bar) calls.  Is it that what you mean?

 > So if the crash was inside the call to bar, then I could understand
 > how moving the call to baz before it could affect the crash.  But the
 > backtrace from the assertion violation didn't show adjust_frame_glyphs
 > anywhere on the call-stack, so I don't understand how simply
 > rearranging code inside adjust_frame_glyphs could change something
 > _outside_ it.

Do you mean adjust_frame_size instead of adjust_frame_glyphs here so the
fact that makes you wonder is that adjust_frame_size never shows up in
the backtraces?

I could imagine that resize_frame_windows (or even
'window--pixel-to-total') mess up things in a way that confuses frame
based redisplay later.  In adjust_frame_glyphs_for_frame_redisplay we do

       eassert (matrix_dim.width == FRAME_TOTAL_COLS (f)
	       && matrix_dim.height == FRAME_TOTAL_LINES (f));

and I wonder whether there's an execution path that could bypass that
assertion.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 16:06:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 12:06:40 2024
Received: from localhost ([127.0.0.1]:37975 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smF0K-0004wv-6N
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:06:40 -0400
Received: from eggs.gnu.org ([209.51.188.92]:57468)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smF0I-0004wX-7e
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 12:06:39 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1smEz9-0005mQ-0b; Thu, 05 Sep 2024 12:05:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=ehvV6zRaKYnWEIQivgDcn5FbqodATNHPkX1nB/9o+N8=; b=mF+IvJM87Qsn
 V+GVOTyE1DhL0vQl1qH1NmAuDU7d5IUVWcVhf+Q3gNZ01jEFlDSAfyTNqrdqIYNAduccoinLNWwsR
 0t4fGvINQDeh8wkTHk4gXMKbM+ceKq319HJn2UOsp4Qub2GiqHDDEoC4im9AjQUkZ3sswHoZEfSy5
 1SU8LnV743Xaq3vjgq8SsJUmmDNsMtiPyWaqTXjJUc6PYzeEfS8HyVBnFx2nO3k+vENkDJAOMiG7d
 C3Ua79mN0RVYJDO0OPbcAgUPmQ7y68aUba63iCV5+nS5/MbKBguIAbN/1N6HvgHyj7yTnmoFANr8H
 9t2YdMrxy3rqCPg5NQ1nEQ==;
Date: Thu, 05 Sep 2024 19:05:22 +0300
Message-Id: <86o7522iil.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 17:48:51 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN> <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 17:48:51 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
> I attach four screenshots to illustrate what I'm doing.
> 
> First I split the window via C-x 2 (tty_1.png).  Now, using the mouse,
> I drag the lower edge of the terminal window up in order to shrink that
> window (tty_2.png).  At some moment the edge can't be dragged any more
> (tty_3.png).  Now I drag the edge down to enlarge the window again
> (tty_4.png).  When at this moment I drag the edge once more down Emacs
> crashes.  Which IIUC means that Emacs crashes at the time it wants to
> show the minibuffer window again.

It doesn't crash for me when I repeat these steps, but I'm doing this
in PuTTY logged into a remote GNU/Linux system, so maybe that's the
reason.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 15:55:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 11:55:25 2024
Received: from localhost ([127.0.0.1]:37922 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smEpR-0003vU-3J
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 11:55:25 -0400
Received: from mout.gmx.net ([212.227.17.22]:59893)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smEpO-0003vB-K0
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 11:55:23 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725551651; x=1726156451; i=rudalics@HIDDEN;
 bh=aUU2KSch1vQhiB50TK5THBGKB90jaSRo9ebVa1hXWE0=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=YvM1cU0IpGhFDU/szY9AcWmxH2x4xbhNVTXM8sH/jiENGz/cdIPxDV0m6WNT20jY
 yCpMOs4X+NI0WZ8hOVbwDja5qG77WCpJs2yOZk/vhBAfcdkNZZZoQUUXTvPgcZ3xC
 nCHxres2LWQcf1v1wtewDOsvfyJuxAY2puRN0VMi2/kISkqPPjA1duCD2CB4Pp04S
 +Vap0QrpGU9plYvHml5AsJP/lPJPKwDS+bWcIsnMHC2rUUwy7PVcVcqoV0wgRonYK
 TLRZZrsdEUk6srql677f4XZCKyzS8Bwx0KmHWxObrw0rQnY8ACIjtnnYTXLGUlEHl
 uMZsj5CkE1Iy00QR1w==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MgvvJ-1s77gh30JR-00hOuD; Thu, 05
 Sep 2024 17:48:54 +0200
Content-Type: multipart/mixed; boundary="------------NRa7Qrb608tUY0duGKRawJDS"
Message-ID: <41f29165-e654-4d64-a2f0-72fc84bc8924@HIDDEN>
Date: Thu, 5 Sep 2024 17:48:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
 <86tteu2lm6.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86tteu2lm6.fsf@HIDDEN>
X-Provags-ID: V03:K1:DxFEh9E5TU0Ra43oMbU9ieb927JJufscQWdWBXm0TeVyqXM2nv5
 klbTpSL+3kFCA5lLJ3dS8uEVzkNVNVhnCtX81UKG9dQkN4MMKOWyiAo3as0nafkcUMkBaPe
 BM9HvtdpAjx07njJYoXXzWxA+PztLqxDVlEn8a425fQdbgzaUfcI3oo1vNl5q4dcvHuVt9b
 eSz4bFYMw3gSDYn6hONnw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:5IedhVR7FKg=;DKIeEx+mqphxOQ5M449+WfHUTV/
 gzpPVTTnxihfn9qCVtOoQmJUROcTmAWIq0h2deW6zsD/Lfy1Rvb/OcGJCu2EJufcVC5tGomH4
 h+sn86Gi833C+ewf/XaB0sQax2g8E7j78YWltzWF+sHjbCL3F0kVLFKGOGoPONydFRO7mdNNn
 y79d4Oqufn/GF0wn9RrzG+7vyuJppnNMtMNX7Ipjp4ClhcOCYedYl0ctXNX3aU4cyov1T7h2X
 JObNCZ8CJjxHItJnwL9m40owmUm2+SYSqyUst6BNaqjfggY7MF0g1tm05eraa2FzkfaqcC62w
 gYkVApDAWVUnxflFeUxtMa9v+fenVr1J/6PTxVDA81BRab4YFiVQ46SpVwRHhaHvu9hTi1Ni8
 P3EcdX4L4VdnSuyetfB4r2j4DJp9WGaQaFuRz+NMvDg4c06AbjCa6sW6M4VPTjcEIjpqYg9p1
 VqbWDDjEjtcC+/GtEEudK8A6yIpePve+K29Bxu9NMvWf4rBSgEi6gX6g/1UJMmop3LsxbQvVg
 uGPRXLDR8C2k0Sa0QLBIYMGSYOzYujyyBvBi9m9+SnDbg11DF3G1Aay5loeswaF1iHQoVD9vT
 X3iCTrhN42S+k+5EyusF7mhtmx0i9/xi6cXG6pXLkKt4jrwefuRFTxiKiXYD1XRNJwaqaqeMD
 roN0nDPFOF7aFFKbpKUdHnZ5jSHPd7eGM54OniTx6NG2JjRevMdpuZM1iA7uwzCFgEyAMqGAI
 2qD8qV9JfghfjppFmV/gbNEavhpVfLf3+XpdAQUB/WH0y5bBRjRpVE0lQP7kw8pV27apwMaqB
 UDGcIeA/uN8T+5HTuwE12P/w==
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

This is a multi-part message in MIME format.
--------------NRa7Qrb608tUY0duGKRawJDS
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

I attach four screenshots to illustrate what I'm doing.

First I split the window via C-x 2 (tty_1.png).  Now, using the mouse,
I drag the lower edge of the terminal window up in order to shrink that
window (tty_2.png).  At some moment the edge can't be dragged any more
(tty_3.png).  Now I drag the edge down to enlarge the window again
(tty_4.png).  When at this moment I drag the edge once more down Emacs
crashes.  Which IIUC means that Emacs crashes at the time it wants to
show the minibuffer window again.

martin
--------------NRa7Qrb608tUY0duGKRawJDS
Content-Type: image/png; name="tty_4.png"
Content-Disposition: attachment; filename="tty_4.png"
Content-Transfer-Encoding: base64

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
RUVFlBsMGAwGhzo8NQ5QUF+FhYW4u7vj6upqNS89PR2dTmf+7ObmRrt27ZwdglMZDAbOnj1L
dHQ0Pj7WI0PUVt6W6I9WXkeUl5dz9uxZSktLiY2NJSgoqEHpRIVr6bgh+0fL9kfYvtfS/iaE
+OOo7OhUquzweHt51TmoQa2dnf3797Nnzx6b8+666y4iIyMtppWUlBAdHU379u05cOCA1TJz
5sxh4cKF5OXlUV5eTvv27Tl79mytATqDo+WoKiMjgy5durB8+XLuuOMOi3l1lbcxlJeX8913
33Ho0CF8fX25/fbb6dev31VZd1OU15mqtgONRkNoaCh9+vShbdu2Dc77008/5dlnn6WsrAyN
RoOLiwu5ubm4u7vXK11zc/HiRVauXFnjfD8/Px544IFGWXdTHTe0Wi3ffPMN48aNo3Xr1nWm
b677R3p6OsuWLbOaHhgYyOTJk5sgomtTc92+ixcvpl27dgwZMsRi+meffcZ1111H3759Hcqv
qfY3IYSoSfWOTiV7Ozy1dnbWr1/PK6+8YvOqzqBBg6w6CW5ubgwZMoT27dvbzO/tt9/m7bff
BmDatGls3LixttU7jaPlsFdd5a30zjvvkJKSwkcffVSv9VQqLCxkxIgRnDx5khtvvJGcnBze
eOMN3nnnHf72t7/VO19747O3vM3V+vXref311+nYsSNGo5HMzEy0Wi2TJ09m8eLF9R7usLS0
lBkzZjB+/Hi++uorPD09uXz5slUHxt50zdGFCxf48MMPzZ+Tk5Px9/c335WKjo5utM5OUx03
MjIymD59Oh06dLCrs9Nc94+SkhISEhJIT09n8+bNtGrVil69etGzZ88G5eus41pTu9aPf6+8
8gp33HGHVWdnxowZvPDCCw53dppqfxNCCFsURcHd3b1B50p1Psbm5eVl91UdjUbD6tWr7U57
NTlSDnvZW96DBw9isNEjddTs2bNJSkoiMTHRfDfi/fff5/nnn2f8+PHExcXVK19743Nk+zZX
UVFRHDt2DKjYgf79738zc+ZMHnjgAUaNGlWvPNPT0ykuLmbChAl4enoCEBYWVu90zdHQoUMt
9p+QkBCmTp3KG2+8cVXjuNrHDUc01/2jXbt2LF68GICAgAAefvhhXnvttQbn66zjWlP7Ix3/
HNWc9zchxB+DSqXCxaVhb9045Z2djRs3smLFCvPntm3b8txzzzUoz6KiIr744gt27NhBeXk5
w4cPZ+rUqY1+FTwhIYEvv/ySS5cu0aFDBx566CGrNPaUt7i4mM8++4zU1FS2bduGl5cXTz75
pHn+3LlzUasdGx9i4cKFTJo0yeKxqyeeeIJXXnmFRYsWmU88582bR2xsLIGBgSxYsIDc3FwG
DBjAM888g6+vr8PxObJ9L126xPz58zl69Kj5MbtJkyZZ3DWZN28e7du3Jzw8nAULFpCamkpc
XBwzZswgOjraIr/s7Gw+/fRTDh8+jF6vp02bNkycOJGhQ4c6VHe2qFQqJk+ezMyZM0lLSzNP
f/fddwkPD7e4U5Gbm8srr7zClClT6NGjB1CxPdLT0/ntt9/Mnzdv3gzA6NGjGTdunEPpwL52
P2fOHJKSkoCKbTF16lRef/11jh8/TmxsLO+++y5eXl6NXn+1sacdOJLOXk1RXkf2D3vis2f/
bQz27JeOHtec2Z5NJhMbN27k559/5rfffsPHx4dhw4bx0EMP2XyHZtWqVfz0009kZGQQFhbG
TTfdxL333otarb5mjn/O5szv1aZqp0II4SinjMYWGBhIWFgYGo2GdevW8cMPPzQoP51Ox8CB
A3nnnXfo0KED3bp148033+TOO+90Rrg12rBhA4MHDyYhIYH+/fuj0+mYOHGiVTp7yqvX6zl8
+DBZWVkYjUYMBgOFhYXmP0f99ttvZGVlMWLECIvp7u7uDBgwgL1795qnrVy5kpdeeonJkycT
ExNDly5dmDNnDjfddBPl5eUOx2fv9j116hS9evVizZo19O7dG39/fx5++GHuv/9+i3QrV65k
9uzZ3H777Xh7e9O3b1+WLVvG4MGDLdatKArDhg1j8eLFxMXF0bt3bzIyMti+fbvD9VeTffv2
AXDdddeZpy1dupQNGzZYpMvPz+eTTz4xd1gqlz1z5gx5eXlAxWNqlfWn1+sdTmdvu4+IiMDH
x4cjR47w0Ucf8eCDD/Lrr7/Srl07MjIyzB2dq1F/ttjbDuxNZ6+mKq+9+4e98dmz/zYGe/ZL
R44bzm7POTk5PPDAA+Tl5dG/f39CQ0N5/vnneeSRR6zKMnXqVMaNG0dKSgqdOnXCYDDwySef
mDsw18Lxz9mc/b3aVO1UCCEcFtbjFuWp5SaluKjQ/AcoiqIos2fPVry8vJSUlBSLv9TUVKUm
kyZNUgYMGFDj/EpPPPGE0r59e5vznn76aSUsLEzJzMw0Tzty5IiiUqmUNWvW1Jl3dbNnz1Zc
XFyURx55xOJv+vTpFun69eundOjQQSkpKbGIBVCWL19uM297yjt48GDlrrvucjjuqnbs2KEA
ypYtW6zm3XPPPUr37t3Nn8eMGaNoNBrl3Llz5mkJCQkKoCxevLhB8dVW3ptvvlnp3r27Rf39
9NNPCmCx3caMGaMAyuHDh63KVzVdcnKyAihr1661K7a6zJ49W/Hx8VEef/xx5fHHH1fGjx+v
tGvXTpk3b55Fuj59+iiTJ0+2mFYZi612kJSUpADKqlWral1/Xekcbffz589XAGX06NGKwWCw
mu/s+qsqODhYeemll2zOs7cd2JuuqtqOG84u78mTJxVAWbdund3L1LZ/2Bufo/uvI/z9/ZVX
X321xvXas19Wquu44ez2rCiKUl5ebvH5m2++UVQqlVJUVGQV83vvvVdjbI6Uo6qrefyzV2xs
rNKtWzer7zcXFxdl9uzZ5nT1+V6tbX9rzHYqhPjjApQDu7cpBw8erNdf1f7MU8tNSliPW5Q6
7+wUFxcTExNj8de1a1dn9bVs+v777xk5ciSXL1/m2LFjHDt2DLVaTVRUFDt37qxXnoqioNVq
Lf6qDq9ZXFzMgQMHuPfee/Hw8DBPr/qIUVMqLS0FMF/lrMrT09PiDgFAr169LAZk6NevH23b
tmXLli2NEl95eTkbN27koYcesqi/8ePHEx0dbfWse5cuXSxekO7WrRtQ8RhIpcjISGJjY5k1
axa7d+92SpwmkwmtVkteXh5arZbS0lLOnj1LWVmZU/JviPq2+7///e82n61vjPqri73twNH2
Yo+mKK8jHInvau+/lezZL+3l7PYM4OLigslkIjU1lcTERDQaDYqiWMS3bt06PDw8LB5La2yN
cfxzhF6vt/p+U6r9/kRjfK82VTsVQvyxmEwmziUns3XHTlavW8/qdevZumMn55KTMZlMdS5f
5zs7np6eJCQkWExrzJcWy8vLSU9PZ+nSpXz//fdW86u+W+EIDw8Pfvzxxxrn5+bmYjKZrEZd
smcUpqvB398fqHiUo7rc3FwCAgIsptl68T08PJzLly83SnzZ2dkYDAZiY2Ot5sXGxlptt6io
KIvPlS+fVW207u7u7Nq1i2eeeYYhQ4YwcOBAZs6cyfjx4+sdZ2hoKEuWLDF/PnLkCP379yck
JIQXX3yx3vk2VEPafU0XHxqj/upibztwtL3YoynK6whH4rN3/33mmWf44osvLKZt376d3r17
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
3Fzmzp1Lq1at7O7spKen88Ybb6DX6xkxYkSL7+xkZGTw97//nVmzZlnNc7T+XF1diY+PJyoq
qjFCrbeysjJOnTpFTk4Ohw4dIiQkhA4dOtChQ4cG5dtc272j7C1Hc92+9n7vT5kyhSlTpgDw
wQcfsH//fpv5ffXVV5SUlBAUFIRWq0Wr1dK7d29eeuklmxdMncnLy4uEhAQOHTrE66+/3qjr
EqI+rr17ui2Uu7u7zas1VR07doxZs2YxduxYevXqxYYNG65KbLt37yY5OZno6Gg0Gg25ubms
Xr2atLQ07rrrrkY/kDpbRkYGJSUlmEwmp+SnVtf+6ltLq7+mEBwczMKFCwFQFIWlS5fy6aef
Mnr0aPr27VuvPM+cOYPRaHRmmE1mzpw5xMfH13gi1NJ89tlnxMXFcf311zc4L7VazT//+U8n
ROVckZGRvPjiiwDcdttt3HzzzTz00EMNzreltHt7y9Fcty/Y971fVV3fNaNGjeLJJ58EKs4X
3nzzTWbOnMmnn37a6I/wPf744zz88MMcPHiQ6667rlHXJYSjWkRnx2AwmL/sR48e3dThNJru
3buzZMkSgoODWbp06VVbr7e3N76+viQnJ2M0GsnIyCAwMJCoqCirL5ukpCROnTqFTqfDxcUF
Hx8fYmJi6Ny5M+7u7uZ0er2eQ4cOkZKSgl6vx93dnfDwcPr27Wu+87FhwwZKS0sBCAwMZNCg
QezevZuUlBQ0Gg2jR48mMDCQvLw8Tp48yeXLlykqKsLd3Z2QkBB69eplvnNjMBg4c+YMGRkZ
aLVaoOIOT+W7M127drW4YmpPfFXT/vLLL2RmZuLp6Unnzp3p2rVrvepP1E2lUjFq1Cg+/fRT
cnJyLOZlZWWxYsUKkpOT8fT05Prrr2f48OHmuz96vZ5Vq1aRnZ1NYmIi7u7uzJkzx7z8U089
Ve87RU1l+/btHD9+nFmzZv0hOjuVj3dVdgTqa//+/ezcudP8OTIykrvvvttmWp1Ox6pVqzh7
9izl5eVEREQwbNgwevToYU6zYsUKwsPD8fX1ZeXKleTn59OlSxcmTJhgdcxwphUrVhAVFUVg
YCArV64kOzub6OhoJk6cSGhoKOB4uy8tLWXNmjUcPXoUg8FA7969GTdunMW7hsuWLePSpUtA
Rd2NGzeORYsWcf78ecLDw5k2bRru7u4oisL+/fvZt28faWlpeHp60rNnT8aOHWvzBHzXrl3s
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
rZWhBrBWAAAAAElFTkSuQmCC
--------------NRa7Qrb608tUY0duGKRawJDS
Content-Type: image/png; name="tty_3.png"
Content-Disposition: attachment; filename="tty_3.png"
Content-Transfer-Encoding: base64

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

--------------NRa7Qrb608tUY0duGKRawJDS
Content-Type: image/png; name="tty_2.png"
Content-Disposition: attachment; filename="tty_2.png"
Content-Transfer-Encoding: base64

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
2CFIwrXYszewEYmL1qzG9KxM4fPDH6nx1iOrgzv0tEwm86sjcLDLASPvEEfBcflw0UNRqVRB
eRmbVCr1GhXNHwqFwmv4zf4Eq340dqRSaUAdwhUKxah3jqTg2rJlC+69915UVlYOOhR0MOl0
uiGPMZ4nHVqtNuRf8urPfq/X64N24d9f/8iB+LOuPYL1+w30uDHRBbK8/myPl19+GXPnzhXd
EP8kDqF5y4mIiGgAGRkZ+N3vfof6+vrxrgrRFc9sNiMuLg4PP/wwW9dQSGLDSiIimnCWLFky
3lXwEhsbyz59dEXSarXYvHnzeFeDaEAMO0RERCP0wAMPjHcViIioHwOGnVB6LwAREREREVGg
2GeHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhEiWGHiIiIiIhE
iWGHiIiIiIhEiWGHiIiIiIhESTbQH9asWTOW9SAiIiIioivY3r17gz5PPtkhIiIiIiJRYtgh
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
9tkhIiIiIiJRYtghIiIiIiJRYtghIiIiIiJRYtghIiIiIiJRYtghIiIiIqKQIgsL87usXDbw
ANMMO0REREREFFJ0ep3fZbU67YB/Y9ghIiIiIqKQkjQl0f+yiQOXZdghIiIiIqKQMjU5GRF6
/ZDlIiL0SElOHvDvDDtERERERBRSwsKk+FHeAhgiIgYsExGhx48WLIBUOnCkGbg3DxERERER
0ThRKpX48aL/wfnaWtTV1aOzsxMAoNPpkJg4BSnJyYMGHYBhh4iIiIiIQpRUKkVqSgpSU1KG
9/+DWx0iIiIiIqLQwLBDRERERESixLBDRERERESixD47REREREQUctxuN5xO56BlwsLCIJFI
Bvw7ww4REREREYUciUSC7u5uOHp6+v27TCaDRq0edB5sxkZERERERCFJo9FALvN9PuMJOoM9
1QEYdoiIiIiIKIRdHnj8DToAww4REREREYU4T+AJJOgA7LNDREREREQTgPr/++f4G3QAhh0i
IiIiIpoAAgk5HmzGRkREREREosSwQ0REREREotRvMzarxTzW9SAiIiIiIgoqPtkhIiIiIiJR
kgKA3dY53vUgIiIiIiIKCk++kQFAzZf78L+StZArNeNaKSIiIiIiopFwdFlQ8+U+AIAEAGKv
Wuke1xoREREREREFUUv5fsn/AVGPo2lTiZbnAAAAAElFTkSuQmCC
--------------NRa7Qrb608tUY0duGKRawJDS
Content-Type: image/png; name="tty_1.png"
Content-Disposition: attachment; filename="tty_1.png"
Content-Transfer-Encoding: base64

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
d2vAIwY7giAIgiAIgiA0a2VlZZjMZsxms1sDnjonKGio0tJSAgIC8PPzc1iXk5ODTqezffb3
96ddu3aeToJHmc1mjh07RlJSEhqN48wQ9eW3JbrY8usOk8nEsWPHqKysJCUlhcjIyEaFE6pc
SP2GOD5atouhfi+k400QhItH9UCnWvWAJyQ42OWkBvUOdrZv386WLVucrrvhhhtISEiwW1ZR
UUFSUhLt27dnx44dDtu88847fPbZZxQVFWEymWjfvj3Hjh2rN4Ge4G4+asrNzaVr164sWrSI
a6+91m6dq/x6g8lk4ttvv2XXrl2EhoYybtw4BgwY0CT79kV+PalmO1CpVMTExJCamkrbtm0b
HfdHH33EI488gtFoRKVSoVarKSwsJCAgoEHhmpvTp0+zePHiOteHhYUxdepUr+zbV/1GcXEx
X331FePHj6d169YuwzfX4yMnJ4eff/7ZYXlERAS33HKLD1J0YWqu9btw4ULatWvHsGHD7JbP
nz+ffv360b9/f7fi89XxJgiCUJfaA51qcgc89Q52Vq5cyXPPPef0W50hQ4Y4DBL8/f0ZNmwY
7du3dxrfq6++yquvvgrAzJkzWb16dX279xh38yGXq/xWe+2118jIyOC9995r0H6qlZaWMmLE
CA4dOsQ//vEPCgoKePnll3nttdd4/PHHGxyv3PTJzW9ztXLlSl566SU6deqExWLhzJkzFBcX
c8stt7Bw4cIGT3dYWVnJo48+yoQJE/j0008JCgri7NmzDgMYueGao1OnTvH222/bPqenp6PV
am13pZKSkrw22PFVv5Gbm8uDDz5Ihw4dZA12muvxUVFRwdatW8nJyWHt2rW0atWKPn360Lt3
70bF66l+zdcu9P7vueee49prr3UY7Dz66KM8+eSTbg92fHW8CYIgOCNJEgEBAY26VnL5GFtw
cLDsb3VUKhVLly6VHbYpuZMPueTmd+fOnZidjEjdNWfOHNLS0ti7d6/tbsSbb77J7NmzmTBh
Ah07dmxQvHLT5079NleJiYns378fqDqA/u///o8nnniCqVOnMnLkyAbFmZOTQ3l5ORMnTiQo
KAiA2NjYBodrjoYPH253/ERHRzNjxgxefvnlJk1HU/cb7miux0e7du1YuHAhAOHh4UybNo0X
Xnih0fF6ql/ztYup/3NXcz7eBEG4OCgUCtTqxr1145F3dlavXs2vv/5q+9y2bVsee+yxRsVZ
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
/XGsYtPJTaMCsm1auL0CqhrleadDkkkNh1GDygY/aj2dH06RbNLAblSjrN4Hdzvzq2dYNFAB
omfoMmpVyLRoUdngR5237TyKWa9YUvMXz8Rsl1jVZ7GSTGrYDRpUNPjDXrbWWWLqVTTEar1i
xXP+NCog06qFPyCgzO2X/ILDaIv3/Ikhd/tn1auRYtbgeAST4rRHzva+RVf3M2dK/uK5PYiG
jsobjf7IYVTDYVTjqMvXbpthN6iRaFKjyOXr8tnO5K5XdoMadd7AGdk+yu3bTeugMljwwcpV
kv7dZZdMQ98+vUN/37fajLfnTxN3Z+ecHCMOOpvxaQcnfGLTyc0vRD6bTXucjQE4G+VrwKoa
/R0GYqUSO9Emn9DhQ7xi1iuW1PzFMzHbJVb1WSy562gLMfUqGmK1XrHiOX9+oe0ZjOJFvOdP
DLnbvzpvQPaTZDnb+xZd3c9IFav8xXN7EA0dlTca/VFNU6DDZ/dcngBcMlyQjoTc9SpW5fgl
EBXsLNtbj/e+r0dHwabYdERnAtZnIiIiojObqGDnULW4qxdi0xGdCVifiYiIiM5ssZ9SiIiI
iIiIKAoY7BARERERkSIx2CEiIiIiIkVisENERERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0i
IiIiIlIkBjtERERERKRIDHaIiIiIiEiRGOwQEREREZEiMdghIiIiIiJFYrBDRERERESKxGCH
iIiIiIgUicEOEREREREpEoMdIiIiIiJSJAY7RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHY
ISIiIiIiRWKwQ0REREREisRgh4iIiIiIFInBDhERERERKRKDHSIiIiIiUiQGO0REREREpEja
9n4QBEHUAlQqlWyZISIiIiIikgvv7BARERERkSIx2CEiIiIiIkVisENERERERIrEYIeIiIiI
iBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRIDHaIiIiIiEiRGOwQEREREZEiMdghIiIi
IiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREpEoMdIiIiIiJSJAY7RERERESkSAx2iIiI
iIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRgh4iIiIiIFInBDhERERERKRKDHSIi
IiIiUiRtez+oVKquzAcREREREZGseGeHiIiIiIgUicEOEREREREpEoMdIiIiIiJSJAY7RERE
RESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRgh4iIiIiIFInBDhER
ERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERERkSIx2CEiIiIiIkVisENE
RERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRIDHaIiIiIiEiRGOwQ
EREREZEiMdghIiIiIiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREpEoMdIiIiIiJSJAY7
RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRgh4iIiIiIFInB
DhERERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERERkSIx2CEiIiIiIkVi
sENERERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRIDHaIiIiIiEiR
GOwQEREREZEiMdghIiIiIiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREpEoMdIiIiIiJS
JAY7RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRgh4iIiIiI
FInBDhERERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERERkSIx2CEiIiIi
IkVisENERERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRIDHaIiIiI
iEiRGOwQEREREZEiMdghIiIiIiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREpEoMdIiIi
IiJSJAY7RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRgh4iI
iIiIFInBDhERERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERERkSIx2CEi
IiIiIkVisENERERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRIDHaI
iIiIiEiRGOwQEREREZEiMdghIiIiIiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREpEoMd
IiIiIiJSJAY7RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0REREREisRg
h4iIiIiIFInBDhERERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERERkSIx
2CEiIiIiIkVisENERERERIrEYIeIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRI
DHaIiIiIiEiRGOwQEREREZEiMdghIiIiIiJFYrBDRERERESKxGCHiIiIiIgUicEOEREREREp
EoMdIiIiIiJSJAY7RERERESkSAx2iIiIiIhIkRjsEBERERGRIjHYISIiIiIiRWKwQ0RERERE
isRgh4iIiIiIFInBDhERERERKRKDHSIiIiIiUiQGO0REREREpEgMdoiIiIiISJEY7BARERER
kSIx2CEiIiIiIkVisENERERERIrEYIeIiIiIiBRJ294PX3zxRVfmg4iIiIiIfsHGjRsn+zJ5
Z4eIiIiIiBSJwQ4RERERESkSgx0iIiIiIlIkBjtERERERKRI7U5QQNSWpqYmaDQa6HS6WGcl
pgKBAFwuFwDAZrNBo9GI+nfcftFTVVUFt9sd+lun0yEzMzPidPTL0djYCJ1OB62WXaISncn7
l+0VUefJcuSvXr0amZmZKCwsDPt+1apVKCgoQJ8+faKSTin279+PvXv3tvnbeeedh+Tk5Fbf
b968GU6nE1OmTIl29kIaGxuxePFidO/eHVOnTu2y9cYjt9uNt956CwBw5ZVXIi0trcN/w+3X
OT6fD++++y569uyJkSNHtvr9vffew8cff4z6+nr4fD5kZWXhzTffjDhdrNTX12PNmjUYM2aM
qHrVYsOGDTh8+DAuu+wyWK3WKOYwPuzYsQP19fU499xzw76Xuv08Hg+uuuoqZGVlYdGiRdHK
rmRVVVVYt25dq++tVisuvPDCGOTozBSv+1dsvy+2vVq9ejXcbjdUKhWsVit69eqF7t27R7MI
IQ0NDfjkk08wfvx42O32LlknkRSyBDv/+te/cO6557YKTv7+97/jV7/6VSg4kTudUmzZsgWL
Fy9u82rNgAEDwoKdzZs3Y/Hixdi/fz8SExO7JNgJBAJQL5nePwAAIABJREFUq9UwmUwAALPZ
DADw+/2i72jEky+++AI//fQTZsyYAYfDEfX1KW37xcq2bduwaNGidjv7W2+9FbfeeisA4Nln
n8XWrVvbXI7YdLHidDrx/PPPIzs7W3SwU1JSgkcffRQejwfjx49XfLBTWlqKP/3pT3jggQda
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
a95L5fq0rKuP8FUZsSp6NCfkuoSyXLPCWb9oicR2CcWLu+r1kwVpesRp022FCWpsMwZ0N7e8
vkN3/a5S+akx+v7sZP3hrhH62Se1enL9mTDW+vJR0eBTbUunxqfH6KbRbv3TphpNyozVgjy3
8lKc+qw8shfN0XiCsedUq6aPjDNVdvXOen1w0dif4l7ayL+dk6LScx2aOixOt4z16L2joU1M
EOn6DbZQ2r++joPmL/vpuy8ayxXTz1AcarsWruN0IO3pYHyBZX/qF67jPhKG+hPScJ+PvD1c
13nj7DrZx4QMya7IhqGhftyjd6av7BNi7T0Gi/6WG6j6tk4dqm7TvLzgx4YjEhwanxbTr0fQ
RafblBHvUGF67IDrZ0j6tKzV1He+3DjarVf31gdOpJI0dVjvFwltPqPXgYmhLNesUOs3FPV3
u4TreH69qF5xDpuWjovX1yd79VpRfVi6VR05265H1lXp1zvP6e4BTuBwqeMqksK13INn2rRw
rEedhrStrEXvFzfrL3LcGuF1DuiuWrS2S1/ePNiocakxWjKu72N696lWvXWwMejfhTOk+T0x
K1kLx3q05JVy/fzTWr38tWH9nmwmEvWLhnC2f9XNPlU2+DRzVHB3H7Oh8GKRaO/9Bvs8E6pw
1i+U436otgeREsr6hut8NG1YXNANgVS3XfkpMdp76nw7Xt/aqTR38D6aPiKy1yVD4bhH/5j+
i935cLaKn8hVD5Pe9KtcOPzLR7W66yqvHp+VrHSPQxPSY/Xb24arpqWzX188+tq+Bp1t9un1
O4frlrEeZSU6NTkzVo/MSAoq57B1feO1/5HluNQYJfZwQfzDD87qhhy3/n1JRqDMxIxY/c31
yZqYcT5Qnazr0Lw8j3KTnUr3OPS1CfH60fy0XutZdLpNN+a4NTfXLU+MTdmJzqDlm12uWaHW
L5y8sXaNSY5RsssuT4xdY1Nienz6lvBluXSPQ3EOm/JTu5frz3YJ1/Fc29Kp//6iUU9cl6Sb
c916sZepZs2s74yRcXromkSNTuoaozIxI1bXZ7t0sLr7Bb3Z7Sf1fVyFIhrLPXCmTfPGeLTp
RLN8hvTn4mZdPTxOw+Id3cJOtLZLOL22r16bS5r1ym3D9Z3rkjVjZJxmZ7v06MwkTRkW+t/5
NSPi9JMFaXpy/RntPd2mv9tYrbL6Dr1y23D158FDuOsXLeFu/57fUad7JiboG1O9SnHZdV2W
S0/dmNrvzwt3e+8XrvOM2fNltOoX6nEfrXYynMLZ/oVyPjIrIdauZ5dnKjvRqZwkp55bnimf
Ib20+/yXK2+vaNXNuW7dMtajxDi75uS49IM5Kf1eplmROu7T3A6d/G6ufrE4o9cy6D9T3dji
Y2zKS4nRy3vqLznAymy5cFm965wSYm166sZU/XxRuqSuO7oLXi7TmabQB35XNfm04OVy/XJp
hv60cmTg9T2nWgNz8DtsUttT+UGN4LaHsiVJP9lSo7/dcP7LT9cfa9LyNeX6l/npemxmV2Ay
DOnzitagLkxPrj+j3981XMVP5AaWt3JtpTY/mNVjPf9x01lNGRarjfePkt3W9Zk3rC7VlpMt
IS3XrFDrFy7r7h2hpeOCJ5o48vhoSdKLu+v1wFunei13+Nvdy4W6XcJ9PL+4q17r7h2hg2fa
gu4S+5ldX0n6+xtT9dzy81PfflTSokfWBX/DdSifJ/V9XJkVreUeqGrTg9MS9bNPuvrbHzjT
pnOtnRoW79DBM+dPvNGqX7h1GtLSVyr0kwVp+uevpMkd09UonWnyafma0L6k0Btr1+t3DNd7
R5sCE7S0+Qx9/feV2vFwjv7+hlT9301no1a/aAp3+/cPH9YoM96p52/NlNNuU21Lp/7q7dN6
dln/pvIPd3vvF47zTCjny2jUrz/HfbTayXCJRPtn5nwUin/9uEbZSU4d/06u7LaubnK3v1ER
NEb7xx/VaMbIuMC12ulGn77136e1up9fiWFWpI77WIeU4XFoRATHD1/JbJlTlhj3/HCdfnzL
+f6pnvjgx483jnbrwwdG6ZaXy7X+WO/9WM2WCzeHTRqV6FRjm6Hq5vB8p0Oq265kl0Nnmnw6
1zrw7hRpboeSXHadauhQYy/zqw9PcMgmmZ6hy+W0aUSCU2eafKpv67mOZpZrVqj1G8rMbJdo
Hc9mpbrtSopzqKrJF/RlawNl5riKhGgt16yhXD+HTRrhdcrXaehUoy/kLziMtKFePzPC3f55
Y+1K9zhU1o9JcXoTzvbeb7DPM5dL/YZyexAJfa1vJM5HyS67kl12ldR19NpmJMXZleK262Rd
x6DPdhbu4yopzq76ts7Lsn0Mt+1bN8kWl6C33l4X0u+tWL5ME8YXBH7+wXsevfb0MnNPdq7P
cunI2XZt6OOCz2y5cPMZ/Z/Npjdnmzt1tjl8DVh1s6/PIFYZ4km0pcPocxCvmeWaFWr9hjIz
2yVax7NZ4T5G/cwcV5EQreWaNZTr5zN6nsFoqBjq9TMj3O1ffVtn2C+Sw9ne+w32eSZU0arf
UG4PIqGv9Y3E+ai2pbPPsXt1rZ2qC8MN6f4I93EVrfW4EpgKO7/f36A/HGhQX2HTbDngcsDx
DAAAcHkzFXaO1pi7e2G2HHA54HgGAAC4vEV/SiEAAAAAiADCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAA
sCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABL
IuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTC
DgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwA
AAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAA
sCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABL
IuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTC
DgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwA
AAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAA
sCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABL
IuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTC
DgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwA
AAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAA
sCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABL
IuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTC
DgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwA
AAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAA
sCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABL
IuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTC
DgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwA
AAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAAAABLIuwAAAAAsCTCDgAA
AABLIuwAAAAAsCRnb28sX758MOsBAAAA4Ar29ttvh/0zebIDAAAAwJIIOwAAAAAsibADAAAA
wJIIOwAAAAAsqdcJCoCL2Ww2ud1u+Xw+tXgEVHcAABeySURBVLa2Rrs6UWW325WamipJqq2t
VUdHR5+/w/aLrISEBLlcrsDPPp9PNTU1/S6HK0dsbKw6OjrU2dkZ7aogAi7n/Ut7BQxcWMLO
1KlTVVNTo5KSkqDXp0+froqKCpWXl0eknFWMHDlSo0aN6vG9AwcOqKGhodvr+fn58nq92rlz
Z6SrF+DxePT9739fhw4d0muvvTZoyx2KEhMT9dhjj0mSfvWrX5k6Jtl+A2O323X99dfr9OnT
Onz4cLf3r7vuOk2bNk1ut1t2u101NTV65pln+l0uWlwulyZPnqwvvvhCdXV1pn9vwoQJyszM
1Geffabm5uYI1nBoyM3Nlcvl0sGDB4NeD3X7OZ1Ofe9739PZs2f13HPPRaq6IUtISFBhYWG3
11tbW7Vnz54o1OjyNFT3r9nzvtn2aurUqYqNjZXNZlNTU5NOnTqlqqqqiK6DX1xcnKZMmaKi
oiI1NTUNyjKBUIQl7MydO1eHDh3qFk5uueUWbdmyJXAhGO5yVpGfn6+5c+eqtra223tlZWVB
YWfcuHGaO3euRo4cqcbGxkEJOw6HQz6fT01NTTIMQ42NjZK6TiI+n0+GYUS8DuF06623qqCg
QKtXr1Z1dXXEl2e17RcteXl5mj9/vmpqanoMOxs2bNCGDRskSUuXLtXYsWN7/Byz5aIlISFB
S5YsUU1Njemwk5KSottvv11Op1P79u2zfNhJTk7W17/+da1du7bbe6FuP5/Pp5KSEp09ezYS
Ve23mJgYZWVlyev1Kjc3V+fOndOpU6dUWVk5oM+dPXu2kpOT9c4774SpptFhdj2G6v41e943
217NnTtXcXFxamhokMfjUXx8vIqLi7V27doeb5iGU2trq8aNG6cxY8bojTfeiOiygP6gG9sQ
0d7e3ufd5ezsbN1zzz3auXOnjh8/rqlTpw5K3ebPn6/x48fr2LFj8vl8yszM1L333qvc3Fw9
//zzOn369KDUI1yys7MVHx8vh8MRls/rK6xYbftFS2FhoUpLS5WVlaXhw4df8qLPbHeVy7Fb
S08WL16sEydODLngFinz5s1TRUWFDh06NODPMgxDr776ahhqFV41NTV68803JUk/+MEPtHPn
Tn344YcD/twRI0aEre2LJrPrMVT3r2TuvH+hvtqrPXv26N1335XUdZ677bbbtHLlSj333HMR
b+vWr1+vRx99VHl5eTp27FhElwWEyhJhx+FwaPHixSopKbH04/2TJ0/qZz/7mRoaGjR79uxB
W259fb1qa2s1YcIEOZ1OZWVlqaqqSsePH1dMTExQ2YkTJ+qaa65RSkqKOjo6VFdXp2PHjmnn
zp1qaWkJlHO73Zo9e7by8vLk8XjU1NSk8vJybdq0SfX19ZKkO++8M9BXuaqqShs3btSCBQuU
l5en9vZ2rV27VlVVVcrIyNC0adM0atQoeb1etbS0qKKiQlu3bg08uYmJidHkyZOVnZ2ttLQ0
SV1fnNvW1iZJ2r59u/bv3x9S/fxcLpe+9rWvKSsrS01NTdq1a5e2b9/er+2HntlsNo0fP14f
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
/uwP//k6MTGRsIMhpc+ws2jRIl199dVBr61evdr0hZrZmabCXe5iZtcj3OXM6ujo0K9+9aug
14bSLF1lZWUqKyuT1PVovKfQsWXLlkCXwokTJ2rixImqrq7WW2+9pdLS0kC5hIQESQr5SdyF
Xc0uNG3aNC1evFixsbGSusKP/4TRnwvAUOt34Ww6/ruUFzOz/dAz/1isKVOmqKCgQFLXzYHC
wkJt2rQpyrWLniVLlmjv3r1Bf1tXApfLNagza3V0dOiFF17QokWL9OCDD6qsrEwfffRRj5Mj
9DTtrn92rEi6uAeA/ylKqO2f3W5XQkJCoP2+mNfr7fV3z5w50+PrTqdTCxcu1JQpUyR1bQ//
ue3C+nm9XtXX18vn84VU54HweDyy2+09hue6urpu6xuu7ezX3t4e8dnL4uPjA7MzhrK+/dkf
/q60vXUtNCta12uUG1rlwqnPsLNr1y4dP3486LWLp0psb2+X2+0O/mCnU7GxsUEXf+EuFwoz
6xGJcmZ1dnZe9rNy+bt9bdmyRTNmzNA111yjtLQ0feMb39DPf/7zwHgj/x2li/dxX3ra906n
U8uWLZPD4dDGjRu1bds2tbW16fbbb9ekSZP6tR6h1s/MF4qi/6666iqdO3dOe/fuDbxWWVmp
6dOnKyUl5Yr8gr3hw4crNzdXXq9XDz30kKTzFxh33323KisrBzyAf6hqb2/vdjc80urr6/W7
3/1Oqampmj17tu6++25t3bq12xi+nuoVFxcX8QHs4RofYRiGOjs79cEHH2jz5s0h/W5vF8UL
FixQQUGBXnrppcANn4yMDD366KPdft9/w2qw+Lsl93RxHhcX1+2cfrmNQ/FPiLN7925Joa1v
f/aH//gfaBfTaF2vUW5olQunPsNOZWVln2nr7NmzQX1CJQV+vvBuT7jLhcLMekSi3JUkPz9f
p06dUl1dnTZu3Ki9e/fqr//6r+V0OpWZmRkIO5WVlcrMzNTkyZP16aefBu7S5ubm6uTJkyHd
SUpJSQlMP1pUVKS2tja5XC5lZ2f3WP7C7x8ZPnx4jwEznPXDwBUWFqqoqCho2l2Hw6FJkybp
qquu0pYtW6JYu+ior6/Xn/70p6DXkpOTlZaWpkOHDl32N04upb6+Xunp6VFZ9tmzZ7Vu3TpJ
XROyXBx2MjIy5HQ6g26YpKSkaN++fYNe1974fL5eZ4E0DENlZWUaO3ZsyGGnN7m5udq3b18g
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
ZRH12roAAAAASUVORK5CYII=

--------------NRa7Qrb608tUY0duGKRawJDS--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 15:55:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 11:55:10 2024
Received: from localhost ([127.0.0.1]:37914 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smEpC-0003uP-3x
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 11:55:10 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56300)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smEXu-0002f6-1o
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 11:37:18 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1smE7t-0001e5-9O; Thu, 05 Sep 2024 11:10:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=m6hk0XsXCEn3h313oY9TK0HV9QtSOseY/mNKP0+0FKQ=; b=Y7pgVzebbUL0
 5JJXx6LJqlC76B+6daX5Me2SaLlOEd9zeungUBDSsrhpUIZDN37d5XASN36x6Qt9TTXc9X9Dk6uEY
 cPlIBpZoJ6cSA7b6onwo30KZ0Q0hCEWoo8z/PYXPmWsOzVlxO1Vv2gnTIMn9JAzV7Z5vVaM8uVpkU
 jBL1d/xnjntwk7p6ww4bDLFOnD5aDmTQPFuybFfsQ6+QtBOOAW76beC2HI9AftC9zITXtX/z0r8ko
 CMUodkH8dTTbEl35dnwrG0GVWy1cQBirwDeEdaAK8nINAI7STUNUeD/ozKISMWAWlKZK/tAQH5QWm
 1SeIijGFW2BFkzsO5BLhxA==;
Date: Thu, 05 Sep 2024 18:10:20 +0300
Message-Id: <86seue2l2b.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 16:45:52 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
 <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 16:45:52 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  >> If so, then this violation might be caused by the fact that we
>  >> (1) did resize windows according to the new sizes but (2) did not update
>  >> the frame sizes accordingly.
>  >
>  > Can you elaborate on how this could be possible?  I always thought we
>  > first allocate the frame matrices, and then the window matrices (by
>  > suballocating them from the frame matrices).  Am I mistaken?
> 
> But if glyph_row_slice_p (window_row, frame_row) fails, something else
> must have invalidated that.  I made that change here more than three
> years ago and I can neither remember whether an assertion violation made
> me do it or a crash nor why I did chose a term like "congruent" in the
> comment.

I agree with the theory that the frame matrices were reallocated
whereas the window matrices weren't, or the other way around.  I just
don't understand how it could have happened, given the code we have.

I noticed that causing this assertion to fail is not very easy.  For
example, if I drag the terminal emulator window one line at a time, I
can never cause it, even if I get to frame sizes that are much smaller
than the minimum we need for 2 windows.  Somehow, I need to drag the
frame so it resizes by several lines and/or columns.  Not sure why.

> One possibility I cannot exclude is that adjust_frame_size tries to
> resize windows, that step (silently) fails in window_resize_check, the
> old values stay in place but the new frame sizes are applied by
> adjust_frame_size.  But precisely this scenario cannot be healed by my
> patch so it's unlikely that it was the cause for the problem I
> experienced back then.

What is supposed to happen, with the current code, when the frame is
resized to less than the minimum dimensions we allow?  Shouldn't we
disallow/refuse such resizes?  And if we don't refuse, what will
happen to the windows?  E.g., if the frame is not tall enough to show
the menu bar, the two mode lines, the mini-window, and at least one
line for each of the two windows, what should I expect to see on
display?

>  > Moving code in adjust_frame_glyphs could affect the assertion if the
>  > assertion was being hit while adjust_frame_glyphs is still being
>  > executed.  But that is not the case, so I don't understand how moving
>  > some code in adjust_frame_glyphs without changing it could affect the
>  > assertion violation.  I'm probably missing something.
> 
> I'm still too dense to understand what "Moving code" and "moving some
> code" could mean in this context.  If you have enough patience left,
> please elaborate.

Taking some code and moving it to another place in the same function
can only affect what's going on in that function and the functions it
calls.  For example, if you had

   foo ();
   bar ();
   baz ();

and then you move the call to baz to be before the call to bar, like
this:

   foo ();
   baz ();
   bar ();

then I can understand why bar and its subroutines are affected.  But
once we are done with this code, all the 3 calls have been made, and
the order in which they were made can hardly matter for the code which
runs after that, right?

So if the crash was inside the call to bar, then I could understand
how moving the call to baz before it could affect the crash.  But the
backtrace from the assertion violation didn't show adjust_frame_glyphs
anywhere on the call-stack, so I don't understand how simply
rearranging code inside adjust_frame_glyphs could change something
_outside_ it.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 15:10:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 11:10:11 2024
Received: from localhost ([127.0.0.1]:37859 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smE7e-0000aC-4W
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 11:10:11 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50444)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smDxU-0008EA-2b
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 10:59:40 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1smDwK-0007mo-Qs; Thu, 05 Sep 2024 10:58:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=LZ2MDn+b7LZd46v78LCYgGEUFCr6v7CQexPvALMnZtM=; b=k8QpW0U2XmPw
 qMAoTKTAGGp2mjgu1am73slNu3oMt8mPvGmgLItLrVAyp8jZRpd7IrzYSh0T+E84EhmXORDxNztU0
 iszfJu8XP/FO97Gu+rrU8UAi6FeevqGogJLue5xI8g+6XX4avFy1yEeil8bY6XpuIyPzZ9kC00Oh4
 IfXmEWVX2Gi7+bBxkvgKSpdAv92k7AQYeVFF4fEx85+t9vFgXOG27Y7b4A8fKbmjF4oTntNv3HrrT
 D3gy0fHp8fhtV7Ns2ngqlPd6kB4XY4NzVvRw4e/boveC9oFGlYcUlpfqJNc9dG6K63YkG6MBkzs/6
 QJ5LwVw+1SA32X0ZtkAn/Q==;
Date: Thu, 05 Sep 2024 17:58:25 +0300
Message-Id: <86tteu2lm6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 16:46:15 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN> <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 16:46:15 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
> Anyway, I pulled master again today, built with gtk3 and without-x and
> both exhibit the same behavior with
> 
> MagicWrap (tty) == true
> curY (tty) == 4
> FrameRows (tty) == 5
> 
> in cmcheckmagic after shrinking the TTY window with the mouse to less
> than two lines, slowly re-expanding it, at the time the split windows
> would have to be redisplayed because the frame apparently became large
> enough again.

Please describe the recipe in more detail, starting from "emacs -Q -nw".




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 14:55:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 10:55:13 2024
Received: from localhost ([127.0.0.1]:37829 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smDtA-0007sb-D7
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 10:55:12 -0400
Received: from mout.gmx.net ([212.227.15.19]:45553)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smDqi-0007lm-94
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 10:52:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725547889; x=1726152689; i=rudalics@HIDDEN;
 bh=Mfil1wN4izGCG8ano/vBq5mfvFjj3gWzUbh8ZswiM94=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=fy47RApIpFDG+AxJCZ7NHVXD7WNxStgiFuuIBm3N/DXDDkM6yEs/HZCDJ/ltxxO9
 GmMhHtUOPSPQA5cHFznwA3MZSQUEWLU51o+w23ZiLoHNAr1fdXknaLYe8FcXKhUIH
 D0Xoa7PEwkWXcCsiLvafopbVON1qntcsu9QNz04LM5XB6nyszfbYDy9SNW7S32iyI
 DcbIzypdSEJFe+rMu0nG7ok33mWXe3o7FeTuVXLHdTpnD8W4CgbstpBXLzvW01spD
 qKQJfM72Z4t6GmNBJtxJhXTmLWCWjIpYhfgXmtCjRv/9HEkmRuXU9YhrvEjCUoqIP
 aBP4woErg5OSZgrFYw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MDhhN-1swQcH2UiN-003xwW; Thu, 05
 Sep 2024 16:46:18 +0200
Message-ID: <7f8ab4d2-fc73-4364-8c6d-5219ced46434@HIDDEN>
Date: Thu, 5 Sep 2024 16:46:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
 <86bk124fw1.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86bk124fw1.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:ETCgHor65iQrWWosXqFJGtMQ48rFyxQEQb1NTxv9Z/YTzfotdJH
 w96VeL87WAQyMhYM1bzb4C6YjfuqGYKA1qOPbc95mjch+HTpNQmiRtX07RZtZ3TagLW3xQ1
 CJSlkD/MLhWTsKFwx27pIQgMVfK+QIaNFNTvT/BmDfT9RAYVTER4Dfz17O1O9LuzutCupx4
 uZZ7Js8V6M/dRbJ9De8QQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:I2a475kPkuc=;boKS5UTbHoUyYjWIU0DQCgpj879
 Thkoq2l6OxDZjCxV6EgXTB4IrWPcP/VVT8JC6M57GkfLc7zp9UHcSsYPnAEVqbMEoTlVu5oJ6
 6P0JEydMg5UpFABhwjVKyL9y3j8ymW8IW3oGkq5QaPECb0EgdVPyZSqQjv3lptftWhGmsLMj7
 MWYzpbqqHw7BRQG9KKSNVDpz6BxkccOUoRWHvR4sGJ06FEDS2d4KC+CYr1ChzyxElgnlKJuHz
 kkkkg3XClTbo9P1CDuWSzVH+siYaklESPj6sz0uhIbOiumdPi9QWUmoSCQbW1fDLdSxzFnJRU
 b0pWKO6qWOPtd/XWl5GvcedH3wpM3qQU/DHfilbQihgd7nSmYb/4FWktfh6gSaeSG5+6JNvEA
 aaVLBlLs65UZsJ16ghuwUbOIH0J80008LfR2khOA3TjxbuJ/b6GgnLPM4TY9VmNoRVR51tD5e
 cW0IwvAtYHT8IigNNEBUc/yJMl6moq9CgqvOwg/rUZzI8gevQcmcC+qS9PO9Yt3jxNp9wkUTM
 cV7FOXDr6xfjrw90+octGUdSPDe8FmqySe/uX5oO2lJF1n/FokusDC2Ymv3FRtzLVzJLuYopi
 pv2vDnhBbXG7CLZCpTs5LJJajM1DSPE8WSODw6MUwLUzwnRPh+lh1x83+aUR5lDtTfK83I0Ik
 xD8mrejJ+1EyIUY7YX9UXynvvB+U/7Z0mdIVttwjpuMz5kjzxBxUKNffQgDBIlVWAnWXlnH17
 dgaTsKNfOFdpuklOf2BUFMuOw80fVWfeGCNoo7n3pqubq48B2eFVA06tqnWlp5XvgjGNPRBNk
 fiBJ9rV/xeaANTpBe5ii4ALg==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > Are you running the latest codebase? The assertions in
 cmcheckmagic > are supposed to be fixed there. I suppose you mean the changes
 related to Bug#71289. They should be here with the last one as commit
 6fbb699bee2f54d65fbe6074735d42bbc0868c2c
 Author: Eli Zaretskii Date: Wed Jun 5 19:32:17 2024 +0300 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.19 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.19 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > Are you running the latest codebase? The assertions in
   cmcheckmagic > are supposed to be fixed there. I suppose you mean the changes
    related to Bug#71289. They should be here with the last one as commit 6fbb699bee2f54d65fbe6074735d42bbc0868c2c
    Author: Eli Zaretskii Date: Wed Jun 5 19:32:17 2024 +0300 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.19 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.19 listed in wl.mailspike.net]
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > Are you running the latest codebase?  The assertions in cmcheckmagic
 > are supposed to be fixed there.

I suppose you mean the changes related to Bug#71289.  They should be
here with the last one as

commit 6fbb699bee2f54d65fbe6074735d42bbc0868c2c
Author: Eli Zaretskii <eliz@HIDDEN>
Date:   Wed Jun 5 19:32:17 2024 +0300

     ; Fix last change.

Anyway, I pulled master again today, built with gtk3 and without-x and
both exhibit the same behavior with

MagicWrap (tty) == true
curY (tty) == 4
FrameRows (tty) == 5

in cmcheckmagic after shrinking the TTY window with the mouse to less
than two lines, slowly re-expanding it, at the time the split windows
would have to be redisplayed because the frame apparently became large
enough again.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 14:47:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 10:47:08 2024
Received: from localhost ([127.0.0.1]:37811 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smDlL-0007M7-R3
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 10:47:08 -0400
Received: from mout.gmx.net ([212.227.15.18]:50713)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1smDlI-0007LW-Ri
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 10:47:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725547553; x=1726152353; i=rudalics@HIDDEN;
 bh=GabLMqOA+45m88Xa4yH4PnwSTcqg7HgukKsmuYX905o=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=dMAr7tHs9VSV0pTNysq9WtTb8P0VZbU9QDWuL/uCOHcCqTPP5hwUO8hhTgJAAHi7
 nXkO8MD5wu0nGImbO1i/lsJiJEOPFWxoG9wrJ9dKP9HgQjCGRQtu+lYOeKPXa6PkW
 1ViEFxi0oP0Ld7chkqKFjWcCA8lQucVvE622LHm2d45cNlv/2eZzCxNeK115PByyY
 DIYcmv5Nkb0KdE6tqLVtmoVv6zR8mMglqcWCRbsK3R3BmHrncv4ZUceYMzWHq5SM+
 fyhyKmVTLYHTU/lzIpwWOyjxp8sSzWde1Qd1mLjwc892jaChlUEBfQjmRGrfwPO4r
 grMf4DIUImBVsQm61g==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Md6Qr-1sDAF01PD1-00qjCR; Thu, 05
 Sep 2024 16:45:53 +0200
Message-ID: <e8b03cd0-9964-49e7-a08e-1f3a8bd92828@HIDDEN>
Date: Thu, 5 Sep 2024 16:45:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> <86cyli4fxj.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86cyli4fxj.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:XeLC3cNRMda3sZQFuLtO//bABoCChuYC7imZtqkfcQPdEOzvJ10
 7cz50nW9yO03SC2s13GwC8ex32RwFQc29r/TFOG4dAjRTGrdiTlytLKFJo8L9hIcBbqf2mz
 lUEd6CuHiCqwC7+0gVqdt2l9beZ/1m0Jcz1KvnD8h+sIK3XGMm8kfBJNxZ0AQQVjUsmWUoM
 oLGyV7V1yss9SIfkUERMw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:AxfJiG7RWmQ=;2hQCGbH9dp/Jx+WOFlOf1lWSVQd
 bcvurSBtOOSg9IcA39md6zk+b8EImJ0IwMaYgvBtcsIfjmu9KI5bgmJVlOGzu7taOQvOb7bus
 w+ykVpjmOBgjdpN4niHLqpzjeSr2Mm/9art+fNCX7Fw4qgu7JHoa7tjeFznXQZvXj3eoXJJwe
 YlPd2wzIzrS2ZAxwTmhG+CwBfnjKO1ptF0v01DoRDh4xtjgr4pV/K79A56slsHKMNJE82q6TH
 XfNHbWKgNA2+IUY+xlGHobM2Pi9E7vesJLQZdWZO+zxupjiWUIbWem5OjQ1DZzHE+Dm/EoA9a
 6tetgMxiKsnC7nhnRPOPRUQXzQ+3vfygdYJbE7R4tdeYQIppx4L0H8hNf7rPGESN907DCjf6U
 ik7sPjPHBtT36dzKOzj6ehQ8aXL/3aEgkmZFs8bAMwgQTeY+3htdifW8TLwsjOuasGswtVsbP
 l5gi9LIr4wjPDw6e8XpmlC6O91r3/qmUtk+U8IOxqWV5hG6XHH4pFSeheqvRZHB7XHOXDQ39O
 iHlf6bVZZm/uosb3oZo58fkBDgYwjpboCYZAJ9WrPJvM0WfkihBZiaJZKEn3lHTswybpsV/xz
 rKMkgPiiRIo5oyesXUq7VgQwbGmR2qPsx82iLcuRenvB32L3CNUyKn044cgR8SKTPU0LbymOf
 lRvC9BGIxNPk3QDtzKPbam4hh8F7YMoJVGAAb9oVEZV0cjoopPmiG1kQoY6QffOJbH4OV2r93
 XfvvJ1/FbHJp9OE8gD5hKh8wrv8/lDc7A5cpvjWHrwWeotXSnBxXYw/W/tpx959DV+Xl/OYif
 VI3CRCEq47uJumboGJLcJehw==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  >> If so, then this violation might be caused by the fact
 that we >> (1) did resize windows according to the new sizes but (2) did
 not update >> the frame sizes accordingly. > > Can you elaborate on [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.18 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  >> If so, then this violation might be caused by the fact
    that we >> (1) did resize windows according to the new sizes but (2) did
   not update >> the frame sizes accordingly. > > Can you elaborate on [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.18 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 >> If so, then this violation might be caused by the fact that we
 >> (1) did resize windows according to the new sizes but (2) did not update
 >> the frame sizes accordingly.
 >
 > Can you elaborate on how this could be possible?  I always thought we
 > first allocate the frame matrices, and then the window matrices (by
 > suballocating them from the frame matrices).  Am I mistaken?

But if glyph_row_slice_p (window_row, frame_row) fails, something else
must have invalidated that.  I made that change here more than three
years ago and I can neither remember whether an assertion violation made
me do it or a crash nor why I did chose a term like "congruent" in the
comment.

One possibility I cannot exclude is that adjust_frame_size tries to
resize windows, that step (silently) fails in window_resize_check, the
old values stay in place but the new frame sizes are applied by
adjust_frame_size.  But precisely this scenario cannot be healed by my
patch so it's unlikely that it was the cause for the problem I
experienced back then.

 > Moving code in adjust_frame_glyphs could affect the assertion if the
 > assertion was being hit while adjust_frame_glyphs is still being
 > executed.  But that is not the case, so I don't understand how moving
 > some code in adjust_frame_glyphs without changing it could affect the
 > assertion violation.  I'm probably missing something.

I'm still too dense to understand what "Moving code" and "moving some
code" could mean in this context.  If you have enough patience left,
please elaborate.

Thanks, martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 10:01:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 06:01:05 2024
Received: from localhost ([127.0.0.1]:36221 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sm9IW-0001yA-Vw
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 06:01:05 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52300)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sm9IV-0001wn-Pk
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 06:01:04 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sm8e1-0007TA-6j; Thu, 05 Sep 2024 05:19:13 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=sijIYzj5p1Zc1O2RWmMLPhjZf9QTLAjwYfS/yWxDCX8=; b=psjGln5idDsQ
 NEOXgXjj0/6lnqN2THrLCKj6gxLVUdPbQRvZ/RIT+LAgAQ8lT93yI65vQNkxaYv8E2HdQEq5d76em
 ocE+H3guGX+GNVeahmjyNvlR4p4HPqTmqOv+EjLwPOH3xFBWKztcxzVEV6vuj+PycE+DsT8OkxVly
 jLwTJSbvWKrMZo6v2NFf2kaeA75bsmroMydcMmZCTwmqqRSYZFkbO+U36own9+9p/BmiwIPSCDziD
 ntFAkKXCGk7sMtae8VrjeyIch8vwG5Teu8U/lC3iVZbjoDukkTWNGWDoUTG+YH5b7qj5u47UvzgbT
 IpGrkCfwWQ6Eepbb8u+hgg==;
Date: Thu, 05 Sep 2024 12:19:10 +0300
Message-Id: <86bk124fw1.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 10:18:52 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN> <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 10:18:52 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  > In any case, I can cause the assertion violation even after making the
>  > change you suggested above.
> 
> Following the OP's recipe I now get
> 
> #0  terminate_due_to_signal (sig=6, backtrace_limit=40) at ../../src/emacs.c:432
> #1  0x000000000061b51b in emacs_abort () at ../../src/sysdep.c:2391
> #2  0x0000000000541fc2 in cmcheckmagic (tty=0x1ebe0d0) at ../../src/cm.c:122
> #3  0x0000000000546564 in tty_write_glyphs (f=0x1e7bb30, string=0x1e9afe0, len=80) at ../../src/term.c:819
> #4  0x00000000005508c9 in write_glyphs (f=0x1e7bb30, string=0x1e9a0e0, len=80) at ../../src/terminal.c:164

Are you running the latest codebase?  The assertions in cmcheckmagic
are supposed to be fixed there.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 10:01:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 06:01:03 2024
Received: from localhost ([127.0.0.1]:36215 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sm9IV-0001xj-2o
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 06:01:03 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52300)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sm9IS-0001wn-Ii
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 06:01:01 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sm8d9-0007Oc-Rc; Thu, 05 Sep 2024 05:18:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=v++w+GEh3gvOOerkTi6yteQCAu3tCQ+ilojKw6YY5mo=; b=pXq3WxxNEJX3
 9a0l0M0JLu9ClYOu5hjcRZxcmKzMrgcJxXhT3j/Rds4rMQLG3+Zsgs2zR1JOzeqb6cQEpda702Z+X
 0ef88QveTQj3SNc8kfKuwcFMrcj8ubRy/KlkYVwqQVwUSI75ifw9eYcZzPe8r5RZaa8trP6NG0qNW
 q75v+SjxLe00bZu5VM1dHzgFj3EXciE8iBVyUJhJXaZYLPIIy0kwJ4TICh+EAH0WwUTWysJBgFH0d
 kNhkAQvuNdJJjEpnqHydK021SoZZrwHNt0BAhF5rgJF9UY7xFeO8eXn6hoBnKREJgDyX6DRkQoZl8
 WUggYaraQ5lQPsI8MfQmfQ==;
Date: Thu, 05 Sep 2024 12:18:16 +0300
Message-Id: <86cyli4fxj.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN> (message from
 martin rudalics on Thu, 5 Sep 2024 10:18:35 +0200)
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 5 Sep 2024 10:18:35 +0200
> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> From: martin rudalics <rudalics@HIDDEN>
> 
>  > Thanks, but could you tell how that change could have affected this
>  > assertion violation?
> 
> I attach the patch now, sorry for not doing it earlier.

You didn't attach it, but I think I understood what you wanted to
change, and did that by hand.

> IIUC we are talking about this assertion
> 
> 	  eassert (frame_size_change_delayed (XFRAME (w->frame))
> 		   || glyph_row_slice_p (window_row, frame_row));
> 
> Right?

Yes.

> If so, then this violation might be caused by the fact that we
> (1) did resize windows according to the new sizes but (2) did not update
> the frame sizes accordingly.

Can you elaborate on how this could be possible?  I always thought we
first allocate the frame matrices, and then the window matrices (by
suballocating them from the frame matrices).  Am I mistaken?

>  > AFAICT, adjust_frame_glyphs is not in the
>  > backtrace, so how could moving code inside of it affect what happens
>  > here?
> 
> I don't understand what you mean here.

Moving code in adjust_frame_glyphs could affect the assertion if the
assertion was being hit while adjust_frame_glyphs is still being
executed.  But that is not the case, so I don't understand how moving
some code in adjust_frame_glyphs without changing it could affect the
assertion violation.  I'm probably missing something.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 08:32:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 04:32:56 2024
Received: from localhost ([127.0.0.1]:36121 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sm7vE-0003eO-CP
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 04:32:56 -0400
Received: from mout.gmx.net ([212.227.15.19]:37733)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sm7vB-0003e8-Ub
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 04:32:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725525102; x=1726129902; i=rudalics@HIDDEN;
 bh=71xIGgYHZ+dmJf+8/jlXaI0/YYvgQIASF+HbSTjPZyg=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=TJUO9Zy6byZRx/eswgh7WECXvshgmzvgqWTOcSZpj1Ir2rM2n8nx07xzua+VUQWb
 sFW1u8O1MPgisYufGTinN0X17I44B9Jf8Aqu9j24gfrV9v3mltZJDg+gq7LZ28uS0
 9XrcHS5dqHNy9xZN+kLKm1g6+78Vn2zWTJb7LsgxX7E5/XQU4YRkOmf38eqxZFtxx
 5/HEKpFJXDAWPavVw1T5vwcwUR2u9m4pWDt2rUkL1PFSBtJuL3q1bkSh79+Jg75Ow
 Obu62OTU3bEuYwc+2/9B57SrJgWb3YS6+AwXRb1GDeNl+du/Oi0K9lHb72rqQSvJJ
 gC51lMieJKRcdcQLrA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MQe5k-1sRjGz39YE-00TATM; Thu, 05
 Sep 2024 10:18:56 +0200
Message-ID: <eb786dbc-1582-43d1-afbe-cd6e97649a99@HIDDEN>
Date: Thu, 5 Sep 2024 10:18:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
 <86ed5z5z8m.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86ed5z5z8m.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:J70Lxe7hUGHyPk/VUKr0bCYjVJscG6viEftq5jpVN2B2DBFaFuY
 twQRtxgpWL3z9L7bu1Au/EHdNqid7394/Kwo62BJzhnc/afQ/a+JfTMNxVSXrt+zVD+2yQ7
 VjLh6KgFjlvc2V76YQYkRU9lUYOYdVgvOyd0cKd8oNBFnfdr5f7YxP7uKNlDRcJDU3LlZF9
 w2DZUCKYRAUHsZZJZlkdA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:MNLZ6vhVvXA=;C5K/T7QRNkCsaU51fgDowBCqt8q
 SYAwT8RDjkYEO/4l1eU3m3zoREDnHz8VN6wfOR+uhMnVnOyJxGs4ogoSTmmOCK86vs4aIzWe3
 doBCUgPKX9TFa6gBge//HyRAvI7s9jLCn+BJ2P+2/HQ6dYjAC9Ss1onxcl7gKrQwOjywvSXZg
 fe8JhbgYsv/UlM7r6xc2jMiILvB0bcoGuXegxU264BaLSWAUbjISeicwB6s2c7QtPRdpr6hI/
 BCcNGY2gFuurjnQqiwl1zGl4Lc7bMHkZcn0Gu2cXPDXzMv7Y/SKfPE7aCFNtM/FoePeXAUzwc
 HoACS2AfDGNNuMZrGEal++vCDwXFjlH13CZ1pOKrndlubjMkHdnAdai9ZcLkvXXy5SyW64ERh
 LEOi3GXvb/HYxxmEek/CiX14Hhs4CUn/5nZgGjPZyS76h1bnPoZU8DjK1IMdWGTI86t79o3WW
 ydMhMPeWvbpNXjqBsHB1cXIcv+D8Q1d15fm962ffVRf0Qy4XF9zh53Lmm5suKfyNREbZiwbPM
 S1oOfMV+XoPsm2y6MOtygOk7eJlkbIQcnxiqLlJpsZoW+wyXzsKEGxiGDeJjDo78tP35rkWWr
 OV/b/UMtvG7gCmF6bXYSYxYgFkFhC2dpE56c5wcgyviOChyNxTnoF2MKEiE2fQMnSZof48v3h
 F5ESkDOmrRVjoN6waWoPzXaM7MQAilIyv76Z15oTOb25JQfBTciGXUOWgQEF9DdKFkoDylgyy
 wIy1u4AvcF2SXP7Nkjak3c7hTRAgFRA+wgMg1cWm8hocy/zFPyZBjWPyd1eaplx5hksZMaxkV
 LZtu+XvX7kHHMMyZn39c0HIw==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > In any case, I can cause the assertion violation even after
 making the > change you suggested above. Following the OP's recipe I now
 get #0 terminate_due_to_signal (sig=6,
 backtrace_limit=40) at ../../src/emacs.c:432
 #1 0x000000000061b51b in emacs_abort () at ../../src/sysdep.c:2391 #2
 0x0000000000541fc2 in cmcheckmagic (tty=0x1ebe0d0) [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.19 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.19 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > In any case, I can cause the assertion violation even after
    making the > change you suggested above. Following the OP's recipe I now
   get #0 terminate_due_to_signal (sig=6, backtrace_limit=40) at ../../src/emacs.c:432
    #1 0x000000000061b51b in emacs_abort () at ../../src/sysdep.c:2391 #2 0x0000000000541fc2
    in cmcheckmagic (tty=0x1ebe0d0) [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.19 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.19 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > In any case, I can cause the assertion violation even after making the
 > change you suggested above.

Following the OP's recipe I now get

#0  terminate_due_to_signal (sig=6, backtrace_limit=40) at ../../src/emacs.c:432
#1  0x000000000061b51b in emacs_abort () at ../../src/sysdep.c:2391
#2  0x0000000000541fc2 in cmcheckmagic (tty=0x1ebe0d0) at ../../src/cm.c:122
#3  0x0000000000546564 in tty_write_glyphs (f=0x1e7bb30, string=0x1e9afe0, len=80) at ../../src/term.c:819
#4  0x00000000005508c9 in write_glyphs (f=0x1e7bb30, string=0x1e9a0e0, len=80) at ../../src/terminal.c:164
#5  0x000000000042a6d7 in update_frame_line (f=0x1e7bb30, vpos=4, updating_menu_p=false) at ../../src/dispnew.c:5326
#6  0x00000000004298c5 in update_frame_1 (f=0x1e7bb30, force_p=true, inhibit_id_p=false, set_cursor_p=true, updating_menu_p=false) at ../../src/dispnew.c:5008
#7  0x000000000042514e in update_frame (f=0x1e7bb30, force_p=true, inhibit_hairy_id_p=false) at ../../src/dispnew.c:3346
#8  0x000000000047f556 in redisplay_internal () at ../../src/xdisp.c:17566
#9  0x00000000004800c7 in redisplay_preserve_echo_area (from_where=11) at ../../src/xdisp.c:17849
#10 0x0000000000740b5a in wait_reading_process_output (time_limit=30, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at ../../src/process.c:5583
#11 0x000000000042df55 in sit_for (timeout=make_fixnum(30), reading=true, display_option=1) at ../../src/dispnew.c:6335
#12 0x00000000005f1523 in read_char (commandflag=1, map=XIL(0x7f59e8999aa3), prev_event=XIL(0), used_mouse_menu=0x7ffe2d75980f, end_time=0x0) at ../../src/keyboard.c:2926
#13 0x0000000000604743 in read_key_sequence (keybuf=0x7ffe2d7599c0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false, disable_text_conversion_p=false) at ../../src/keyboard.c:10747
#14 0x00000000005ecddb in command_loop_1 () at ../../src/keyboard.c:1424
#15 0x00000000006cb57b in internal_condition_case (bfun=0x5ec9ac <command_loop_1>, handlers=XIL(0x90), hfun=0x5ebe2e <cmd_error>) at ../../src/eval.c:1598
#16 0x00000000005ec573 in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163
#17 0x00000000006ca9d1 in internal_catch (tag=XIL(0x12360), func=0x5ec549 <command_loop_2>, arg=XIL(0x90)) at ../../src/eval.c:1277
#18 0x00000000005ec505 in command_loop () at ../../src/keyboard.c:1141
#19 0x00000000005eb8d0 in recursive_edit_1 () at ../../src/keyboard.c:749
#20 0x00000000005ebafc in Frecursive_edit () at ../../src/keyboard.c:832
#21 0x00000000005e7382 in main (argc=3, argv=0x7ffe2d759ff8) at ../../src/emacs.c:2624

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)

so the original assertion violation is gone here.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 5 Sep 2024 08:20:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 05 04:19:59 2024
Received: from localhost ([127.0.0.1]:36079 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sm7ih-0002YB-CU
	for submit <at> debbugs.gnu.org; Thu, 05 Sep 2024 04:19:59 -0400
Received: from mout.gmx.net ([212.227.15.15]:47205)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sm7ie-0002Xd-UN
 for 73022 <at> debbugs.gnu.org; Thu, 05 Sep 2024 04:19:58 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725524318; x=1726129118; i=rudalics@HIDDEN;
 bh=BL09vN1+zVwqCOG6yMdGi09fGyBfrgr3+pbBNfbvrgU=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=l1nI198I7y5IWrWVzP8NWDDvhsBeYdR9/E7hdnAVrNrTyQPhH0alTc2eeVrRkznf
 12bXc4J0rWzhLQUuva1YpoBCOBmebtWy9v4/JaEc/hjn9LELiekwBVDTesl6VxHCu
 GXdulZWbprZ/QLh7kfk1H0r9VU2XPCR1hm8DpiaArxW9pepHOf71C6op2IaD3xuKb
 bRdaO2Jx6qEaBIHoQocb8oZP2aPn/Dzt0mqJ/EdBi3XS0ar0G2vTTW7p12WW6/NRM
 YbmJN3OUmDR7ZvUxBy/DtDFydHb6SL+B8txbMrTxbIq7Jtefo88pP185N+1frk5OE
 bsTPqMAbDhi1wX9rSg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.159]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MQ5vW-1sQ4ZJ3B9E-00XIaT; Thu, 05
 Sep 2024 10:18:38 +0200
Message-ID: <60579ab6-db81-4f6e-b281-0cee03dc3b82@HIDDEN>
Date: Thu, 5 Sep 2024 10:18:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Eli Zaretskii <eliz@HIDDEN>
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86le07624j.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:VT8kD72NCt/Tf8iIjIQYQAns2X/auimBRqhjAP11+ISyGNlKrag
 tuOrFWW7NudRffZRbafKKUKiKzznBaUpn+wtRHvrpZZlbCe8Zc+WBfDAjVJulOmUg3pVYBX
 Vh+1Mtfe8w7v/TC/2jbipeSHxgYvuytpYHcKS0fKYH1OOte6kpcs3X5Wad1vKUxsF7J8NZQ
 eeRZLi1s1AEXl3E4jJgDg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:j14/2Z33oDU=;pCZ160HpNwSj96QeLeyxsAHQqJB
 +R3Xwp7JTbhTDYRI6vvesVtuZiw+ye5OeI2xKjvJbFmWMNtHfDK+iPiGUBICveflTCCbMZbnD
 wAXLKK3+d2HKkzy9zNdkIvYGHpR+BFifqD2qD28IUMbMQZLPOKMexXs6xzP82pd309vWwh7MY
 LXfuigrNa2sfdjrWPxb71SCcfiy3hKeFa8FYJGhALFFUeaw4aPy8GgxX++zvhFEo7a20eSFu3
 N6Lh6Q7BDGXRHXH/1/NQoAYv/Mkke9+4Ll0R2uhyHz6Jg3+lwxsuh0UO9IvPLGAKHfCsiY4hI
 Cj8RVZzRA84zZbUtx2vqN3kwsYGRIGo5GqDctfOAatiXutNURwMPdqPfgR6t5Yoii/i1WMdss
 ST0gZdHkX5hK0/ADUYuwAZhQ1zU1DeoRnl5pNkvEpH2v8L6oe5mw7XhvIINom+VrC7GhjshMA
 wtUDF5SliwaKkdgvhEv/UBYaWQx89PDKluoGxuU27quzQDwv429jtZVfA8SRg+uxPQT16FqaT
 5e6o8Omqt7JSDOf9oqCIECyq5AHmq0CzD3qs8UaM0JToBGVokLyQyIQ//d9k1toTLvSxkA6hK
 g5Zx/AQGji8Jf2NK61aGbncTIBMCX0Z+De++uqYoXyZ+g47CE5AeI7jseFock8ffZuHnl2cKP
 tVADlxEEfgT5lThc5/4IVZRSMXXUvO0KdIy2XDPZe6ooKrC36gAPYOFbJKYqToz3bTxMkw3tM
 y41AnS6Shc3OMyw6bdoO1sZQX4gCZDwdZ/ZZfzdCHfSjjxTatr27g5GVSWYLMqHt2LOXO5qn1
 6O1ZbhVjfkpBknLXu9s4Oltg==
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > Thanks,
 but could you tell how that change could have affected
 this > assertion violation? I attach the patch now, sorry for not doing it
 earlier. IIUC we are talking about this assertion 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.15 listed in wl.mailspike.net]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.15 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > Thanks, but could you tell how that change could have affected
    this > assertion violation? I attach the patch now, sorry for not doing it
    earlier. IIUC we are talking about this assertion 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.15 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.159 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.15 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > Thanks, but could you tell how that change could have affected this
 > assertion violation?

I attach the patch now, sorry for not doing it earlier.

IIUC we are talking about this assertion

	  eassert (frame_size_change_delayed (XFRAME (w->frame))
		   || glyph_row_slice_p (window_row, frame_row));

Right?  If so, then this violation might be caused by the fact that we
(1) did resize windows according to the new sizes but (2) did not update
the frame sizes accordingly.  Which seems to match one observation that
the assertion gets violated when we increase the terminal height after
making it very small and not before.

 > AFAICT, adjust_frame_glyphs is not in the
 > backtrace, so how could moving code inside of it affect what happens
 > here?

I don't understand what you mean here.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 4 Sep 2024 13:25:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 04 09:25:07 2024
Received: from localhost ([127.0.0.1]:33868 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1slq0Q-0001FN-Mt
	for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 09:25:07 -0400
Received: from eggs.gnu.org ([209.51.188.92]:35352)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1slq0O-0001E0-Ru
 for 73022 <at> debbugs.gnu.org; Wed, 04 Sep 2024 09:25:05 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1slpzH-0007Ew-Gr; Wed, 04 Sep 2024 09:23:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=VFeDbwn56k8ymaYreNQsOX8BQp1akwqz3kfRW0V77Tg=; b=lIZvW0jO4zK6
 b+665iqYaq/MS4DQNwypFvthY1tPWJWtGTZ4kiaz+SaUNqFADMJhPyxhn683ppyNF1cBL31oz5RU4
 +GhmVKzvJ5XD/Jh9MsdrWCEQXNdNClIug6CFBmuGyp/mGGlTMYpTWQCFl53QBd5YJh9Lbb7iK8UiU
 dIB+GdWCKfEUf8Jny7aCVn2BtsujpI8KAY7Z+iCb9GEiqQPJEp0lAinSJtWKEG7xhto+Rh8a6Ek97
 VlmJ/Yq6KsipKVnkNhB00QUOoybqrzxQCJahzLLs3OjDB28T0QUVLjk29HYzSP1uMx5AWmFFKjtqS
 Ud70uZZYO3oI65Ca6yqdAg==;
Date: Wed, 04 Sep 2024 16:23:37 +0300
Message-Id: <86ed5z5z8m.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: rudalics@HIDDEN
In-Reply-To: <86le07624j.fsf@HIDDEN> (message from Eli Zaretskii on Wed, 04
 Sep 2024 15:21:16 +0300)
Subject: Re: bug#73022: 31.0.50;
 Crash in build_frame_matrix_from_leaf_window after C-x 2 and reducing
 terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN> <86le07624j.fsf@HIDDEN>
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org > Date: Wed, 
 04 Sep 2024 15:21:16 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > > Date:
 Wed, 4 Sep 2024 09:28:47 +0200 > > From: martin rudalics via "Bu [...] 
 Content analysis details:   (1.3 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [209.51.188.92 listed in zen.spamhaus.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at https://www.dnswl.org/,
 medium trust [209.51.188.92 listed in list.dnswl.org]
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

> Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
> Date: Wed, 04 Sep 2024 15:21:16 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> > Date: Wed, 4 Sep 2024 09:28:47 +0200
> > From:  martin rudalics via "Bug reports for GNU Emacs,
> >  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> > 
> >  > To reproduce:
> >  > 1. Open emacs -Q
> >  > 2. Press C-x 2 to split the frame (top/bottom)
> >  > 3. Make the terminal very small (I slowly resize the X window that's
> >  > running urxvt, to the minimum size, 1 row and 2 columns in my case).
> >  > This shrinking process alone can produce the crash when the window is
> >  > around 5 lines high
> >  > 4. It always crashes in my case. If it doesn't, make the terminal
> >  > larger again, and repeat the resizing for some seconds until it
> >  > crashes
> >  >
> >  > Note that the C-x 2 is required. The problem doesn't happen with a
> >  > left/right split (C-x 3). But it happens after a C-x 3 C-x 2.
> > 
> > Kindly have a look at the fix I proposed here:
> > 
> > https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00054.html
> 
> Thanks, but could you tell how that change could have affected this
> assertion violation?  AFAICT, adjust_frame_glyphs is not in the
> backtrace, so how could moving code inside of it affect what happens
> here?

In any case, I can cause the assertion violation even after making the
change you suggested above.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 4 Sep 2024 12:22:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 04 08:22:40 2024
Received: from localhost ([127.0.0.1]:33771 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1slp1z-0007x7-Ph
	for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 08:22:40 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56528)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1slp1x-0007wt-95
 for 73022 <at> debbugs.gnu.org; Wed, 04 Sep 2024 08:22:38 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1slp0q-0003xD-2B; Wed, 04 Sep 2024 08:21:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=E5fMnV9yB7POTpFo2eBe9fiZPJ0aFaeGy4hJd5EhVSI=; b=rTgoPJdqM0jI
 b6mTYO2+ZRWhaCJcMWQtBrB7XW4Uxtx7jQHRxR7EItnZcCUmn+TFlT52SFsyW8Oqva28ghLa+la80
 T+xrP427EhQZ6INvK7m8n5PgS0qgz5ZfsInDduJQuZP507vvMxXe5fFFZWWj07nPdnASWM0oq/MFl
 wylCnO3jl9ogp4rVCwb3S3wirN7jIEnZtQsftPT63v/OB7GnFjC4lrsKLn/pHTQWh0dj4ogofk0FO
 Dg4P5YCQk3kU++84Brjh5j7HE3ZBsaVe5NJeeLBs9s0TiG52FlHdYWE6C+cXcEaoCe0DJ2aOzr09A
 egpuxwimR3h6aHNQfmlOCw==;
Date: Wed, 04 Sep 2024 15:21:16 +0300
Message-Id: <86le07624j.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN>
 (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#73022: 31.0.50;
 Crash in build_frame_matrix_from_leaf_window after C-x 2 and reducing
 terminal size
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN>
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > Date: Wed,
 4 Sep 2024 09:28:47 +0200 > From: martin rudalics
 via "Bug reports for GNU Emacs,
 > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
 > > > To reproduce: > > 1. Open emacs -Q [...] 
 Content analysis details:   (1.3 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [209.51.188.92 listed in zen.spamhaus.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at https://www.dnswl.org/,
 medium trust [209.51.188.92 listed in list.dnswl.org]
X-Debbugs-Envelope-To: 73022
Cc: n142857@HIDDEN, 73022 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

> Date: Wed, 4 Sep 2024 09:28:47 +0200
> From:  martin rudalics via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
>  > To reproduce:
>  > 1. Open emacs -Q
>  > 2. Press C-x 2 to split the frame (top/bottom)
>  > 3. Make the terminal very small (I slowly resize the X window that's
>  > running urxvt, to the minimum size, 1 row and 2 columns in my case).
>  > This shrinking process alone can produce the crash when the window is
>  > around 5 lines high
>  > 4. It always crashes in my case. If it doesn't, make the terminal
>  > larger again, and repeat the resizing for some seconds until it
>  > crashes
>  >
>  > Note that the C-x 2 is required. The problem doesn't happen with a
>  > left/right split (C-x 3). But it happens after a C-x 3 C-x 2.
> 
> Kindly have a look at the fix I proposed here:
> 
> https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00054.html

Thanks, but could you tell how that change could have affected this
assertion violation?  AFAICT, adjust_frame_glyphs is not in the
backtrace, so how could moving code inside of it affect what happens
here?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 4 Sep 2024 07:30:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 04 03:30:00 2024
Received: from localhost ([127.0.0.1]:33258 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1slkSl-0008CF-UG
	for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 03:30:00 -0400
Received: from mout.gmx.net ([212.227.15.18]:45667)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1slkSk-0008C1-MP
 for 73022 <at> debbugs.gnu.org; Wed, 04 Sep 2024 03:29:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1725434929; x=1726039729; i=rudalics@HIDDEN;
 bh=iRRzg77XK3TMgit7r1Fnc3N0krUMYyb7NH+a7HBYHHs=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=FNC3THuGMWWS3ZKb0GRC0/gTuTgrosf+Vwm92XPqtYAUVybsXNcxF3en+ncmvIm9
 TBbxG7CNb8esZzBNyiYHaFYYzxyYUOXRZOQ2Siy0mQI3m0hhp4faNpaKUSESy07Zy
 v0CMmKLyCifKnBZQ8Chhdtmpv3KrW2267DO1IYwUh8xjh5ZEcs/8nP3s87BKoCOM+
 sRTyqrIqmOtbyMsgH/0rwNVTLqdLjw4+vVDcdcTpFlNB1oPy3IkMu/x8h5B+eMGeU
 FC7KibbderoYCYCKioCG24WzPhr4dBB8PMhyN/Ao3qx9cglr2kH1ZRF/i2aTPbmo6
 k8ZNYdLfQQj96hBH/g==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.96.184]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MOA3P-1sNu493H4r-00Rnvj; Wed, 04
 Sep 2024 09:28:48 +0200
Message-ID: <ac1e5816-ea35-49bd-9462-af5ce55c23f8@HIDDEN>
Date: Wed, 4 Sep 2024 09:28:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#73022: 31.0.50; Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size
To: Daniel Clemente <n142857@HIDDEN>, 73022 <at> debbugs.gnu.org
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:jLJE0aDrLYdowoa0FcmAEwNyCUfrPffaZqW39y0h572GkJyFwmo
 poMEmCHTmuLxL23PUWL9nc/k/dQRHWqiSBIukgl5UlIsPKl5XiT45H4t0TseDrKCZQELGMn
 v16Vt+cO4lp5heyAf6J3FUb/1rnYi7CShTMWRZ3Wz8fG3n4RT7V16dbeOGHZvl2hOZlWtjJ
 4gUMEscUfS8lnxF8mbtuw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:tunRt/efAts=;XRwqhiiZ4GarMcS8N+WIQRT45KX
 2D6L2jr2Q9EWrMWBiL/W6la56RRmKqUxabQ7Hd2ukoOHC+HImhch9sStXRuNNBGXMFNDxeQGd
 UeAzzzhFOrJfUWRQmuUXj8kbt/Q2nPhVllpHDBfBMGKBGqxs42ptgBfDOJNJrhUrCzn01S/3Q
 O3cDysXGPomJyfN+H9uX19VMEjkONHMdLNANQS0nk/Ehjny3jO/oIum4B6tAXgTKmys6R0WGu
 YVqts93LacPlV0BuVULtyNaHp5zvydQPskCPUZAjUnSps/af4uGiqL7jo74SPH9pVDK/WrtKq
 7z7V6litsqySywCf7ta39M+PcLsCsudQXeQJApkeL450qgFhU0w0KHMIkYLbQIsLIPQB9Nzka
 LYE6VTvWSer6Rnc8P+RWTFINA4rvlNErRUdomV3X8CZC+2mhhTNOX5Uc2iG/E5uzGTCgl1rWQ
 DC0lest5MjPdTP4n0C2CDWg6A9MieANNgN9YrzQuIUyGC/SqMAx0k4azgO1cY4fFp4WzhHPfZ
 pcC8L5gOiL5hGnl/Zk0qe2XjKzLzr1UnzMTcgB+flgI1kFHC3KPr6GcLwp4qPmsJXuxTn5UBA
 q4txO3khfty3e2mO6GbMqZDLMQrIwzPpV2iDDOtbzgrGDn6IWdG3U9j+xevktH7M4erF2XWv1
 XCrIo8MsXMD+dHUP9TalJ6+KCBAFcdXu8B70iS5xsuGwUlZc0gCdpbbM8Tb9SvtL5DTuxpz/P
 r6hwQ7YAK7i4yLFY8Op3NQkk3r2ane16OkoeQEMYRspIdpIU/roOUpG3joRNm7XWuJ2NevbBJ
 3+vqSr54h0BGxJhN6fhd3yk4dwwwZNspkSAR+hrJ+KAQWR1SeGo5myWtX8FtKasuHF
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Sorry, my last mail went at the wrong address. Reposting.
 > In particular, I found a case in which an assert fails because the > window
 row glyph memory is not contained in the frame row glyph > memory. > > It
 happens in a recent build (99a03ddb2d4) built w [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [213.142.96.184 listed in zen.spamhaus.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.15.18 listed in wl.mailspike.net]
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 73022
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  Sorry, my last mail went at the wrong address. Reposting.
   > In particular, I found a case in which an assert fails because the > window
    row glyph memory is not contained in the frame row glyph > memory. > > It
    happens in a recent build (99a03ddb2d4) built w [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.15.18 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [213.142.96.184 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

Sorry, my last mail went at the wrong address.  Reposting.

 > In particular, I found a case in which an assert fails because the
 > window row glyph memory is not contained in the frame row glyph
 > memory.
 >
 > It happens in a recent build (99a03ddb2d4) built without X support.
 > I'm running it in a urxvt terminal but it happens in xterm too. It
 > crashes both with and without glyph debug. This is not related to
 > garbage collection like bug 71289.
 >
 > To reproduce:
 > 1. Open emacs -Q
 > 2. Press C-x 2 to split the frame (top/bottom)
 > 3. Make the terminal very small (I slowly resize the X window that's
 > running urxvt, to the minimum size, 1 row and 2 columns in my case).
 > This shrinking process alone can produce the crash when the window is
 > around 5 lines high
 > 4. It always crashes in my case. If it doesn't, make the terminal
 > larger again, and repeat the resizing for some seconds until it
 > crashes
 >
 > Note that the C-x 2 is required. The problem doesn't happen with a
 > left/right split (C-x 3). But it happens after a C-x 3 C-x 2.

Kindly have a look at the fix I proposed here:

https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00054.html

If necessary, I can send you a patch.

Thanks, martin





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at 73022 <at> debbugs.gnu.org:


Received: (at 73022) by debbugs.gnu.org; 4 Sep 2024 06:27:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 04 02:27:45 2024
Received: from localhost ([127.0.0.1]:33168 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sljUX-0006VR-N4
	for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 02:27:45 -0400
Received: from mail-ua1-f47.google.com ([209.85.222.47]:47171)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1sljUW-0006VF-Ga
 for 73022 <at> debbugs.gnu.org; Wed, 04 Sep 2024 02:27:44 -0400
Received: by mail-ua1-f47.google.com with SMTP id
 a1e0cc1a2514c-846c36009d5so919864241.2
 for <73022 <at> debbugs.gnu.org>; Tue, 03 Sep 2024 23:26:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725431136; x=1726035936; darn=debbugs.gnu.org;
 h=content-transfer-encoding:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=OPDlZqiGwqWnA6oB7F1D3FkShMQT1EwT4F/nbWwJK/I=;
 b=UXPnAJmvPu+it7oqHpOGpC1IAb24sib8BxBtoOPSUwp29XG6RSJOnJaBFmg9Of2Y/8
 KlMf2c0mrnuqT6dz1gXe0r3GMut69AoUEt2aVn79gSU2xdUxnPiRxfPyW6VUKweYQRQa
 nYcb5cJ2TOL9z8JAjXGVEk2JRxsX0g3YyBbn1pFljzSka+9TT6OsTQYmyNBmsh4ZnOPd
 fOGER9C61Fac0xcMMJEuZVQ33NdfgXezHqANgI5HTEc1i8MaZ3gHANta7J67yEmjc/+m
 DDEphxCyYd6cl5zmie5shoF0Jku48/Z9p/Z1H9xApAQgNmJaDaE3DfVEAVFejPgwQO6p
 cd9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725431136; x=1726035936;
 h=content-transfer-encoding:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=OPDlZqiGwqWnA6oB7F1D3FkShMQT1EwT4F/nbWwJK/I=;
 b=fmz9Q90rBi9FBismnS0c97oDWWtr7aL8OsCOF1OecZ/B/DcrVjIw0NHvj2sbJxIkD1
 9lKqDvUKszmIJivRMj0B5hppkbgQVfMiEaot2W1hYxxGcBqZgAQZwawP9uMxlm5DtiE3
 +P8q3Brlr8QBqub5A2Lt6enntkXFetQ5VAO0052U+mnkA9NKfUxJ9ulen/rwkU3hy063
 SIYKiKS6qz8OL59Fk8g4NAqRGveMFA1zroLAmusoa2rq55J8mcJiKkgTz+kWvZ73U/IN
 8Ssu4hwLB8pnpSweD5e20qDHkFFoss/n4imrIsYKCSjPgySg3/FjM6gSOgLrYCYzU14T
 32lg==
X-Gm-Message-State: AOJu0YxPG+8X95oxYVPufQeJcb+xTMacb1s2Qn34IRi4gey1GBcejy9v
 q8ECBg5f2JUwrvVL4ehe/PPbzDdW3J/nu7dAOkdVwscIy/DVawqNrQSCgQb8WENmW/9QvTPKqb1
 kBRlalXJogQuAcnOlUC9HE9Uk+Igs3bBp0eFydw==
X-Google-Smtp-Source: AGHT+IH5BtJWfGO0y4c05unMkWLBNQH5qcbxxod75jFJyvkdCeJKfNZVH+UH05W8NKdwpkgVKYDt74hICbmgPlB2FU0=
X-Received: by 2002:a05:6122:883:b0:4fc:e2bf:f5e2 with SMTP id
 71dfb90a1353d-500de1937d7mr5261858e0c.7.1725431135728; Tue, 03 Sep 2024
 23:25:35 -0700 (PDT)
MIME-Version: 1.0
References: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
 <handler.73022.B.172543028723315.ack <at> debbugs.gnu.org>
In-Reply-To: <handler.73022.B.172543028723315.ack <at> debbugs.gnu.org>
From: Daniel Clemente <n142857@HIDDEN>
Date: Wed, 4 Sep 2024 06:25:09 +0000
Message-ID: <CAJKAhPCd92H8RyHBA9dMzqpRAvY=OeNwZ+cL+znMDT7_jtLqDg@HIDDEN>
Subject: Re: bug#73022: Acknowledgement (31.0.50;
 Crash in build_frame_matrix_from_leaf_window
 after C-x 2 and reducing terminal size)
To: 73022 <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 73022
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

> Configured using:
> [=E2=80=A6]
> --without-x 'CFLAGS=3D-g3 -O3''

I sent another build's information by mistake. The backtraces are
actually from a -O0 build, with this information:


In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu) of 2024-09-01 built
 on sonn
Repository revision: 99a03ddb2d43d67577814b96e40ec069739b6421
Repository branch: master
System Description: Devuan GNU/Linux 5 (daedalus)

Configured using:
 'configure --prefix=3D/opt/dc/emacs-dev/ --with-tiff=3Dno --without-tiff
 --without-libsystemd --without-dbus --with-mailutils --without-modules
 --with-native-compilation --with-x-toolkit=3Dno --without-imagemagick
 --without-xft --without-harfbuzz --without-freetype --without-libotf
 --without-xwidgets --without-xpm --without-jpeg --without-gif
 --without-png --without-webp --without-rsvg --without-cairo --without-x
 --without-sound --enable-checking=3Dyes,glyphs --enable-profiling
 'CFLAGS=3D-g3 -O0 ''




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 4 Sep 2024 06:11:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 04 02:11:27 2024
Received: from localhost ([127.0.0.1]:33154 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sljEj-00063w-LM
	for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 02:11:27 -0400
Received: from lists.gnu.org ([209.51.188.17]:41780)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <n142857@HIDDEN>) id 1sljEf-00063m-My
 for submit <at> debbugs.gnu.org; Wed, 04 Sep 2024 02:11:23 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <n142857@HIDDEN>) id 1sljDd-0007pL-No
 for bug-gnu-emacs@HIDDEN; Wed, 04 Sep 2024 02:10:17 -0400
Received: from mail-vk1-xa30.google.com ([2607:f8b0:4864:20::a30])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <n142857@HIDDEN>) id 1sljDZ-0003l4-Do
 for bug-gnu-emacs@HIDDEN; Wed, 04 Sep 2024 02:10:17 -0400
Received: by mail-vk1-xa30.google.com with SMTP id
 71dfb90a1353d-4feb60e525bso223809e0c.0
 for <bug-gnu-emacs@HIDDEN>; Tue, 03 Sep 2024 23:10:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1725430212; x=1726035012; darn=gnu.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=34jgNwsPoC2bOqNYxHU5cx7f0X2J2VIgWbTopHJgEJo=;
 b=IWvyiJ/4q89zuqXWBwH8BPdqM0UcAQQw1CSx3S217bolBkz/rcLnZ+7o7FrdhRON6l
 CvSha7niGga/dGCRmW7lsp6NvtlW0Fdfr1FpK1dibjOXJ2CE58mEqwk1f+TvoQzuNdiF
 8IxutdPnwQDPcFfVnlID6S9Rp5iWBkXnzOiXbavIUyoKAJBsWr/K09TlZO4pw3mQ7lTt
 YsrR+y0ILWcoKAPxD//95BWQCXHWP2JqwKuuKhpdcvZWMFBijXeD//iKpoe+MtpF6jY+
 u1Bd/bgorzJlNoyLVnvIcXzkFOgAnCli+ssMpKiuE6W3HYQi/opW3IT4Ev1qPmTGSJEC
 U3mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1725430212; x=1726035012;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=34jgNwsPoC2bOqNYxHU5cx7f0X2J2VIgWbTopHJgEJo=;
 b=dsB1Q0cjFew9ikt5kkHdGCdUwo5OdOEKSQT05m+4OPGlo1Xi9A2Sou/reQ0STPADyP
 CK/qPiCpBSMrocrGLipJ2KYT4yj87uZovMFIPBs2Y0OywZOUO5eUAk3rTdq3b2sL9kp+
 hLXgcjeFu16sCE3dsIwRLg1vDIxIFRTR6r08IfW4N49Is2zWDX67gRcix/UN1AuhzCnd
 NXV2qnFhaVtFTn9grnIHqsAxJOT7VXf/fiIW/NjeeOSfLGwx06Zw85EEWzprsmVWQ132
 Sj52iG5KyjnONuKL8o0Hev8ZKhr9FTXM5KujAYG++4JWCiYwgBo5K1QutKqyl2ZLj5xI
 DB2A==
X-Gm-Message-State: AOJu0Yw+lztKNnTTCDJC++YLRRRXzN+OVlcHfT+IAvL4TSJ2hHspAo4u
 fnP/Nl7E+7iTtdwHKTTW6ShE3jPKIGf+vkIt62ewqLdZjbuqgmPuA1MKf2aw/qZbXKF7w/ODucL
 h8acfSOsEAtDIiivYsPDDqSjHSAAPXh/J1eqsxw==
X-Google-Smtp-Source: AGHT+IH7nAQzaA0iEW4NodiyFDeKva+1djAXKjqLawQbpTiinW9PQlbgkH5/83dEYLwFTBZ0Ye7uzxtWezcpCRuC1eo=
X-Received: by 2002:a05:6122:1827:b0:4f6:b302:5c50 with SMTP id
 71dfb90a1353d-500f6251dfemr431184e0c.0.1725430211360; Tue, 03 Sep 2024
 23:10:11 -0700 (PDT)
MIME-Version: 1.0
From: Daniel Clemente <n142857@HIDDEN>
Date: Wed, 4 Sep 2024 06:09:44 +0000
Message-ID: <CAJKAhPC8j+__DcCPskmwZ_a2wjOE5XLvt7KkcOKDPybb8QMHVw@HIDDEN>
Subject: 31.0.50; Crash in build_frame_matrix_from_leaf_window after C-x 2 and
 reducing terminal size
To: bug-gnu-emacs@HIDDEN
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=2607:f8b0:4864:20::a30;
 envelope-from=n142857@HIDDEN; helo=mail-vk1-xa30.google.com
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.1 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.1 (--)

Continuing from this comment at
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71289:

> That's another problem.  There seems to be some disconnect, time-wise,
> in reallocating frame matrices and sub-allocating window matrices from
> the frame matrices, and the crash happens when the check is done
> in-between those two.

In particular, I found a case in which an assert fails because the
window row glyph memory is not contained in the frame row glyph
memory.

It happens in a recent build (99a03ddb2d4) built without X support.
I'm running it in a urxvt terminal but it happens in xterm too. It
crashes both with and without glyph debug. This is not related to
garbage collection like bug 71289.

To reproduce:
1. Open emacs -Q
2. Press C-x 2 to split the frame (top/bottom)
3. Make the terminal very small (I slowly resize the X window that's
running urxvt, to the minimum size, 1 row and 2 columns in my case).
This shrinking process alone can produce the crash when the window is
around 5 lines high
4. It always crashes in my case. If it doesn't, make the terminal
larger again, and repeat the resizing for some seconds until it
crashes

Note that the C-x 2 is required. The problem doesn't happen with a
left/right split (C-x 3). But it happens after a C-x 3 C-x 2.

Manually resizing is enough to trigger the problem. But it's also
possible to automate the resizing with something like this (change the
first part to find the window ID):   EC=$(xdotool search --name '^\gdb
src/emacs') && echo $EC && while :; do for height_px in `seq 275 -25
10`; do xdotool windowsize $EC $((height_px+5)) $height_px; sleep
0.001; done;   for height_px in `seq 1 25 400`; do xdotool windowsize
$EC $((height_px+5)) $height_px; sleep 0.1; done;     sleep 0.3 &&
done


(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=6, no_tid=no_tid@entry=0) at
./nptl/pthread_kill.c:44
#1  0x00007ffff554ae8f in __pthread_kill_internal (signo=6,
threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007ffff54fbfb2 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#3  0x000055555568d0c2 in terminate_due_to_signal (sig=6,
backtrace_limit=2147483647) at emacs.c:469
#4  0x000055555573de15 in die (
    msg=0x555555856798 "frame_size_change_delayed (XFRAME (w->frame))
|| glyph_row_slice_p (window_row, frame_row)",
    file=0x555555856231 "dispnew.c", line=2647) at alloc.c:8058
#5  0x000055555558b697 in build_frame_matrix_from_leaf_window
(frame_matrix=0x5555560fed00, w=0x55555603cca8) at dispnew.c:2647
#6  0x000055555558b154 in build_frame_matrix_from_window_tree
(matrix=0x5555560fed00, w=0x55555603cca8) at dispnew.c:2536
#7  0x000055555558b13f in build_frame_matrix_from_window_tree
(matrix=0x5555560fed00, w=0x555556260390) at dispnew.c:2534
#8  0x000055555558b0e3 in build_frame_matrix (f=0x55555603ca88) at
dispnew.c:2520
#9  0x000055555558d0e3 in update_frame (f=0x55555603ca88,
force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3336
#10 0x00005555555d0904 in redisplay_internal () at xdisp.c:17518
#11 0x00005555555d1244 in redisplay_preserve_echo_area (from_where=11)
at xdisp.c:17801
#12 0x00005555557f5893 in wait_reading_process_output (time_limit=97,
nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=0x0,
    wait_proc=0x0, just_wait_proc=0) at process.c:5584
#13 0x00005555555951d3 in sit_for (timeout=0x186, reading=true,
display_option=1) at dispnew.c:6335


This is the failing assertion in frame 5, dispnew.c:
(gdb) list
2642            }
2643
2644    #ifdef GLYPH_DEBUG
2645          /* Window row window_y must be a slice of frame row
2646             frame_y.  */
2647          eassert (frame_size_change_delayed (XFRAME (w->frame))
2648               || glyph_row_slice_p (window_row, frame_row));
2649
2650          /* If rows are in sync, we don't have to copy glyphs because
2651             frame and window share glyphs.  */


Both conditions:
  frame_size_change_delayed (XFRAME (w->frame)
  glyph_row_slice_p (window_row, frame_row)
are false. I don't know which one should be true in this case.

This is the part about being delayed.
(gdb) p delayed_size_change
$15 = false


glyph_row_slice_p contains this code:
  struct glyph *window_glyph_start = window_row->glyphs[0];
  struct glyph *frame_glyph_start = frame_row->glyphs[0];
  struct glyph *frame_glyph_end = frame_row->glyphs[LAST_AREA];
  return (frame_glyph_start <= window_glyph_start
      && window_glyph_start < frame_glyph_end);

The first part of the condition is false:

(gdb) p frame_row->glyphs[0]
$24 = (struct glyph *) 0x7ffff0f414c0
(gdb) p window_row->glyphs[0]
$25 = (struct glyph *) 0x7ffff088b430
(gdb) p frame_row->glyphs[0] <= window_row->glyphs[0]
$26 = 0
(gdb)

The second part is true:

(gdb) p window_row->glyphs[0]
$29 = (struct glyph *) 0x7ffff088b430
(gdb) p frame_row->glyphs[LAST_AREA]
$30 = (struct glyph *) 0x7ffff0f41970
(gdb) p window_row->glyphs[0] < frame_row->glyphs[LAST_AREA]
$31 = 1
(gdb)


Since the second part is true, I'm guessing that the first part should
also be true. So the error lies in frame_glyph_start <=
window_glyph_start (it should be true and isn't), which means the
window row glyph memory is not contained in the frame row glyph
memory.

I can research this further as I learn about terminal code. I report
this here to separate this simple bug from bug 71289 which is about
GC.
Note that I'm not seeing the cmcheckmagic error mentioned in bug 71289
anymore. I may have seen it in an older build. They may still happen
if the build_frame_matrix_from_leaf_window error doesn't happen first.


Extra data (this is from a case in which I used the autoresizer):

(gdb) p (struct frame) w->frame
$14 = {
  header = {
    size = 93825003499509
  },
  name = XIL(0x555556240b1d),
  icon_name = XIL(0),
  title = XIL(0x55555620e445),
  last_mouse_device = XIL(0x7ffff4ac4307),
  focus_frame = XIL(0x7ffff4ac42ff),
  root_window = make_fixnum(22),
  selected_window = XIL(0),
  old_selected_window = make_fixnum(22),
  minibuffer_window = XIL(0x555556198ac5),
  param_alist = XIL(0x7ffff09bd523),
  scroll_bars = XIL(0),
  condemned_scroll_bars = XIL(0x555556198ac5),
  menu_bar_items = XIL(0x55555601341d),
  face_hash_table = XIL(0x55555601344d),
  menu_bar_vector = XIL(0x55555601347d),
  buffer_predicate = make_fixnum(1),
  buffer_list = XIL(0),
  buried_buffer_list = XIL(0x30),
  tool_bar_position = XIL(0),
  tab_bar_items = XIL(0x30),
  tool_bar_items = XIL(0),
  face_cache = 0x0,
  last_tab_bar_item = 0,
  menu_bar_items_used = 0,
  current_pool = 0x7ffff09bd4e3,
  desired_pool = 0x30,
  desired_matrix = 0x5555561fc7c4,
  current_matrix = 0x555556050b70,
  glyphs_initialized_p = false,
  resized_p = false,
  default_face_done_p = false,
  already_hscrolled_p = false,
  updated_p = false,
  fonts_changed = false,
  cursor_type_changed = false,
  redisplay = false,
  visible = 1,
  iconified = false,
  garbaged = true,
  wants_modeline = false,
  auto_raise = false,
  auto_lower = false,
  no_split = false,
  explicit_name = true,
  window_change = false,
  window_state_change = true,
  mouse_moved = false,
  pointer_invisible = false,
  frozen_window_starts = false,
  output_method = output_android,
  can_set_window_size = true,
  after_make_frame = false,
  tab_bar_redisplayed = true,
  tab_bar_resized = false,
--Type <RET> for more, q to quit, c to continue without paging--
  tool_bar_redisplayed = true,
  tool_bar_resized = false,
  inhibit_horizontal_resize = true,
  inhibit_vertical_resize = false,
  face_change = true,
  inhibit_clear_image_cache = false,
  new_size_p = true,
  was_invisible = false,
  select_mini_window_flag = true,
  change_stamp = 12,
  number_of_windows = 1,
  tab_bar_lines = 210,
  tab_bar_height = 0,
  n_tab_bar_rows = 1,
  n_tab_bar_items = 0,
  tool_bar_lines = 1,
  tool_bar_height = 22,
  n_tool_bar_rows = 2,
  n_tool_bar_items = 22,
  decode_mode_spec_buffer = 0x1600000002 <error: Cannot access memory
at address 0x1600000002>,
  insert_line_cost = 0x1600000001,
  delete_line_cost = 0x2,
  insert_n_lines_cost = 0x0,
  delete_n_lines_cost = 0x0,
  text_cols = 0,
  text_lines = 0,
  text_width = 0,
  text_height = 0,
  total_cols = 0,
  total_lines = 0,
  pixel_width = 1,
  pixel_height = 0,
  new_width = -1,
  new_height = -1,
  left_pos = 0,
  top_pos = 0,
  win_gravity = 0,
  size_hint_flags = 0,
  border_width = -1,
  child_frame_border_width = -1,
  internal_border_width = 1,
  right_divider_width = 1,
  bottom_divider_width = 0,
  left_fringe_width = 0,
  right_fringe_width = 0,
  fringe_cols = 0,
  menu_bar_lines = 0,
  menu_bar_height = 0,
  column_width = 0,
  line_height = 0,
  terminal = 0x0,
  output_data = {
    tty = 0x0,
    x = 0x0,
    w32 = 0x0,
    ns = 0x0,
    pgtk = 0x0,
    haiku = 0x0,
--Type <RET> for more, q to quit, c to continue without paging--
    android = 0x0
  },
  font_driver_list = 0xffffffff00000000,
  desired_cursor = NO_CURSOR,
  cursor_width = 0,
  blink_off_cursor = FILLED_BOX_CURSOR,
  blink_off_cursor_width = -1,
  config_scroll_bar_width = -1,
  config_scroll_bar_cols = 1,
  config_scroll_bar_height = -1,
  config_scroll_bar_lines = -1,
  cost_calculation_baud_rate = 624886,
  alpha = {1.4128247976246783e-309, 0},
  alpha_background = 3.1349799205870865e-318,
  gamma = 2.0000000223608367,
  extra_line_spacing = 1444514496,
  background_pixel = 0,
  foreground_pixel = 93825003500664
}



(gdb) p *window_row
$20 = {
  glyphs = {0x7ffff088b430, 0x7ffff088b430, 0x7ffff088b850, 0x7ffff088b850},
  used = {0, 22, 0, 0},
  hash = 122398255,
  x = 0,
  y = 0,
  pixel_width = 21,
  ascent = 0,
  height = 1,
  phys_ascent = 0,
  phys_height = 1,
  visible_height = 1,
  extra_line_spacing = 0,
  start = {
    pos = {
      charpos = 1,
      bytepos = 1
    },
    overlay_string_index = -1,
    string_pos = {
      charpos = -1,
      bytepos = -1
    },
    dpvec_index = -1
  },
  end = {
    pos = {
      charpos = 22,
      bytepos = 22
    },
    overlay_string_index = -1,
    string_pos = {
      charpos = -1,
      bytepos = -1
    },
    dpvec_index = -1
  },
  minpos = {
    charpos = 1,
    bytepos = 1
  },
  maxpos = {
    charpos = 22,
    bytepos = 22
  },
  overlay_arrow_bitmap = 0,
  left_user_fringe_bitmap = 0,
  right_user_fringe_bitmap = 0,
  left_fringe_bitmap = 0,
  right_fringe_bitmap = 0,
  left_user_fringe_face_id = 0,
  right_user_fringe_face_id = 0,
  left_fringe_face_id = 0,
  right_fringe_face_id = 0,
  left_fringe_offset = 0,
  right_fringe_offset = 0,
  fringe_bitmap_periodic_p = false,
  redraw_fringe_bitmaps_p = false,
--Type <RET> for more, q to quit, c to continue without paging--
  enabled_p = true,
  truncated_on_left_p = false,
  truncated_on_right_p = false,
  continued_p = true,
  displays_text_p = true,
  ends_at_zv_p = false,
  fill_line_p = false,
  indicate_empty_line_p = false,
  contains_overlapping_glyphs_p = false,
  full_width_p = false,
  mode_line_p = false,
  tab_line_p = false,
  overlapped_p = false,
  ends_in_middle_of_char_p = false,
  starts_in_middle_of_char_p = false,
  overlapping_p = false,
  mouse_face_p = false,
  ends_in_newline_from_string_p = false,
  exact_window_width_line_p = false,
  cursor_in_fringe_p = false,
  ends_in_ellipsis_p = false,
  indicate_bob_p = false,
  indicate_top_line_p = false,
  indicate_eob_p = false,
  indicate_bottom_line_p = false,
  reversed_p = false,
  stipple_p = false,
  continuation_lines_width = 0
}


(gdb) p *frame_row
$21 = {
  glyphs = {0x7ffff0f414c0, 0x7ffff0f414c0, 0x7ffff0f41970, 0x7ffff0f41970},
  used = {0, 0, 0, 0},
  hash = 0,
  x = 0,
  y = 0,
  pixel_width = 0,
  ascent = 0,
  height = 0,
  phys_ascent = 0,
  phys_height = 0,
  visible_height = 0,
  extra_line_spacing = 0,
  start = {
    pos = {
      charpos = 0,
      bytepos = 0
    },
    overlay_string_index = 0,
    string_pos = {
      charpos = 0,
      bytepos = 0
    },
    dpvec_index = 0
  },
  end = {
    pos = {
      charpos = 0,
      bytepos = 0
    },
    overlay_string_index = 0,
    string_pos = {
      charpos = 0,
      bytepos = 0
    },
    dpvec_index = 0
  },
  minpos = {
    charpos = 0,
    bytepos = 0
  },
  maxpos = {
    charpos = 0,
    bytepos = 0
  },
  overlay_arrow_bitmap = 0,
  left_user_fringe_bitmap = 0,
  right_user_fringe_bitmap = 0,
  left_fringe_bitmap = 0,
  right_fringe_bitmap = 0,
  left_user_fringe_face_id = 0,
  right_user_fringe_face_id = 0,
  left_fringe_face_id = 0,
  right_fringe_face_id = 0,
  left_fringe_offset = 0,
  right_fringe_offset = 0,
  fringe_bitmap_periodic_p = false,
  redraw_fringe_bitmaps_p = false,
--Type <RET> for more, q to quit, c to continue without paging--
  enabled_p = true,
  truncated_on_left_p = false,
  truncated_on_right_p = false,
  continued_p = false,
  displays_text_p = false,
  ends_at_zv_p = false,
  fill_line_p = false,
  indicate_empty_line_p = false,
  contains_overlapping_glyphs_p = false,
  full_width_p = false,
  mode_line_p = false,
  tab_line_p = false,
  overlapped_p = false,
  ends_in_middle_of_char_p = false,
  starts_in_middle_of_char_p = false,
  overlapping_p = false,
  mouse_face_p = false,
  ends_in_newline_from_string_p = false,
  exact_window_width_line_p = false,
  cursor_in_fringe_p = false,
  ends_in_ellipsis_p = false,
  indicate_bob_p = false,
  indicate_top_line_p = false,
  indicate_eob_p = false,
  indicate_bottom_line_p = false,
  reversed_p = false,
  stipple_p = false,
  continuation_lines_width = 0
}
(gdb)



In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu) of 2024-09-01 built on sonn
Repository revision: 99a03ddb2d43d67577814b96e40ec069739b6421
Repository branch: master
System Description: Devuan GNU/Linux 5 (daedalus)

Configured using:
 'configure --prefix=/opt/dc/emacs/ --without-lcms2
--without-libsystemd --without-dbus
 --without-sound --with-mailutils --with-native-compilation
--without-modules --with-x-toolkit=no
 --without-xim --without-imagemagick --without-xft --without-harfbuzz
--without-libotf
 --without-xwidgets --without-xpm --with-tiff=no --without-tiff
--without-jpeg --without-gif
 --without-png --without-webp --without-rsvg --without-cairo
--without-x 'CFLAGS=-g3 -O3''

Configured features:
GMP GNUTLS LIBSELINUX LIBXML2 NATIVE_COMP NOTIFY INOTIFY PDUMPER
SECCOMP SQLITE3 THREADS XIM ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=SCIM
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  xterm-mouse-mode: t
  server-mode: t
  gnus-dired-mode: t
  savehist-mode: t
  recentf-mode: t
  hexl-follow-ascii: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  async-bytecomp-package-mode: t
  jdecomp-mode: t
  projectile-mode: t
  override-global-mode: t
  rcirc-track-minor-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  unpackaged/org-export-html-with-useful-ids-mode: t
  minibuffer-depth-indicate-mode: t
  global-so-long-mode: t
  display-time-mode: t
  global-hl-line-mode: t
  xclip-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/w/helm/helm-files hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-files
/w/helm/helm-comint hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-comint
/w/helm/helm-elisp-package hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-elisp-package
/w/helm/helm-external hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-external
/w/helm/helm-easymenu hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-easymenu
/w/helm/helm-font hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-font
/w/helm/helm-imenu hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-imenu
/w/helm/helm-x-files hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-x-files
/w/helm/helm-regexp hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-regexp
/w/helm/helm-net hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-net
/w/helm/helm-ring hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-ring
/w/helm/helm-find hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-find
/w/helm/helm-misc hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-misc
/w/helm/helm-occur hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-occur
/w/helm/helm-sys hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-sys
/w/helm/helm-types hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-types
/w/helm/helm-elisp hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-elisp
/w/helm/helm-adaptive hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-adaptive
/w/helm/helm-shell hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-shell
/w/helm/helm-id-utils hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-id-utils
/w/helm/helm-bookmark hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-bookmark
/w/helm/helm-mode hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-mode
/w/helm/helm-eshell hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-eshell
/w/helm/helm-dabbrev hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-dabbrev
/w/helm/helm-grep hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-grep
/w/helm/helm-color hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-color
/w/helm/helm-help hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-help
/w/helm/helm-buffers hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-buffers
/w/helm/helm-locate hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-locate
/w/helm/helm-tags hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-tags
/w/helm/helm-autoloads hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-autoloads
/w/helm/helm-info hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-info
/w/helm/helm-semantic hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-semantic
/w/helm/helm-command hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-command
/w/helm/helm-utils hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-utils
/w/helm/helm-eval hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-eval
/w/helm/helm-for-files hides
/home/dc/.emacs.d/elpa/helm-20191101.641/helm-for-files
/w/helm/helm-man hides /home/dc/.emacs.d/elpa/helm-20191101.641/helm-man
/w/helm/helm-multi-match hides
/home/dc/.emacs.d/elpa/helm-core-20191031.1931/helm-multi-match
/w/helm/helm-lib hides /home/dc/.emacs.d/elpa/helm-core-20191031.1931/helm-lib
/w/helm/helm-source hides
/home/dc/.emacs.d/elpa/helm-core-20191031.1931/helm-source
/w/helm/helm hides /home/dc/.emacs.d/elpa/helm-core-20191031.1931/helm
/home/dc/.emacs.d/elpa/transient-20220717.1713/transient hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/transient
/w/org-mode/lisp/org-fold-core hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-fold-core
/w/org-mode/lisp/ob-haskell hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-haskell
/w/org-mode/lisp/org-plot hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-plot
/w/org-mode/lisp/ox-icalendar hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-icalendar
/w/org-mode/lisp/org-footnote hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-footnote
/w/org-mode/lisp/org-archive hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-archive
/w/org-mode/lisp/ob-exp hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-exp
/w/org-mode/lisp/ob-octave hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-octave
/w/org-mode/lisp/oc-natbib hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc-natbib
/w/org-mode/lisp/org-num hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-num
/w/org-mode/lisp/ob-processing hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-processing
/w/org-mode/lisp/org-mouse hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-mouse
/w/org-mode/lisp/ob-core hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-core
/w/org-mode/lisp/ob-awk hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-awk
/w/org-mode/lisp/org-table hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-table
/w/org-mode/lisp/org-lint hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-lint
/w/org-mode/lisp/oc-basic hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc-basic
/w/org-mode/lisp/ob-scheme hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-scheme
/w/org-mode/lisp/ox-latex hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-latex
/w/org-mode/lisp/org-loaddefs hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-loaddefs
/w/org-mode/lisp/ob-table hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-table
/w/org-mode/lisp/ob-shell hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-shell
/w/org-mode/lisp/org hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/org
/w/org-mode/lisp/ol-man hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-man
/w/org-mode/lisp/ol-rmail hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-rmail
/w/org-mode/lisp/ox-man hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-man
/w/org-mode/lisp/org-cycle hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-cycle
/w/org-mode/lisp/org-datetree hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-datetree
/w/org-mode/lisp/ol-mhe hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-mhe
/w/org-mode/lisp/ob-css hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-css
/w/org-mode/lisp/org-fold hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-fold
/w/org-mode/lisp/ob-lilypond hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-lilypond
/w/org-mode/lisp/ob-comint hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-comint
/w/org-mode/lisp/ob-plantuml hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-plantuml
/w/org-mode/lisp/ol-bbdb hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-bbdb
/w/org-mode/lisp/ox-ascii hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-ascii
/w/org-mode/lisp/ob-python hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-python
/w/org-mode/lisp/ob-ref hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-ref
/w/org-mode/lisp/ob-js hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-js
/w/org-mode/lisp/ox-md hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-md
/w/org-mode/lisp/oc hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc
/w/org-mode/lisp/org-keys hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-keys
/w/org-mode/lisp/org-feed hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-feed
/w/org-mode/lisp/org-capture hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-capture
/w/org-mode/lisp/org-ctags hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-ctags
/w/org-mode/lisp/ob-lob hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-lob
/w/org-mode/lisp/ob-forth hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-forth
/w/org-mode/lisp/ob-clojure hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-clojure
/w/org-mode/lisp/ob-sass hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-sass
/w/org-mode/lisp/ol-eshell hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-eshell
/w/org-mode/lisp/org-timer hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-timer
/w/org-mode/lisp/ob-R hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-R
/w/org-mode/lisp/org-src hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-src
/w/org-mode/lisp/ox-koma-letter hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-koma-letter
/w/org-mode/lisp/ob-tangle hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-tangle
/w/org-mode/lisp/ob-matlab hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-matlab
/w/org-mode/lisp/org-macro hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-macro
/w/org-mode/lisp/ob-makefile hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-makefile
/w/org-mode/lisp/ox-texinfo hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-texinfo
/w/org-mode/lisp/ob-org hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-org
/w/org-mode/lisp/ol-docview hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-docview
/w/org-mode/lisp/org-list hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-list
/w/org-mode/lisp/ob-eval hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-eval
/w/org-mode/lisp/org-element hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-element
/w/org-mode/lisp/ob hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob
/w/org-mode/lisp/ob-sqlite hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-sqlite
/w/org-mode/lisp/org-clock hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-clock
/w/org-mode/lisp/org-compat hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-compat
/w/org-mode/lisp/org-mobile hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-mobile
/w/org-mode/lisp/ol hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol
/w/org-mode/lisp/ob-groovy hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-groovy
/w/org-mode/lisp/org-goto hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-goto
/w/org-mode/lisp/ob-emacs-lisp hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-emacs-lisp
/w/org-mode/lisp/ol-eww hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-eww
/w/org-mode/lisp/org-tempo hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-tempo
/w/org-mode/lisp/oc-csl hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc-csl
/w/org-mode/lisp/ob-ruby hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-ruby
/w/org-mode/lisp/org-crypt hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-crypt
/w/org-mode/lisp/ol-irc hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-irc
/w/org-mode/lisp/org-faces hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-faces
/w/org-mode/lisp/ob-latex hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-latex
/w/org-mode/lisp/org-colview hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-colview
/w/org-mode/lisp/ol-bibtex hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-bibtex
/w/org-mode/lisp/ob-lua hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-lua
/w/org-mode/lisp/org-protocol hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-protocol
/w/org-mode/lisp/org-attach-git hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-attach-git
/w/org-mode/lisp/ob-screen hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-screen
/w/org-mode/lisp/org-agenda hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-agenda
/w/org-mode/lisp/org-persist hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-persist
/w/org-mode/lisp/ob-sql hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-sql
/w/org-mode/lisp/ob-gnuplot hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-gnuplot
/w/org-mode/lisp/ob-sed hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-sed
/w/org-mode/lisp/ol-gnus hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-gnus
/w/org-mode/lisp/org-inlinetask hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-inlinetask
/w/org-mode/lisp/ox-html hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-html
/w/org-mode/lisp/oc-biblatex hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc-biblatex
/w/org-mode/lisp/org-pcomplete hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-pcomplete
/w/org-mode/lisp/ob-perl hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-perl
/w/org-mode/lisp/org-version hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-version
/w/org-mode/lisp/org-indent hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-indent
/w/org-mode/lisp/org-refile hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-refile
/w/org-mode/lisp/ob-julia hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-julia
/w/org-mode/lisp/ol-info hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-info
/w/org-mode/lisp/ol-doi hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-doi
/w/org-mode/lisp/org-habit hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-habit
/w/org-mode/lisp/org-entities hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-entities
/w/org-mode/lisp/ox-publish hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-publish
/w/org-mode/lisp/org-duration hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-duration
/w/org-mode/lisp/org-element-ast hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-element-ast
/w/org-mode/lisp/ob-ditaa hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-ditaa
/w/org-mode/lisp/ob-dot hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-dot
/w/org-mode/lisp/ob-C hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-C
/w/org-mode/lisp/ox-org hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-org
/w/org-mode/lisp/ox-beamer hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-beamer
/w/org-mode/lisp/ob-fortran hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-fortran
/w/org-mode/lisp/ob-maxima hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-maxima
/w/org-mode/lisp/ob-eshell hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-eshell
/w/org-mode/lisp/ol-w3m hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ol-w3m
/w/org-mode/lisp/org-id hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-id
/w/org-mode/lisp/ox-odt hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox-odt
/w/org-mode/lisp/ob-java hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-java
/w/org-mode/lisp/ob-calc hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-calc
/w/org-mode/lisp/org-attach hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-attach
/w/org-mode/lisp/ob-ocaml hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-ocaml
/w/org-mode/lisp/oc-bibtex hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/oc-bibtex
/w/org-mode/lisp/ox hides /opt/dc/emacs/share/emacs/31.0.50/lisp/org/ox
/w/org-mode/lisp/ob-lisp hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/ob-lisp
/w/org-mode/lisp/org-macs hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/org/org-macs
/w/flim/sasl hides /opt/dc/emacs/share/emacs/31.0.50/lisp/net/sasl
/home/dc/.emacs.d/elpa/hierarchy-20190425.842/hierarchy hides
/opt/dc/emacs/share/emacs/31.0.50/lisp/emacs-lisp/hierarchy

Features:
(shadow emacsbug rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid
nxml-mode nxml-outln nxml-rap view
mhtml-mode js c-ts-common cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine
cc-vars cc-defs ox-texinfo ox-odt rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
ox-html table ox-ascii ox-publish
ox make-mode eglot external-completion jsonrpc xref flymake python
project emmet-mode css-mode
sgml-mode facemenu imenu solar cal-dst holidays holiday-loaddefs
mule-util cal-iso org-agenda
w3m-form textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check w3m-symbol
w3m-bookmark elmo-internal mel-q-ccl elmo-multi elmo-maildir
modb-standard wl-template wl-fldmgr
wl-score wl-demo wl-thread wl-action wl wl-draft wl-folder elmo-nntp
elmo-net elmo-cache elmo-map
elmo-dop ps-print ps-print-loaddefs lpr elmo-filter wl-summary
wl-refile wl-message wl-mime
mime-play filename mime-edit mime-setup mail-mime-setup semi-setup
smtp sasl sasl-anonymous
sasl-login sasl-plain wl-e21 wl-highlight invisible inv-23 elmo-mime
mmelmo-buffer mmelmo-imap
mmimap mmbuffer wl-address pldap wl-util wl-vars wl-version
modb-generic elmo-flag elmo-localdir
elmo elmo-signal elmo-msgdb modb modb-entity elmo-date eword-encode
mime-parse elmo-util elmo-vars
elmo-version misearch multi-isearch face-remap org-duration vc-hg ffap
helm-git-grep smerge-mode
help-fns radix-tree diff winner tramp-archive tramp-gvfs
xterm-keybinder xt-mouse term/rxvt
term/xterm xterm vc-mtn beancount oc-basic ol-eww eww url-queue mm-url
ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus gnus-cloud nnimap
nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message
sendmail yank-media puny rfc822
mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047
rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus nnheader
gnus-util mail-utils range mm-util
mail-prsvr ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi
org-link-doi dired-aux vc-git diff-mode
track-changes vc-dispatcher server hideshow quail rot13 git-link
skeleton bustrofedon
dired-filetype-face dired-tar gnus-dired dired-x mime-w3m mime-view
mime-conf calist semi-def mime
mmgeneric eword-decode mel path-util pces pces-e20 pces-20 mime-def
mcs-e20 mcs-20 mcharset std11
ccl pccl pccl-20 broken static luna alist apel-ver product w3m-lnum
w3m doc-view timezone w3m-hist
bookmark-w3m w3m-ems w3m-favicon w3m-image w3m-fb tab-line w3m-proc
w3m-util savehist tramp-cache
time-stamp tramp-sh recentf tree-widget em-term term ehelp esh-ext
esh-proc esh-opt esh-io esh-arg
esh-module esh-module-loaddefs esh-util zone-select jka-compr zone
binview calc calc-loaddefs
calc-macs hexl generic generic-x boxquote rect rainbow-delimiters
rainbow-mode color
magit-autorevert magit-git magit-base magit-section crm dash compat
autorevert fc flashcard-sm5
flashcard keywiz gamegrid tt-mode helm-mode helm-misc helm-elisp
helm-eval edebug helm-sys
helm-for-files helm-bookmark helm-adaptive helm-info bookmark fringe
helm-external helm-net xml
helm-files image-dired image-dired-tags image-dired-external
image-dired-util image-mode dired dnd
dired-loaddefs exif filenotify tramp trampver tramp-integration
files-x tramp-message tramp-compat
shell tramp-loaddefs helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp helm-utils
helm-help helm-types helm helm-global-bindings helm-easymenu helm-core
async-bytecomp helm-source
helm-multi-match helm-lib async helm-autoloads diary-lib
diary-loaddefs chuck-mode jdecomp arc-mode
archive-mode cus-edit cus-load projectile lisp-mnt ibuf-ext edmacro
kmacro use-package-bind-key
bind-key use-package-core rcirc parse-time iso8601 offlineimap hexrgb
yasnippet mailabbrev org-crypt
org-capture org-attach org-protocol org-clock cal-move org-inlinetask
org-superstar org-element
org-persist xdg avl-tree generator org-test ert-x ert pp ewoc debug
backtrace org-id org-refile
org-element-ast inline org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src sh-script
smie treesit executable ob-comint org-pcomplete pcomplete org-list
org-footnote org-faces
org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs thingatpt find-func
cal-menu calendar cal-loaddefs
org-version org-compat org-macs format-spec ibuf-macs ibuffer
ibuffer-loaddefs mb-depth comp
comp-cstr warnings comp-run comp-common rx advice mwheel easy-mmode
so-long longlines grep compile
text-property-search comint regexp-opt ansi-osc ansi-color ring
revbufs derived disp-table
hide-mode-line time image hl-line color-theme wid-edit reporter xclip
finder-inf elp
boxquote-autoloads calfw-autoloads calfw-gcal-autoloads
calfw-ical-autoloads calfw-org-autoloads
csv-mode-autoloads debbugs-autoloads emacsql-psql-autoloads
emacsql-autoloads emmet-mode-autoloads
feature-mode-autoloads git-link-autoloads gnuplot-autoloads
google-translate-autoloads
haskell-mode-autoloads cl-extra help-mode helm-sql-connect-autoloads
htmlize-autoloads
idle-org-agenda-autoloads jabber-autoloads fsm-autoloads
jdecomp-autoloads jedi-autoloads
jedi-core-autoloads jinja2-mode-autoloads json-reformat-autoloads
jsonian-autoloads magit-autoloads
pcase git-commit-autoloads magit-section-autoloads mingus-autoloads
libmpdee-autoloads
mmm-jinja2-autoloads mmm-mode-autoloads oauth2-autoloads
org-superstar-autoloads persist-autoloads
projectile-autoloads python-environment-autoloads
rcirc-color-autoloads srv-autoloads cl
terraform-mode-autoloads tmr-autoloads transient-autoloads
typescript-mode-autoloads
vimrc-mode-autoloads vue-html-mode-autoloads with-editor-autoloads
xclip-autoloads
xterm-keybinder-autoloads yasnippet-autoloads zone-nyan-autoloads info
tool-bar dash-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio
eieio-core cl-macs icons password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode tabulated-list replace newcomment text-mode
lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select mouse
jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple
cl-generic indonesian philippine cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite emoji-zwj
charscript charprop case-table epa-hook jka-cmpr-hook help abbrev
obarray oclosure cl-preloaded
button loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5
base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads
inotify multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 3160052 412323) (symbols 48 62684 6) (strings 32 325028
29395) (string-bytes 1 16950772)
 (vectors 16 304225) (vector-slots 8 4727886 155782) (floats 8 1843 114209)
 (intervals 56 81227 1605) (buffers 984 212))




Acknowledgement sent to Daniel Clemente <n142857@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#73022; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 12 Jan 2025 05:45:02 UTC

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