protonscr

Steam `Bus Error` crash at the startup inside Docker container

steamclosed Web Component
ValveSoftware/steam-for-linux#9731 · opened 2023-06-26 by GamePlayer-8 · updated 2023-07-12 · 12 comments · github
GGamePlayer-8 2023-06-26 github

Your system information

  • Steam client version: Jun 21 2023 21:17:38
  • Distribution: Ubuntu 22.04.2 LTS Jammy
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs:
    steam-logs.tar.gz
  • GPU: AMD ATI Radeon R7 Graphics - Driver KAVERI 2.0 GB

Please describe your issue in as much detail as possible:

Heyo,

Everytime I'm trying to boot Steam Client (64-bit) inside docker container, I'm getting:

crash_20230626185011_25.dmp[6511]: Uploading dump (out-of-process)
/tmp/dumps/crash_20230626185011_25.dmp
/home/steam/.local/share/Steam/steam.sh: line 798:  6293 Bus error               &quot;$STEAMROOT/$STEAMEXEPATH&quot; &quot;$@&quot;</pre>

A full dump of it is available
here.

The container is being started with the script:

#!/bin/sh

docker run --cap-add=SYS_NICE --network=steam --rm -it -v /server/steam/home:/home/steam --device /dev/dri --userns=keep-id --ip 192.168.50.10 ubuntu/steam $*

I'm using a default ubuntu image from Docker Hub with additional packages:
wget libgl1-mesa-dri libgl1-mesa-glx mesa-utils libpulse0 libdbus-1-3 xdg-utils libnss3 libxkbcommon-x11-0 libgbm-dev curl steam dbus-x11 steam-libs-amd64 steam-libs-i386 language-pack-en pciutils udev at-spi2-core ibus & their dependencies + i386 / amd64 architectures.

A connection to the X11 is being established with a success through a variable DISPLAY=192.168.50.1:0.0 along with PULSE_SERVER=192.168.50.1 for the audio server.

Both pulseaudio & X11 server accepts connections from everywhere.

Steam Client inside a container starts with dbus-launch steam under a steam user.

Steps for reproducing this issue:

  1. Install podman or docker.
  2. Create steam network with subnet 192.168.50.0/24. Make sure that this subnet has connection to the internet.
  3. Setup pulseaudio & start pulseaudio.
  4. Setup X11 & start on listen port 6000 (default port) (check X -listen tcp argument options).
  5. Run xhost + to allow anyone to connect to the X11.
  6. Run pactl load-module module-native-protocol-tcp auth-ip-acl=0.0.0.0/0 bind=0.0.0.0 auth-anonymous=1 to make pulseaudio listen on port 4713.
  7. Fetch Dockerfile file & save it as Dockerfile.
  8. Enter to the path, where that Dockerfile is located.
  9. Run docker build -t ubuntu/steam . (or podman build -t ubuntu/steam .).
  10. Download the runner & run it through sh <shell filename>.sh.
Kkisak-valve maintainer 2023-06-26 github

For reference, the attached minidump is a SIGBUS in libc.so.6 coming from chromehtml.so.

GGamePlayer-8 2023-06-26 github

What package is providing that LD library?

Kkisak-valve maintainer 2023-06-26 github

The expectation is that it's a component of the Steam client itself (~/.local/share/Steam/ubuntu12_32/chromehtml.so).

GGamePlayer-8 2023-06-27 github

means that I need to set LD_LIBRARY_PATH in a way to contain that path?

I.e.

export LD_LIBRARY_PATH=/home/steam/.local/share/Steam/ubuntu12_32:$LD_LIBRARY_PATH
GGamePlayer-8 2023-06-27 github

update: exceding the LD variable doesn't helped.

Mmentha 2023-07-12 github

Try add --shm-size=1g to docker run. The default (64m) might be too small for steam.

GGamePlayer-8 2023-07-12 github

that solved the issue, thank u @mentha !

GGamePlayer-8 2023-07-12 github

image

There's still an issue with main Steam store window which is just transparent while the rest (Friends List / Announcements etc) is working correctly.

Here's the log of what's happening:

steam.sh[13]: Running Steam on ubuntu 22.04 64-bit
steam.sh[13]: STEAM_RUNTIME is enabled automatically
setup.sh[144]: Steam runtime environment up-to-date!
steam.sh[13]: Steam client's requirements are satisfied
[2023-07-12 17:16:06] Startup - updater built Jul 10 2023 23:58:24
[2023-07-12 17:16:06] Startup - Steam Client launched with: '/home/steam/.local/share/Steam/ubuntu12_32/steam'
/tmp/dumps insufficient permissions - delete and recreate
Unable to delete /tmp/dumps. Continuing anyway.
07/12 17:16:06 Init: Installing breakpad exception handler for appid(steam)/version(1689034492)/tid(220)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-07-12 17:16:07] Loading cached metrics from disk (/home/steam/.local/share/Steam/package/steam_client_metrics.bin)
[2023-07-12 17:16:07] Using the following download hosts for Public, Realm steamglobal
[2023-07-12 17:16:07] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-07-12 17:16:07] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-07-12 17:16:07] 3. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-07-12 17:16:07] Checking for update on startup
[2023-07-12 17:16:07] Checking for available updates...
[2023-07-12 17:16:07] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2023-07-12 17:16:07] Manifest download: send request
[2023-07-12 17:16:07] Manifest download: waiting for download to finish
[2023-07-12 17:16:07] Manifest download: finished
[2023-07-12 17:16:07] Download skipped: /steam_client_ubuntu12 version 1689034492, installed version 1689034492, existing pending version 0
[2023-07-12 17:16:07] Nothing to do
[2023-07-12 17:16:07] Verifying installation...
[2023-07-12 17:16:07] Performing checksum verification of executable files
[2023-07-12 17:16:08] Verification complete
Loaded SDL version 3.0.0-1782-g214d5daa3
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf63a29c0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf63a11f0
GetWin32Stats: display was not open yet, good
GetWin32Stats: display was not open yet, good
steamwebhelper.sh[291]: Runtime for steamwebhelper: defaulting to /home/steam/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[291]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 24 milliseconds to initialize
Warning: failed to set thread priority: set failed for 8: -1: setpriority() failed
Warning: failed to set thread priority: set failed for priority 8
Warning: support for elevated priorities is most likely unavailable, suppressing future warnings
Warning: failed to set thread priority: set failed for 8: -1: setpriority() failed
PulseAudio connect failed (used only for Mic Volume Control) with error: Access denied
PulseAudio context init failed
Warning: failed to set thread priority: set failed for 8: -1: setpriority() failed
Failed to init SteamVR because it isn't installed
local (potentially out of sync) copy of roaming config loaded - 165 bytes.
roaming config store loaded successfully - 165 bytes.
migrating temporary roaming config store
BRefreshApplicationsInLibrary 1: 1ms
System startup time: 7.17 seconds
BuildCompleteAppOverviewChange: 154 apps
RegisterForAppOverview 1: 13ms
RegisterForAppOverview 2: 14ms
ExecCommandLine: "'/home/steam/.local/share/Steam/ubuntu12_32/steam'"
Kkisak-valve maintainer 2023-07-12 github

Hello @GamePlayer-8, that looks like https://github.com/ValveSoftware/steam-for-linux/issues/9752. If you run the equivalent of glxinfo -B in an environment similar to the docker container you're using with Steam, does it have access to your GPU or fallback to llvmpipe?

GGamePlayer-8 2023-07-12 github
name of display: 192.168.50.1:0.0
display: 192.168.50.1:0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa/X.org (0xffffffff)
    Device: llvmpipe (LLVM 15.0.7, 256 bits) (0xffffffff)
    Version: 22.2.5
    Accelerated: no
    Video memory: 21956MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.5
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 15.0.7, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 22.2.5-0ubuntu0.1~22.04.3
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 22.2.5-0ubuntu0.1~22.04.3
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.2.5-0ubuntu0.1~22.04.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Kkisak-valve maintainer 2023-07-12 github

That's a pretty clear indicator your follow up issue is #9752.

GGamePlayer-8 2023-07-12 github

Alright. Will close that issue then.