[PATCH] weston: Don't exit just because tty is in gfx mode already

Pekka Paalanen ppaalanen at gmail.com
Thu Feb 6 13:06:56 UTC 2020


On Fri, 20 May 2016 11:30:53 +0300
Pekka Paalanen <ppaalanen at gmail.com> wrote:

> On Mon, 16 May 2016 15:25:52 -0700
> Florian Hänel <florian.haenel at heeen.de> wrote:
> 
> > From: =?UTF-8?q?Florian=20H=C3=A4nel?= <florian.haenel at lge.com>
> > 
> > If weston crashed (or during development) it can leave the tty
> > in graphics mode, which would prevent it from ever coming up again.
> > 
> > Another compositor running should be handled by upstart/systemd
> > and the tty in graphics mode does not prevent us from using it.
> >   
> 
> Hi,
> 
> can you explain more how you figure that to work?
> 
> A supported use case is to start weston with weston-launch, and without
> any systemd, upstart, logind, or any other manager running. What else
> would be preventing Weston from launching in case a display server was
> already running and active? (*)
> 
> Setting DRM master failure probably comes too late as the display
> servers have already started fighting, and then Weston attempts to undo
> the VT setup while the other display server is still running. How could
> that not end up in an even bigger mess?
> 
> How is it even possible to leave the VT in graphics mode? If
> weston crashed, then weston-launch or logind (as launcher-logind.c does
> not seem to touch the VT) will restore the VT.
> 
> (PS. never do 'killall -9 weston', that's a pretty guaranteed way to
> make your VT unusable as it kills both weston and weston-launch before
> either can restore. Logind might save you, though, I suppose.)
> 
> > A informational log message for debugging purposes should be enough.
> > ---
> >   src/launcher-util.c | 1 -
> >   1 file changed, 1 deletion(-)
> > 
> > diff --git a/src/launcher-util.c b/src/launcher-util.c
> > index e89710b..a98ff74 100644
> > --- a/src/launcher-util.c
> > +++ b/src/launcher-util.c
> > @@ -319,7 +319,6 @@ setup_tty(struct weston_launcher *launcher, int tty)
> >       if (kd_mode != KD_TEXT) {
> >           weston_log("%s is already in graphics mode, "
> >                  "is another display server running?\n", tty_device);
> > -        goto err_close;
> >       }
> > 
> >       ioctl(launcher->tty, VT_ACTIVATE, minor(buf.st_rdev));  
> 
> I do not think this patch applies, there is no such code in
> launcher-util.c anymore.
> 
> Looks like this hunk is now in launcher-direct.c. Ok, so you are
> running weston as root, without weston-launch. Is there any reason you
> cannot use weston-launch? Having a separate process to restore the VT
> is a good idea, even if you run as root.
> 
> OTOH, seeing that this only applies to the case of running weston
> directly as root and without any session manager service or
> weston-launch, maybe it's ok to drop the sanity check and let the user
> shoot his foot if he wants to?
> 
> The very least this patch needs to be rebased for master, and explain
> more why this change is needed and what the effects are, also if there
> really is another display server already running.
> 
> (*) Btw. now that I look at weston-launch.c, it is not doing the kd_mode
> check at all, is it? Makes me wonder if it should - was it just
> forgotten?

Hi,

this issue has been re-raised in
https://gitlab.freedesktop.org/wayland/weston/issues/361
so I'll clean up Patchwork for this patch.


Thanka,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20200206/8d253ae0/attachment.sig>


More information about the wayland-devel mailing list