Steam crashes unless LANG=en_US.utf8 #1420

Closed
heftig opened this Issue Feb 8, 2013 · 16 comments

Comments

Projects
None yet
9 participants

heftig commented Feb 8, 2013

Steam crashes unless run with LANG=en_US.utf8. Log follows:

Running Steam on arch rolling 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
unlinked 0 orphaned pipes
removing stale semaphore last operated on by process 10475 with name 0eBlobRegistryMutex_E4E7A313AFC0ADE4727A2610FD2EA665
removing stale semaphore last operated on by process 10475 with name 0eBlobRegistrySignal_E4E7A313AFC0ADE4727A2610FD2EA665
removing stale semaphore last operated on by process 10475 with name 0emSteamEngineInstance
removing stale semaphore last operated on by process 10475 with name 0eSteamEngineLock
surface_linux.cpp (686) : Assertion Failed: XOpenIM() failed, LANG = en_DE.utf8
Assert( Assertion Failed: XOpenIM() failed, LANG = en_DE.utf8 ):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/vgui2/src/surface_linux.cpp:686

Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Uploading dump (in-process) [proxy '']
/tmp/dumps/assert_20130208180745_1.dmp
success = yes
response: CrashID=bp-2737d1e0-899e-48da-a091-019ec2130208

(steam:12725): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
/usr/share/themes/Adwaita/gtk-2.0/gtkrc:989: error: unexpected identifier direction', expected character}'
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
[0208/180820:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Installing breakpad exception handler for appid(steam)/version(1360282734_client)
Steam: An X Error occurred
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 18 (X_ChangeProperty)
Value in failed request: 0x0
Serial number of failed request: 90
xerror_handler: X failed, continuing
Uploading dump (in-process) [proxy '']
/tmp/dumps/crash_20130208180821_2.dmp
success = yes
response: CrashID=bp-8d20fff3-1283-4c15-8540-4ae692130208
/home/jan/.local/share/Steam/steam.sh: line 561: 12725 Segmentation fault (core dumped) $STEAM_DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"

vorot93 commented Feb 8, 2013

Very strange. What is your normal LANG variable?

heftig commented Feb 8, 2013

As noted in the log, LANG=en_DE.utf8

vorot93 commented Feb 8, 2013

Pardon me, but is there a glibc locale named en_DE?

heftig commented Feb 8, 2013

Contents of /usr/share/i18n/locales/en_DE: https://gist.github.com/heftig/4740516

scottlu commented Feb 8, 2013

Can repro with LANG=en_NG.utf8 steam, which is installed on my system, and some other en_ variants (and w/STEAM_RUNTIME=0)

scottlu was assigned Feb 8, 2013

scottlu commented Feb 10, 2013

Researching this further, not all locales supported by the host system are also supported by X. A quick way to check is to do locale -a, then find which of those aren't listed in /usr/share/X11/locale. On my system, locale -a lists en_NG.UTF-8, but it isn't in /usr/share/X11/locale.

Another way to verify it is with this little program:

#include <stdio.h>
#include <X11/Xlib.h>
#include <locale.h>

int main(int argc, char **argv)
{
setlocale(LC_CTYPE, "en_NG.UTF-8");
if (!XSupportsLocale())
printf("locale not supported.\n");
return 0;
}

Could you please try one or both of these checks for en_DE.UTF-8 on your system?

We've made it so Steam won't crash in the case where X doesn't support the locale, however I may change it to fall back on en_US.UTF-8 if the indicated locale isn't supported by X.

Thanks.

scottlu commented Feb 10, 2013

Those includes were for stdio.h, X11/Xlib.h, and locale.h. Somehow github filtered those out.

scottlu commented Feb 10, 2013

Btw the contents of my /usr/share/X11/locale directory are a close match to what's in the "x11-data" package that is installed on my Ubuntu system.

heftig commented Feb 11, 2013

en_DE.utf8 (or en_DE.UTF-8) is not supported by X11.

scottlu commented Feb 11, 2013

Thank you for checking this. I'm closing this bug.

scottlu closed this Feb 11, 2013

Member

johndrinkwater commented Feb 11, 2013

I don’t get this crash with en_GB, and yet it too is unsupported according to the locale test. :/

CMaiku commented Jul 15, 2013

This still affects me, although with slightly different output. I've tried both the normal and beta releases. I'm on Debian Sid amd64 with LANG=eo.utf8 and I get the following output:

<Output trimmed until here>
Installing breakpad exception handler for appid(steam)/version(1373418487_client)
Installing breakpad exception handler for appid(steam)/version(1373418487_client)
Installing breakpad exception handler for appid(steam)/version(1373418487_client)
Installing breakpad exception handler for appid(steam)/version(1373418487_client)
Steam: An X Error occurred
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  18 (X_ChangeProperty)
Value in failed request:  0x0
Serial number of failed request:  105

slacka commented Jan 27, 2014

My system has default $ locale
LANG=en_HK.UTF-8

$ lsb_release -rcd ; uname -r
Description: Linux Mint 16 Petra
Release: 16
Codename: petra
3.11.0-12-generic

$ steam
...
Steam: An X Error occurred
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 18 (X_ChangeProperty)
Value in failed request: 0x0
Serial number of failed request: 151
xerror_handler: X failed, continuing
Installing breakpad exception handler for appid(steam)/version(1389129507_client)
...
steam fails to load

$ LANG=en_US.UTF-8 steam

steam loads normally

Thanks for investigation, I had same issue and it is now resolved following the suggestion (LC_ALL=C steam) somewhere and it is referenced back this thread.

But what is the action item on permanent fix into the steam client package?
Should such line (LC_ALL=C) be added into the linux client package (deb) - the script steam.sh?

This issue 1420 was closed in Feb 2013, I started having this issue in Oct 2013 after upgrading to Ubuntu 13.10, I tried re-install with latest deb package (and different nvidia driver versions) but didn't help. Also seeing some other people having same issue even after fresh install of Ubuntu. It was not working for me until a few days ago coming to this thread.

If this is permanently fixed in the client package, can help many other people who are not using en_US locale, especially to those who are not technical enough knowing what locale or X11 is.

Thanks.

LC_ALL=C steam helped to launch it. After 10 seconds or so it crashed with the same segmentation fault at line 713.

I stopped playing on steam about 3 months ago because of this exact issue in hope that something will be fixed soon. Sometimes I feel like rather playing with some code. At that rate, my love to gaming is going to cease =)

scottlu was unassigned by rosmanov Jul 30, 2016

q3452 commented Nov 15, 2016

I experienced this error on a clean install of Linux Mint 18 which is more or less Ubuntu 16.04. I documented my logs etc in @ #4665 though the OP there may or may not have had the same issue (it appears the same at first glance though).

It was fixed by:
LANG=en_US.utf8 steam

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment