Subject: Re: bug#56967: 29.0.50; Frequent crashes under Wayland

From: Bjoern Bidar <[email-masked]>
Date: Sun, 07 Aug 2022 18:14:50 +0300

Am Sonntag, 7. August 2022, 18:07:29 EEST schrieb Eli Zaretskii:
> > Cc: [email-masked]
> > Date: Sun, 07 Aug 2022 17:51:25 +0300
> > From:  Bjoern Bidar via "Bug reports for GNU Emacs,
> > 
> >  the Swiss army knife of text editors" <[email-masked]>
> > 
> > I on the #gtk channel on what do and I got from ebassi that it is ok to
> > just call _exit.
> > He says it might be the client behaving wrong:
> > <ebassi> Thaodan: It could happen because the client made an invalid
> > request— Wayland mandates that the display server closes the connection
> > in that case
> > 
> > I don't really understand why calling _exit is an acceptable solution
> > anyone that has to safe some state to the disk is lost.
> 
> > I attach the whole conversation to not take anything out of context here:
> Those guys evidently think that an application without display cannot
> do anything.  They forget that even if display connection is lost, and
> even if this is due to some fault of the application, that application
> could still shut down gracefully instead of losing all of the user's
> work, if only GTK wouldn't call _exit "because it's acceptable", or
> "because emacs is a 1980s teletype app", or because whatever other
> ridiculous justifications these guys come up for such misconduct.

I don't know what to say, I'm befuddled too.
The audacity to act such a way as a library.

> > <ebassi> I already told you
> > <ebassi> If the display connection is closed by the server, then there's
> > no
> > safe way to store the data
> 
> Really?  Since when does saving data to disk require a display
> connection??

I don't know either, this is what came after:

<ebassi> Because the toolkit has no idea what's left of the system's integrity
<two[m]> how could it start before the compositor?
<Thaodan> the display connection lost doesn't mean the whole system is broken 
but just the compositor. But I assume that the toolkit takes precedence over 
the app it self.
<ebassi> Thaodan: You literally **cannot** know that
<Thaodan> two[m]: background services such as systemd --user services
<two[m]> wouldn't it fail because no $WAYLAND_DISPLAY?
*** First activity: MichaelNazzarenoTrimarchi[m] joined 53 minutes 11 seconds 
ago.
<MichaelNazzarenoTrimarchi[m]> Well the app can really do anything before 
starting the graphic subsystem. It can even wait that Wayland service is 
started before do any specific toolkit initialization 
<Thaodan> MichaelNazzarenoTrimarchi[m]: Exactly, apps such as editors might 
reload their last session which can take quite some time 
<Thaodan> There it makes sense to start as early as possible.
<Thaodan> How can I find out if GTK did an invalid request to the compositor?
<MichaelNazzarenoTrimarchi[m]> That is simple 
<MichaelNazzarenoTrimarchi[m]> You can activate Wayland tracing of message
<MichaelNazzarenoTrimarchi[m]> You can see then message sent to compositor
<MichaelNazzarenoTrimarchi[m]> It's rather difficult that is an application 
bug but could be a client side Wayland part bug