<div dir="ltr"><div dir="ltr"><div><div>Hi,<br><br></div>I can also reproduce the problem under Wayland + gnome-shell (but not on X11). On Wayland the window is not forced to fit in the screen, on X11 it is (with gnome-shell).<br><br></div>(I incorrectly thought I was testing with Wayland previously while I was actually on X11. I should've tried both, anyways, my bad.)<br><div><div><br></div><div>The crash happens when the window size exceeds a constant somewhere slightly below 16384 pixels (about 100 pixels smaller or so) in either direction. Presence of the menu bar, tab bar also influence the number of maximum lines without crash, so it's the window size that matters, not the VTE widget size.</div><div><br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
- gnome-terminal-server requests some situation that gnome-shell could not deliver,<br>
  therefore it should possibly avoid such a request.<br></blockquote><div><br></div><div>Without having further studied what's exactly going on, I also assume it's something along these lines.</div><div><br></div><div>We'd need to check if it's indeed gnome-terminal's responsibility to handle the error and try a smaller window size. Isn't it rather a bug somewhere in our underlying infrastructure: wayland, gnome-shell, gtk+ and friends?</div><div><br></div><div>gnome-terminal, xfce4-terminal and roxterm (three native Wayland, VTE-based emulators that handle app-initiated resize) all crash with "Gdk-Message: 09:55:43.773: Error 71 (Protocol error) dispatching to Wayland display."<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
- vim seems to have a problem to handle SIGHUPs while currently reacting to user input.<br>
  Sending a SIGHUP while vim is idle does not produce a SIGSEGV. <br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  Also I thought inside a signal handler should be done just the absolute necessary,<br>
  at least stdio/printf or malloc is forbidden - does this apply to sprintf too?<br></blockquote><div><br></div><div>Sure, the less the signal handler does the better, to the extent that it could just flip a flag and do the rest from the app's main flow (check for the flag after the main pselect() which atomically blocks/unblocks the signals the app is interested in). I'm not sure about sprintf either.</div><div><br></div><div>Vim is known not to handle correctly if two SIGWINCHes arrive quickly after each other. That is, something's not right with its main loop infrastructure. Knowing that, it's a bit less surprising that weird signal conditions can make it crash.</div><div><br></div><div><br></div><div>cheers,</div><div>egmont</div></div></div></div></div>