protonscr

steamwebhelper not working: pinned_libs_64/libstdc++.so.6: version CXXABI_1.3.11 not found

steamclosed Distro Family: GentooWeb Component
ValveSoftware/steam-for-linux#8123 · opened 2021-10-03 by happysmash27 · updated 2021-12-24 · 19 comments · github
1 matching comments, n / p to jump
Hhappysmash27 2021-10-03 github

Your system information

  • Steam client version (build number or date): Oct 1 2021 21:31:48
  • Distribution (e.g. Ubuntu): Gentoo
  • Opted into Steam client beta?: Yes. Also occurs on non-beta.
  • Have you checked for system updates?: Yes. Just updated to beta to try to fix this issue, but this did not help.

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:
2021-10-03-140721_1256x978_scrot
This results in the following log output in the Steam beta: https://gist.github.com/happysmash27/6ecc9ff1db680a1192a7b4b58e7a92ba

Steps for reproducing this issue:

  1. Launch Steam.
Kkisak-valve maintainer 2021-10-03 github

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?

Ssmcv 2021-10-03 github

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).

Hhappysmash27 2021-10-03 github

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.

Ssmcv 2021-10-03 github

@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.

Hhappysmash27 2021-10-03 github

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.

Kkisak-valve maintainer 2021-10-03 github

You provided it as the error for why radeonsi failed to initialize. (Scroll right in your previous comment.)

Hhappysmash27 2021-10-03 github

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.

Hhappysmash27 2021-10-03 github

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?

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

Hhappysmash27 2021-10-03 github

I indeed had searched up that exact error in 2020-05-16:

2021-10-03-165424_1065x612_scrot

Since Steam worked fine at that point, this is probably not the cause of the new webview error.

Hhappysmash27 2021-10-04 github

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.

Kkisak-valve maintainer 2021-10-04 github

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.

Ssmcv 2021-10-04 github

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).

Hhappysmash27 2021-10-06 github

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.

Ssmcv 2021-10-06 github

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.

Hhappysmash27 2021-10-15 github

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?

Ssmcv 2021-10-18 github

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.

Ssmcv 2021-10-18 github

@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.

Ssmcv 2021-11-22 github

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).

Kkisak-valve maintainer 2021-12-24 github

Closing per the last comment.

Nothing extracted yet.