https://bugs.freedesktop.org/show_bug.cgi?id=87322
Bug ID: 87322
Summary: Weston confuses SIGUSR1 signals from Xwayland and VT
switch
Product: Wayland
Version: unspecified
Hardware: All
OS: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: weston
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Javier complained the other day, that Weston freezes on starting any X11 app
via Xwayland. I can't recall the details. The Weston log was very interesting,
though: it showed that as soon as XWM initializes, Weston thinks it's leaving
the VT.
Looking at the code, I'm surprised it hasn't blown up for anyone else yet.
Weston routinely uses SIGUSR1 for VT-switching signalling. Weston-launch
watches SIGUSR1, that is not a problem. However, when Weston is started without
weston-launch, Weston itself may be watching for SIGUSR1:
- src/launcher-util.c (Weston as root, without logind?)
- src/logind-util.c (non-root with logind support?)
Those two seem mutually exclusive, but there is a third one:
- xwayland/launcher.c (for Xwayland server start-up notification)
I guess what happens in Javier's case, is that when Xwayland server starts, it
sends SIGUSR1 to Weston, which then runs all SIGUSR1 handlers in some arbitary
order: VT switch and XWM init. This leads to Weston thinking it's no longer
current, likely refusing all input, and you have a frozen VT.
Seems like something should be moved to another signal number.
(And why does logind-util.c call signalfd() manually instead of
wl_event_loop_add_signal()?)
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
wayland-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-bugs