flathub / com.valvesoftware.Steam

https://flathub.org/apps/details/com.valvesoftware.Steam
337 stars 69 forks source link

Dota 2 tries to run under Proton instead of natively and fails #862

Closed arielnmz closed 2 years ago

arielnmz commented 2 years ago

Game information

Dota 2

Distribution name and version where applicable

Fedora release 34 (Thirty Four)

Flatpak info

Flatpak 1.10.5

nvidia-495-46 default host

Problem description

Tried to run Dota2 today and a modal window warned about having to use a compatibility tool to run this game (?) went back to the options and no compatibility tool was selected. This game is supposed to have a native linux version.

I figured I might need an update, so I updated my flatpak packages (including steam) and it now complains about not being able to run in Flatpak 1.10:

pressure-vessel-wrap[465]: E: pressure-vessel (SteamLinuxRuntime) cannot be run in Flatpak 1.10.x or older. For Proton 5.13+, unofficial community builds that do not use pressure-vessel are available.

I think the main two questions are:

  1. Why did it suddenly try to use a compat tool (proton?) to run this game?
  2. Why is it not running the native version of the game?

I'm not trying to run this game under proton, I don't need proton.

Does this issue reproduce with native Steam ~Have not tested~ Just tried using the native steam client (installed via dnf) and Dota runs fine. It did ask about using a compat tool too, though

arielnmz commented 2 years ago

I was wrong, it's trying to run Dota through Steam Play (not proton)

image

But still, up until yesterday I didn't need any compat tool to run this game

nanonyme commented 2 years ago

I suggest updating to to Fedora 35 with sufficiently new flatpak. More and more games games are expected to end up needing preasure-vessel.

nanonyme commented 2 years ago

New major releases of Steam runtime are going to require preasure-vessel for what I've understood.

arielnmz commented 2 years ago

Dang it. Sticking to the native client for now then.

stacyharper commented 2 years ago

I'm not sure why this issue has been closed. Dota 2 still doesnt start on flatpak cause of the migration to the Steam Linux Runtime container. This leave distributions without native steam recipes as Alpine unable to start the game.

Looking at the whole context, it looks like flatpak now offers ways to use this kind of container environment. What is the state of the Steam Linux Runtime integration in flatpak ? What is the state of Dota 2 on other distributions (with or without flatpak) ?

nanonyme commented 2 years ago

Container Steam Runtime now has been already for some time been working out of the box assuming you have flatpak using bubblewrap with user namespaces and new enough stack.

stacyharper commented 2 years ago

Okay so something isnt working in an Alpine environment. Dota 2 still dont run and I just tried Portal 2 with Steam Linux Runtime and I have a similar issue.

It looks like my system meet thoses checks : https://github.com/flatpak/flatpak/wiki/User-namespace-requirements#unprivileged-bubblewrap

What should I check ?

stacyharper commented 2 years ago

Okay the issue may be that we dont have user namespaces on Alpine Linux kernels. I'll try to build a kernel with.

stacyharper commented 2 years ago

Edito: we have user namespace with the Alpine Linux Kernels. What we dont have, and will never have is the kernel patch that allow unpriviliged users to use them : https://github.com/archlinux/svntogit-packages/blob/packages/linux-lts/trunk/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch

What are other ways to make games using the Steam Linux Runtime with un unpatched kernel ?

stacyharper commented 2 years ago

I tried to use the suid way :

--share-pids not supported by host portal

This feature requires Flatpak to be using a bubblewrap (bwrap) executable
that is not setuid root.

The non-setuid version of bubblewrap requires a kernel that allows
unprivileged users to create new user namespaces.

For more details please see:
https://github.com/flatpak/flatpak/wiki/User-namespace-requirements

It looks like a dead end

stacyharper commented 2 years ago

I've just build a patched kernel with this kernel/unprivileged_userns_clone argument. I now have /proc/sys/kernel/unprivileged_userns_clone = 1 but the issue remains. I got no other clues to chase :(

My logs are here, if someone got a better idea.

GameAction [AppID 570, ActionID 3] : LaunchApp changed task to UpdatingAppInfo with ""
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to SynchronizingControllerConfig with ""
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 570, ActionID 3] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 570, ActionID 3] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama\0
Game process added : AppID 570 "/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama", ProcID 880, IP 0.0.0.0:0
chdir /home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 884 != 881, skipping destruction (fork without exec?)
GameAction [AppID 570, ActionID 3] : LaunchApp changed task to Completed with ""
error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(objects): No such file or directory
Game process removed: AppID 570 "/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama", ProcID 880 
nanonyme commented 2 years ago

Suid bubblewrap is not and will not be supported.

nanonyme commented 2 years ago

That failing opendir sounds suspicious. Might want to create separate report about that.

stacyharper commented 2 years ago

You talk about /var/lib/flatpak/repo ? I use a user scope and start steam with flatpak --user run com.valvesoftware.Steam

That could explain the issue ?

stacyharper commented 2 years ago

I installed the flathub repo globally and I now have a working /var/lib/flatpak/repo/. Starting Dota 2 still fails but now I got a more verbose output. Looks like an issue can cover another one. But Portal 2 with Steam Linux Runtime now start normaly !

edit: now I can safely remove the global flathub repository. The /var/lib/flatpak/repo/ directory continue to works. Maybe flatpak should have this directory configured by default ? Or maybe flatpak should not check this one if run under the user scope ?

Here now the full log about Dota 2. Where is that /tmp log file ?

GameAction [AppID 570, ActionID 1] : LaunchApp changed task to UpdatingAppInfo with ""
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to SynchronizingControllerConfig with ""
Installing breakpad exception handler for appid(steam)/version(1647446817)
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 570, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 570, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama\0
Game process added : AppID 570 "/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama", ProcID 639, IP 0.0.0.0:0
chdir /home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 643 != 640, skipping destruction (fork without exec?)
GameAction [AppID 570, ActionID 1] : LaunchApp changed task to Completed with ""
bash: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libtinfo.so.6: no version information available (required by bash)
pid 783 != 778, skipping destruction (fork without exec?)
/bin/bash: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libtinfo.so.6: no version information available (required by /bin/bash)
/bin/bash: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libtinfo.so.6: no version information available (required by /bin/bash)
pid 821 != 778, skipping destruction (fork without exec?)
Installing breakpad exception handler for appid(steam)/version(1647446817)
Using breakpad crash handler
[S_API] SteamAPI_Init(): Loaded '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/linux64/steamclient.so' OK.
Game process updated : AppID 570 "/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama", ProcID 823, IP 0.0.0.0:0
Setting breakpad minidump AppID = 570
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198084664671 [API loaded yes]
SteamInternal_SetMinidumpSteamID:  Setting Steam ID:  76561198084664671
Setting breakpad minidump AppID = 373300
crash_20220328165351_2.dmp[836]: Uploading dump (out-of-process)
/tmp/dumps/crash_20220328165351_2.dmp
/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh: line 109:   823 Segmentation fault      ${STEAM_RUNTIME_PREFIX} ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
crash_20220328165351_2.dmp[836]: Finished uploading minidump (out-of-process): success = yes
crash_20220328165351_2.dmp[836]: response: CrashID=bp-37a4d63b-4e87-429c-842f-f278d2220328
crash_20220328165351_2.dmp[836]: file ''/tmp/dumps/crash_20220328165351_2.dmp'', upload yes: ''CrashID=bp-37a4d63b-4e87-429c-842f-f278d2220328''
pid 836 != 835, skipping destruction (fork without exec?)
Game process removed: AppID 570 "/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=570 -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/stacy/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh' +engine_experimental_drop_frame_ticks 1 +@panorama_min_comp_layer_dimension 0 -prewarm_panorama", ProcID 823