protonscr

Steam beta 1624329075 regression: hangs when using big picture mode without 32-bit libXi.so.6 on host

steamclosed Big Picture
ValveSoftware/steam-for-linux#7874 · opened 2021-06-23 by smcv · updated 2021-07-01 · 12 comments · github
Ssmcv 2021-06-23 github

Your system information

  • Steam client version (build number or date): 1624329075 (2021-06-21)
  • Distribution (e.g. Ubuntu): Debian 11, SteamOS 2, Ubuntu 20.04
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

Starting big picture mode on Debian 11, Ubuntu 20.04 and SteamOS 2 results in Steam becoming unresponsive, but only in the Steam beta.

I've tried on: NVIDIA GPU with Debian 11 and GNOME; AMD GPU with Debian 11 and KDE Plasma; AMD GPU (same system) with Ubuntu 20.04 and Ubuntu's GNOME variant; Intel GPU with SteamOS 2 and GNOME.

An Arch installation with XFCE and a Manjaro installation with KDE Plasma on the same Intel system seem to be unaffected, so this issue might be specific to Debian derivatives.

Symptoms: if I run steam -bigpicture, I get a full-screen black window. If I start Steam in desktop mode and then go to Big Picture mode, I get a full-screen window containing a snapshot of whatever was on-screen at the time I switched to Big Picture. In recent GNOME versions, the window is overlaid with this popup indicating that Steam is not responding to X11 messages:

                  "Steam" is not responding.
You may choose to wait a short while for it to continue or force
the application to quit entirely.
                  [ Force Quit ] [ Wait ]

I think this is probably a regression in 1624329075 (2021-06-21), but it's hard to be sure of that without having a way to revert to an earlier beta. The general-availability branch seems to be unaffected, although the general-availability branch does suffer from startup crashes related to libnm (#7813 and related issues).

Steps for reproducing this issue:

either

  1. Opt in to beta
  2. Run steam -bigpicture

or

  1. Opt in to beta
  2. Run Steam in normal (desktop) mode
  3. Click the Big Picture Mode icon in the titlebar

Workaround

either

apt install libxi6:i386 on the host system

or

Use the normal (desktop) mode instead of Big Picture

or

Switch back to the general-availability branch by deleting ~/.steam/root/package/beta

Kkisak-valve maintainer 2021-06-23 github
Ssmcv 2021-06-23 github

Running the same beta in the unofficial Steam Flatpak app instead of the host system, on the same Ubuntu 20.04 system, seems to be unaffected; so this is maybe something to do with the library stack rather than the desktop environment.

Ssmcv 2021-06-23 github

I think this might be a regression in the updated SDL built into Steam (cc @slouken). I tried forcing it to use the SDL from the Steam Runtime instead:

LD_PRELOAD=$HOME/.steam/root/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libSDL2-2.0.so.0 steam -bigpicture

and that seems to work fine. Obviously this is a hack and is not something that can be supported, but it might narrow down where the problem is.

Ssmcv 2021-06-23 github

Workaround: apt install libxi6:i386 on the host system, to use Debian's libXi.so.6 version 2:1.7.10-1 instead of the Steam Runtime's libXi.so.6 version 1.7.1.901-1ubuntu1~precise3.

Bisecting a local 32-bit build of libSDL2 indicates that this was probably triggered by the two SDL commits that closed libsdl-org/SDL#3978, X11: allow using touchscreen, while pointer is grabbed (see bug [#3978](/issue/ValveSoftware/steam-for-linux/3978)) and its followup X11: use x11sym loaded functions (see bug [#3978](/issue/ValveSoftware/steam-for-linux/3978)). From the backtrace it looks as though libXi is trying to take a lock, and perhaps deadlocking or similar:

#0  0xf7ed2559 in __kernel_vsyscall ()
#1  0xf7cebe72 in __lll_lock_wait () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xf7ce3b9a in pthread_mutex_lock () from /lib/i386-linux-gnu/libpthread.so.0
#3  0xf7ba4002 in _XLockDisplay (dpy=0x578e2c00) at ../../src/locking.c:466
#4  0xed14e0f7 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libXi.so.6
#5  0xeae09577 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
#6  0xeae08891 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
#7  0xeadc5e1e in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
#8  0xead45bdd in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
#9  0xead428ee in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#10](/issue/ValveSoftware/steam-for-linux/10) 0xeadfa887 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#11](/issue/ValveSoftware/steam-for-linux/11) 0xeadfb268 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#12](/issue/ValveSoftware/steam-for-linux/12) 0xeadfc631 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#13](/issue/ValveSoftware/steam-for-linux/13) 0xead403e8 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#14](/issue/ValveSoftware/steam-for-linux/14) 0xead37ae9 in SDL_PumpEvents () from /home/desktop/.steam/debian-installation/ubuntu12_32/libSDL2-2.0.so.0
[#15](/issue/ValveSoftware/steam-for-linux/15) 0xc76a1b61 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/panorama/panorama.so
[#16](/issue/ValveSoftware/steam-for-linux/16) 0xc764568c in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/panorama/panorama.so
[#17](/issue/ValveSoftware/steam-for-linux/17) 0xc762fa4f in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/panorama/panorama.so
[#18](/issue/ValveSoftware/steam-for-linux/18) 0xe3fbd1d9 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/steamui.so
[#19](/issue/ValveSoftware/steam-for-linux/19) 0xe3fbf6f2 in ?? () from /home/desktop/.steam/debian-installation/ubuntu12_32/steamui.so
[#20](/issue/ValveSoftware/steam-for-linux/20) 0x565c7430 in ?? ()
[#21](/issue/ValveSoftware/steam-for-linux/21) 0x565c83c3 in ?? ()
[#22](/issue/ValveSoftware/steam-for-linux/22) 0x565b192e in ?? ()
[#23](/issue/ValveSoftware/steam-for-linux/23) 0xf78abe46 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
[#24](/issue/ValveSoftware/steam-for-linux/24) 0x565b6229 in _start ()
Ssmcv 2021-06-23 github

The root cause might be that the Steam Runtime's libXi.so.6 doesn't have commit aa628936 "XIPassiveGrab: Fix completely broken locking in XIGrabTouchBegin", for example.

VVladislavuz 2021-06-24 github

Is it possible to roll back without reinstalling the system for SteamOS?

Ssmcv 2021-06-24 github

On a SteamOS system, if you have shell access, it should be possible to work around this by either doing apt-get install libxi6:i386 as root, or switching from the beta branch of Steam to the general-availability branch by deleting /home/steam/.steam/root/package/beta.

If you can boot from some other Linux distribution's "live image" USB stick or optical media, for example Debian or Ubuntu, then you should be able to mount the SteamOS home partition and delete /home/steam/.steam/root/package/beta that way.

Ttgurr 2021-06-25 github

Judging from the added comments in the meantime probably obvious, but I just want to add not only Debian derivatives are affected as I'm experiencing the same full-screen black window issue with big picture mode on Exherbo Linux.

Ssmcv 2021-06-25 github

Judging from the added comments in the meantime probably obvious, but I just want to add not only Debian derivatives are affected as I'm experiencing the same full-screen black window issue with big picture mode on Exherbo Linux.

Yes, I think it was just coincidence that none of the Debian derivatives I tried had a 32-bit libXi.so.6 installed (in a reasonably "default" desktop installation), but both the Arch derivatives did.

Ssmcv 2021-06-25 github

The root cause might be that the Steam Runtime's libXi.so.6 doesn't have commit aa628936 "XIPassiveGrab: Fix completely broken locking in XIGrabTouchBegin", for example.

I'm hoping to include a fixed version of libXi.so.6 in a future Steam Runtime beta.

Ssmcv 2021-07-01 github

This is fixed in Steam Runtime 0.20210630.0, which is included in Steam beta 1625098228.

The general availability (non-beta) branch was never affected (this issue is a regression), so I think the issue can be closed without waiting for this change to go to GA.

Rrio 2021-07-01 github

Can confirm this works on the beta release on ubuntu 20.04. Thanks!

Launch options

Upstream links

Error codes