protonscr

steamwebhelper: libgio-2.0.so.0: undefined symbol: mnt_new_table, version MOUNT_2.19

steamclosed runtimeDistro Family: ArchWeb Component
ValveSoftware/steam-for-linux#10776 · opened 2024-04-11 by DaGamerFiles · updated 2024-04-16 · 10 comments · github
DDaGamerFiles 2024-04-11 github

Your system information

  • Steam client version (build number or date): 1709846872
  • Distribution (e.g. Ubuntu): Manjaro
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: Nvidia GeForce GTX 1650 (550.67)

Please describe your issue in as much detail as possible:

Steam instance (both Runtime and Native) refuses to launch because steamwebhelper is apparently failing to start. I tried other options such as running without browser sandboxing and disabling GPU acceleration but to no avail. I also tried to reinstall both steam and steam-native-runtime and the problem still persists. Looking through the log, it calls for libgio-2.0.so.0 using the symlink of non-existent directory (confirmed by doing cd /lib/x86_64-linux-gnu/ where it returns as no such file or directory exists).

Highlighted from steamwebhelper.log line 6: ./steamwebhelper: symbol lookup error: /lib/x86_64-linux-gnu/libgio-2.0.so.0: undefined symbol: mnt_new_table, version MOUNT_2.19 (n.b. I have my game libraries installed on two separate NTFS drives, runs flawlessly without any issues before)

Steps for reproducing this issue:

  1. Start steam
  2. Wait for a window from steam to appear

Expected:

Steam login window appears

Result:

Steam shows a window saying that steamwebhelper is not responding

Ssmcv 2024-04-11 github

Looking through the log, it calls for libgio-2.0.so.0 using the symlink of non-existent directory (confirmed by doing cd /lib/x86_64-linux-gnu/ where it returns as no such file or directory exists)

The steamwebhelper runs inside a container where this directory does exist, even if it doesn't exist on your host system. The error message indicates that /lib/x86_64-linux-gnu/libgio-2.0.so.0 was found successfully, so that is not the problem. The problem is that libgio-2.0.so.0 depends on specific symbols being present in libmount.so.1, and for whatever reason, those symbols were not present.

This is probably something to do with the Steam Linux Runtime container framework: my first guess would be that there is an incompatibility between libmount.so.1 on the host system vs. in the container, and the container runtime framework is somehow choosing the wrong one. It is meant to choose the "best" version automatically, but that can be fragile. Please try running Steam with STEAM_LINUX_RUNTIME_VERBOSE=1 in the environment, and capture a new steamwebhelper.log in that situation.

Also, please run objdump -T -x /usr/lib/libmount.so.1 > objdump-libmount.txt on the affected system, and attach the resulting objdump-libmount.txt or send it as a Gist. For reference, on an Arch system it looks like this: objdump-libmount-arch.txt. Manjaro is derived from Arch, so I would expect to be very similar.

If you have your own locally-installed copy of libmount and other util-linux libraries, perhaps in /usr/local, please do the same for that copy.

n.b. I have my game libraries installed on two separate NTFS drives, runs flawlessly without any issues before

This should not be directly relevant for steamwebhelper, which doesn't use your game libraries: all of its files are below the Steam installation directory, which in your case is ~/.local/share/Steam. In general I would recommend a native Linux filesystem for the game libraries too, but NTFS can be made to work if you're sufficiently careful with your choice of mount options.

It would be interesting to know whether you have been able to run Windows games via Proton 5.13+, or native Linux games that require the container runtime (CS2, Dota 2, Endless Sky, Retroarch), in the past - those use a very similar container mechanism. If you have not attempted to run those games in the past, no problem.

Ssmcv 2024-04-11 github

If you have your own locally-installed copy of libmount and other util-linux libraries, perhaps in /usr/local, please do the same for that copy.

Other possible sources of a locally-installed library that could interfere with Steam are frameworks like Homebrew, Nix or Stow.

DDaGamerFiles 2024-04-11 github

Captured new steamwebhelper.log and objdump-libmount.txt. I have no other locally-installed libmount.

Ssmcv 2024-04-11 github
./steamwebhelper: ./libmount.so.1: no version information available (required by /lib/x86_64-linux-gnu/libgio-2.0.so.0)

Hang on, that says ./. Do you have a libmount.so.1 at ~/.local/share/Steam/ubuntu12_64/libmount.so.1? I don't think that should be there: I'm not seeing it in the files installed by either the public beta or the general-availability branch.

Is it possible that you might have copied libmount.so.1 at ~/.local/share/Steam/ubuntu12_64 as a workaround at some point in the past?

DDaGamerFiles 2024-04-11 github

Correct, libmount.so.1 was indeed present in the directory although I have never copied it to ~/.local/share/Steam/ubuntu12_64 before.

Ssmcv 2024-04-15 github

Please could you show me the result of ls -l ~/.local/share/Steam/ubuntu12_64 so we can check what the timestamp on that file is, and whether there are any other files that are present but should not be?

After you've done that, deleting the libmount.so.1 should avoid this crash.

@TTimo, please could you take a look at Steam's revision control history and see whether there has ever been a libmount.so.1 in that directory, and whether there are other libraries that used to be in that directory and might not get cleaned up correctly in upgrades?

TTTimo 2024-04-15 github

There was never a libmount.so.1 in our ubuntu12_64/ folder. I can get you a list of files that were ever deleted out of ubuntu12_64 on private channels but nothing there looks much interesting.

Ssmcv 2024-04-15 github

There was never a libmount.so.1 in our ubuntu12_64/ folder

Good, that's what I was hoping for...

DDaGamerFiles 2024-04-15 github

Please could you show me the result of ls -l ~/.local/share/Steam/ubuntu12_64 so we can check what the timestamp on that file is, and whether there are any other files that are present but should not be?

ls -l ~/.local/share/Steam/ubuntu12_64 result: 16042024-list.txt

Unfortunately as I'm writing this down, libmount.so.1 was "magically" deleted from ubuntu12_64 but Steam is running as it should be now. Closing the issue since the problem no longer persists.

Ssmcv 2024-04-16 github

The rest of the files in your listing seem correct.

Proton versions