Hello @happysmash27, ~amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description. If they do, bad things may happen! in your log looks like the only potentially interesting line, but that might be unrelated to your issue.~ EDIT: That warning is from a missing kernel config setting (https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee5e5804a9a10db5fd95022efe5e9217b56dd6d1).
Does ~/.local/share/Steam/logs/cef_log.txt have any hints?
Does ~/.local/share/Steam/logs/cef_log.txt have any hints?
Also please check ~/.local/share/Steam/logs/steamwebhelper.log, and the systemd Journal (if you use systemd) or the syslog (if not).
The system log appears to have only unrelated NetworkManager and dnsmasq output.
steamwebhelper.log has interesting output:
Steam runtime environment up-to-date!
libGL error: MESA-LOADER: failed to open radeonsi: /home/happysmash27/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /usr/lib/llvm/11/lib64/libLLVM-11.so) (search paths /usr/lib64/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open radeonsi: /home/happysmash27/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /usr/lib/llvm/11/lib64/libLLVM-11.so) (search paths /usr/lib64/dri)
libGL error: failed to load driver: radeonsi
libGL error: MESA-LOADER: failed to open swrast: /home/happysmash27/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /usr/lib/llvm/11/lib64/libLLVM-11.so) (search paths /usr/lib64/dri)
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 114
Current serial number in output stream: 115
X11 errors can sometimes happen after running X11 for a very long time. May try re-starting to see if it changes anything.
cef_log.txt also has various X11 bad window errors. So I will definitely try re-starting X11 and reporting back. X11 running for a while seems to be a factor behind that terrible SteamVR bug where it unrecoverably freezes my entire graphics stack too.
@happysmash27 or @kisak-valve, please could you retitle this issue to something like this?
steamwebhelper not working: pinned_libs_64/libstdc++.so.6: version `CXXABI_1.3.11' not found
Otherwise we'll get other people jumping onto this issue if they get the same symptom for a different reason, which will make it harder to solve.
Restarting did not seem to fix the issue.
Where did you find the libstdc++.so.6 error? I did not notice it when going through the logs.
You provided it as the error for why radeonsi failed to initialize. (Scroll right in your previous comment.)
I believe this error is unlikely to be the cause as I remember having similar errors even all the way back in 2016 and Steam working perfectly fine, but I will investigate it nevertheless.
Hello @happysmash27, ~
amdgpu: os_same_file_description couldn't determine if two DRM fds reference the same file description. If they do, bad things may happen!in your log looks like the only potentially interesting line, but that might be unrelated to your issue.~ EDIT: That warning is from a missing kernel config setting (https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee5e5804a9a10db5fd95022efe5e9217b56dd6d1).Does
~/.local/share/Steam/logs/cef_log.txthave any hints?
This log file does not exist and the closest named one, cef_log.previous.txt, appears to have a creation date of September 13 according to ls -l, so I am not sure if it is up to date. I can make a pastebin anyway if you would like, though.
Edit: Gist of the entire log file: https://gist.github.com/happysmash27/8663b1897bc97b3640beec46df3d195f
I indeed had searched up that exact error in 2020-05-16:

Since Steam worked fine at that point, this is probably not the cause of the new webview error.
Oh! On second thought, deleting that .so file (or more accurately, adding .disabled at the end) seems to fix the issue. I guess Steam is just more sensitive to it than before. I'm glad I kept experimenting with it anyway even though I did not think it caused the problem.
Workaround solution: move ~/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6 to ~/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6.disabled or delete it.
It sounds like the LD_* library pinning logic is finding an older version of libstdc++ than llvm is compiled against. Can you delete the pinned_libs folders in ~/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/, then restart Steam to regenerate the pinned library folders and share the updated ~/.local/share/Steam/logs/steamwebhelper.log in a gist?
We're looking for a system-installed libstdc++ file versioned older than libstdc++.so.6.0.21. If you use mlocate, you can also use something like locate libstdc++.so.6 and look for an unusually old version in a system path. If you find a likely candidate, then you should be able to use equery belongs /path/to/libstdc++.so.6.0.## to see if a package owns that file.
Workaround solution: move ~/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6 to ~/.local/share/Steam/ubuntu12_64/steam-runtime-heavy/pinned_libs_64/libstdc++.so.6.disabled or delete it.
That's a valid workaround, but will only work until steam-runtime-heavy is updated. Every time steam-runtime-heavy gets updated, you would have to redo the workaround.
For a longer-term solution, we'll need to know how/why the pinning logic thinks your libstdc++.so.6 is older than the one provided by the runtime (for which see @kisak-valve's comment).
steamwebhelper.log seems to be the same after deleting the two directoryies: https://gist.github.com/happysmash27/7c733c83b42933216bb7fc0cc161c69e. The modification date is when Steam initially launched, however, so it was indeed updated.
The oldest libstdc++.so.6 file I have that is not in /opt or a location completely unrelated to my system path, is /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.4/32/libstdc++.so.6.0.20, which I do not need to check the database to know that it is probably from GCC 4.9.4. Just in case, I'm running the command, but it is taking a while, so I will update when it is finished.
Edit: The library is indeed from sys-devel/gcc-4.9.4-r1.
Checking emerge, this package no longer exists.
I am considering deleting the entire package, since probably nothing depends on it, but surely the runtime should be able to track down the many, many newer versions of the file?
It should be noted that ALL of these are in the /usr/lib/gcc/ directory, though. So, I wonder if it is simply not digging deep enough, and only looking in the main lib directory and subdirectories of it.
surely the runtime should be able to track down the many, many newer versions of the file?
You can see exactly what the runtime does by looking at steam-runtime-heavy/setup.sh: it reads the output of ldconfig -XNv 2>/dev/null to find your system libraries. Please could you attach the output of that command, before removing any outdated versions of gcc?
I think the problem here might be that setup.sh assumes you only have one instance of any given SONAME in the normal search path, which will be true for most libraries on Gentoo, and true for libstdc++ on most distributions, but apparently not true for libstdc++ on Gentoo. If it sees multiple instances of libstdc++ in different directories, it will compare the version of each one with the version in the runtime, but not with each other. If it compares your oldest libstdc++ (from gcc 4.9) with the libstdc++ in the runtime (from gcc 5 if I remember correctly), it will decide that the version in the runtime is newer and therefore needs pinning, even if it also compared newer host versions of libstdc++ with the version in the runtime and correctly considered the host version to be newer.
I apologise for the late response; I have had a busy last few days.
I have attached the output in the following gist: https://gist.github.com/happysmash27/529f57f4c72c5dce3ad96941c0f8bf96
The newest versions show up first so I'm guessing that it is selecting the last one?
The newest versions show up first so I'm guessing that it is selecting the last one?
Yes. I think the script should be selecting only the first host library that it sees for each (SONAME, word size) pair, instead.
I'm testing a patch for that.
@happysmash27: Please try replacing your ~/.steam/root/ubuntu12_64/steam-runtime-heavy/setup.sh with the one from here: https://github.com/smcv/steam-runtime/blob/wip/smcv/sfl8123/templates/setup.sh, delete ~/.steam/root/ubuntu12_64/steam-runtime-heavy/pinned_libs_*, and run Steam from a terminal as STEAM_RUNTIME_VERBOSE=1 steam.
You should see messages like this:
setup.sh: Ignoring /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libstdc++.so.6 because /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/libstdc++.so.6 is higher-precedence
and the web helper should work as intended.
The changes I mentioned above were released in Steam public beta 2021-11-02 (build 1635884102).
This update also appears to have gone out in the general availability channel now (Steam version according to Help -> About Steam: 2021-11-19 20:59:59, build 1637358733).
Closing per the last comment.
Nothing extracted yet.
Your system information
Please describe your issue in as much detail as possible:
Steam web client screens, including the library, just show as a black screen, making many functions unusable:

This results in the following log output in the Steam beta: https://gist.github.com/happysmash27/6ecc9ff1db680a1192a7b4b58e7a92ba
Steps for reproducing this issue: