Bug 1786649
| Summary: | Fails to start because of non-UTF-8 locale after interactive PXE installation | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | advax |
| Component: | gnome-terminal | Assignee: | Debarshi Ray <debarshir> |
| Status: | CLOSED DUPLICATE | QA Contact: | Desktop QE <desktop-qa-list> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.0 | CC: | rstrode |
| Target Milestone: | rc | Flags: | pm-rhel:
mirror+
|
| Target Release: | 8.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-09-11 13:32:14 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
advax
2019-12-26 19:08:59 UTC
First of all, note that /usr/bin/gnome-terminal isn't the main binary providing the GNOME Terminal application and it's windows. It only sends a request over D-Bus to /usr/libexec/gnome-terminal-server, the "server" to open a new window or tab. Also, see: https://wiki.gnome.org/Apps/Terminal/FAQ#Terminal_fails_to_start Do you see anything in: $ journalctl _EXE=/usr/libexec/gnome-terminal-server What does your /etc/locale.conf look like? > fails with > # Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: > Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached The fact that it's timing out makes me thing that something is busted. How does this look like: $ ls -l /usr/libexec/gnome-terminal-server > The EL8 binary seems to work if the EL7 package is installed. Umm... what do you mean? You had the gnome-terminal RPM from both EL7 and EL8 installed? (In reply to Debarshi Ray from comment #1) > First of all, note that /usr/bin/gnome-terminal isn't the main binary > providing the GNOME Terminal application and it's windows. It only sends a > request over D-Bus to /usr/libexec/gnome-terminal-server, the "server" to > open a new window or tab. > > Also, see: > https://wiki.gnome.org/Apps/Terminal/FAQ#Terminal_fails_to_start > > Do you see anything in: > $ journalctl _EXE=/usr/libexec/gnome-terminal-server > Jun 11 19:40:29 localhost gnome-terminal-server[6952]: Display does not support owner-change; copy/paste will be broken! Jun 12 10:39:24 localhost gnome-terminal-server[27033]: Non UTF-8 locale (ANSI_X3.4-1968) is not supported! ~ > What does your /etc/locale.conf look like? LANG=en_GB.UTF-8 LC_NUMERIC=en_GB.UTF-8 LC_TIME=en_GB.UTF-8 LC_MONETARY=en_GB.UTF-8 LC_PAPER=en_GB.UTF-8 LC_MEASUREMENT=en_GB.UTF-8 > > > fails with > > # Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: > > Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached > > The fact that it's timing out makes me thing that something is busted. > > How does this look like: > $ ls -l /usr/libexec/gnome-terminal-server With gnome-terminal-3.28.2-3.el8.x86_64 installed, I have -rwxr-xr-x. 1 root root 415392 May 27 2019 /usr/libexec/gnome-terminal-server > > The EL8 binary seems to work if the EL7 package is installed. > > Umm... what do you mean? You had the gnome-terminal RPM from both EL7 and > EL8 installed? With the EL7 RPM installed, a copy of the EL8 gnome-terminal binary works, presumably just sending a DBUS message to the server -------- I've found the issue. In the "region and language" settings for my account, the language was set to "unspecified". I don't recall changing it. This is on a new laptop that I set up with CentOS8 for the first time. I have a US keyboard but set the language preference to United Kingdom to get correct spelling suggestions. If I change the language to "United Kingdom (English)" and restart the desktop session, the EL8 gnome-terminal works. The environment variable LANG changes from C to en_GB.UTF-8, matching locale.conf At some point on one machine I had to set LANG=C to get something else to work, but not on this laptop. I can not find "LANG" or "LOCALE" in my .bash_* files. As I recall, I hit the gnome-terminal bug early on trying to get the system working, before I had got around to customizing anything much anyway. I'm not particularly inclined to try re-installing my entire system just to try and reproduce the bug. It's possible that my initial language choice during install may have allowed the user account lanaguage to be left unset. (In reply to advax from comment #2) > (In reply to Debarshi Ray from comment #1) > > Do you see anything in: > > $ journalctl _EXE=/usr/libexec/gnome-terminal-server > > > > Jun 11 19:40:29 localhost gnome-terminal-server[6952]: Display does not > support owner-change; copy/paste will be broken! > Jun 12 10:39:24 localhost gnome-terminal-server[27033]: Non UTF-8 locale > (ANSI_X3.4-1968) is not supported! Bingo: Non UTF-8 locale (ANSI_X3.4-1968) is not supported! > > > The EL8 binary seems to work if the EL7 package is installed. > > > > Umm... what do you mean? You had the gnome-terminal RPM from both EL7 and > > EL8 installed? > > With the EL7 RPM installed, a copy of the EL8 gnome-terminal binary works, > presumably just sending a DBUS message to the server Yeah. The /usr/bin/gnome-terminal binary does very little. It's the /usr/libexec/gnome-terminal-server binary that's refusing to start. On RHEL 7, you could still start gnome-terminal with a non-UTF-8 locale, but not anymore on RHEL 8. That's why you are observing the above behaviour. > I've found the issue. In the "region and language" settings for my account, > the language was set to "unspecified". I don't recall changing it. This is > on a new laptop that I set up with CentOS8 for the first time. I have a US > keyboard but set the language preference to United Kingdom to get correct > spelling suggestions. If I change the language to "United Kingdom (English)" > and restart the desktop session, the EL8 gnome-terminal works. The > environment variable LANG changes from C to en_GB.UTF-8, matching locale.conf Yes, that's it. Somehow your user had a non-UTF-8 locale set, which matches with the entry in your systemd journal. The interesting part is that this (eg., LANG=C) still happened even though /etc/locale.conf (which has the global system-wide settings) has UTF-8 everywhere. Somehow the display manager (was it GDM?) that started your graphical session managed to confuse itself. Anyway, we at least now know why GNOME Terminal wasn't starting. The remaining question might be about how your session managed to pick up a non-UTF-8 locale. are you using GDM (graphical login screen) or startx to start your session? So I can replicate the behavior you're seeing by deleting /etc/locale.conf is it possible /etc/locale.conf may have gotten deleted in your situation? did you use a kickstart file to install? if so what "lang" did you specify in the kickstart file? (In reply to Ray Strode [halfline] from comment #4) > are you using GDM (graphical login screen) or startx to start your session? I'm using GDM - whatever package installed by default with CentOS8. The following are running: /usr/sbin/gdm /usr/libexec/gdm-wayland-session gnome-session --autostart /usr/share/gdm/greeter/autostart (In reply to Ray Strode [halfline] from comment #6) > did you use a kickstart file to install? if so what "lang" did you specify > in the kickstart file? I did not use a kickstart file on the command line. I used an interactive install over PXE. That would have used /usr/share/anaconda/interactive-defaults.ks anaconda.log shows the system setting locale to: en_US.UTF-8 during install When I created my personal account I would have set the language to en_GB somehow, then logged in as that user and tried to get a shell window, which did not work. I then managed to run xterm from the application list. I don't remember the exact sequence and can't find my notes. I did not try creating a different user account or logging in graphically as root or changing runlevel and using startx. I assumed a problem with gnome-terminal, especially since the earlier version worked. (In reply to Ray Strode [halfline] from comment #5) > So I can replicate the behavior you're seeing by deleting /etc/locale.conf > > is it possible /etc/locale.conf may have gotten deleted in your situation? Hmm. I have /root/.bash_history back to the point at which I had logged in to set up my user environment, so the first commands are me changing the UID of the user account to the one I normally use. At some point I saved a copy of /etc/locale.conf and then edited it, when I was trying to get gnome-terminal to work The saved copy has LANG=C LC_NUMERIC=en_GB.UTF-8 The current copy has LANG=en_GB.UTF-8 LC_NUMERIC=en_GB.UTF-8 There is no evidence of my editing locale.conf prior to that. I'm not sure what process created it. So there's an excellent chance that LANG was set to C when I created the user account, which may well have set up the desktop language as undefined. can you post /root/anaconda-ks.cfg ? (In reply to Ray Strode [halfline] from comment #10) > can you post /root/anaconda-ks.cfg ? That's not on my system. I don't recall deleting it or otherwise cleaning /root I am closing this as NOTABUG because ultimately gnome-terminal works as intended. *** This bug has been marked as a duplicate of bug 1699369 *** |