Terminal-emulator "terminator" Segfault on Crostini |
||||||
Issue descriptionGoogle Chrome 67.0.3383.0 (Official Build) dev (64-bit) Revision b6c093c42e2a0eb8c2d8c9dc76171b59dc65568d-refs/heads/master@{#546671} Platform 10539.0.0 (Official Build) dev-channel eve Firmware Version Google_Eve.9584.107.0 OS: Chrome OS Repro steps: 1. Start crostini linux container following instructions in go/crostini-instructions 2. Install 'terminator' by doing "sudo apt-get install terminator" 3. Run 'terminator' Expected: The multi-tab terminal emulator 'terminator' should run in a GUI window Actual: "Segmentation fault" is printed on console.
,
Apr 23 2018
,
May 10 2018
,
May 23 2018
,
May 29 2018
I took a look into this and the crash is happening in /usr/share/terminator/terminatorlib/window.py when it executes Keybinder.bind in this block of code:
# Attempt to grab a global hotkey for hiding the window.
# If we fail, we'll never hide the window, iconifying instead.
if self.config['keybindings']['hide_window'] != None:
if display_manager() == 'X11':
try:
self.hidebound = Keybinder.bind(
self.config['keybindings']['hide_window'].replace('<Shift>',''),
self.on_hide_window)
except (KeyError, NameError):
pass
if not self.hidebound:
err('Unable to bind hide_window key, another instance/window has it.')
self.hidefunc = self.iconify
else:
self.hidefunc = self.hide
In C, the stacktrace ends up failing at the top here:
XkbUseExtension
XkbGetUpdatedMap
XkbGetMap
So this is some kind of keybinding issue.
Ahhh...here's a terminator bug for something like this:
https://bugs.launchpad.net/terminator/+bug/1647896
Which says they detect if it's X11 (like you see in the code above) and only do the keybinding that way because it segfaults with Wayland. :p So I'm guessing since we're pretending to be X11 with it...but truly are Wayland...we're hitting this problem.
Dave, I'm assuming this one would be in your area to fix then?
,
May 29 2018
It seems like they expect WAYLAND_DISPLAY to be set: https://bazaar.launchpad.net/~gnome-terminator/terminator/gtk3/view/head:/terminatorlib/util.py#L342 That seems incorrect as there's no requirement for it to be set on a wayland enabled desktop environment. Applications are expected to check for wayland-0 in XDG_RUNTIME_DIR even if this is not set. This will likely work: $ WAYLAND_DISPLAY=wayland-0 terminator I guess it doesn't hurt to set WAYLAND_DISPLAY for crostini. We'll need to add something to /etc/profile.d/sommelier.sh for this. Or wherever we plan to have these variables set in the future.
,
May 29 2018
Just tried $ WAYLAND_DISPLAY=wayland-0 terminator And it works now! Thank you!
,
May 29 2018
If I edit /etc/profile.d/sommelier.sh and have it export that var, then it works when I run it from the command line...but not when I run it from the launcher. Would I also need to set this for the garcon environment?
,
May 29 2018
Yes, we need to set it there too.
,
May 29 2018
OK, I'll take care of those.
,
May 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/2b9228bb88b1f925a7e41afe8e153277498134a0 commit 2b9228bb88b1f925a7e41afe8e153277498134a0 Author: Jeffrey Kardatzke <jkardatzke@google.com> Date: Wed May 30 22:32:10 2018 Add WAYLAND_DISPLAY env var for sommelier BUG= chromium:828703 TEST=Launching terminator in terminal/launcher works Change-Id: Ied28b2ac7ec44bab3f1392e4c2f10181f3111993 Reviewed-on: https://chromium-review.googlesource.com/1077608 Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com> Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com> Tested-by: Jeffrey Kardatzke <jkardatzke@google.com> [modify] https://crrev.com/2b9228bb88b1f925a7e41afe8e153277498134a0/cros-sommelier/sommelier.sh [modify] https://crrev.com/2b9228bb88b1f925a7e41afe8e153277498134a0/cros-sommelier/BUILD [modify] https://crrev.com/2b9228bb88b1f925a7e41afe8e153277498134a0/cros-sommelier/sommelier@.service
,
May 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/f9f959d5dc95008113f8e1ad1f3dfed7c3d2c576 commit f9f959d5dc95008113f8e1ad1f3dfed7c3d2c576 Author: Jeffrey Kardatzke <jkardatzke@google.com> Date: Wed May 30 22:47:04 2018 Also import SOMMELIER_VERSION Bug: chromium:828703 Change-Id: I6887f6e4161afeb5bfefbb4bbfa131944f3e52f9 Reviewed-on: https://chromium-review.googlesource.com/1080168 Tested-by: Jeffrey Kardatzke <jkardatzke@google.com> Reviewed-by: David Reveman <reveman@chromium.org> Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com> [modify] https://crrev.com/f9f959d5dc95008113f8e1ad1f3dfed7c3d2c576/cros-sommelier/BUILD [modify] https://crrev.com/f9f959d5dc95008113f8e1ad1f3dfed7c3d2c576/cros-sommelier/sommelier@.service
,
May 31 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/85c0890041d1bc575cff42076c6a1329bebee098 commit 85c0890041d1bc575cff42076c6a1329bebee098 Author: David Reveman <reveman@chromium.org> Date: Thu May 31 15:08:50 2018 Set DISPLAY, XCURSOR_SIZE and WAYLAND_DISPLAY if not set. BUG= chromium:828703 TEST=They are set after launching terminal Change-Id: I5d2f7bd6201afb5e93e4b964c58d3f72c2ac3dd0 Reviewed-on: https://chromium-review.googlesource.com/1079843 Tested-by: David Reveman <reveman@chromium.org> Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com> Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com> [modify] https://crrev.com/85c0890041d1bc575cff42076c6a1329bebee098/cros-sommelier/sommelier.sh [modify] https://crrev.com/85c0890041d1bc575cff42076c6a1329bebee098/cros-sommelier/BUILD
,
May 31 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/11e9332f144597fbd153c5c10f06d35343fd95c3 commit 11e9332f144597fbd153c5c10f06d35343fd95c3 Author: David Reveman <reveman@chromium.org> Date: Thu May 31 19:26:09 2018 vm_tools: sommelier: spawn child process before master is ready This makes master instances spawn and wait for child process to exit before notifying systemd that it's ready to accept connections. BUG= chromium:828703 TEST=sommelier --master --socket=wayland-1 /bin/sh -c "echo \$WAYLAND_DISPLAY" Change-Id: Ie948c41352657dbe34eb3bc4c5f7cb07ed140c57 Reviewed-on: https://chromium-review.googlesource.com/1079758 Commit-Ready: David Reveman <reveman@chromium.org> Tested-by: David Reveman <reveman@chromium.org> Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com> [modify] https://crrev.com/11e9332f144597fbd153c5c10f06d35343fd95c3/vm_tools/sommelier/sommelier.c
,
May 31 2018
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by tbuck...@chromium.org
, Apr 23 2018Status: Assigned (was: Untriaged)