protonscr

Steam hangs/lags when Yubikey inserted

steamclosed Web Component
ValveSoftware/steam-for-linux#4817 · opened 2017-01-18 by hsanjuan · updated 2019-11-20 · 6 comments · github
Hhsanjuan 2017-01-18 github

Your system information

  • Steam client version: Latest stable (2016-12-20) 1482202200 and beta
  • Distribution (e.g. Ubuntu): OpenSUSE 42.2
  • Opted into Steam client beta?: [Yes/No] Yes (happens in both beta and stable)
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist

When starting steam and loading the store page with a Yubikey NEO plugged-in, steam hangs (or rather has a 6-7 second lag). At that moment, it prints:

./steamwebhelper: symbol lookup error: /usr/lib64/opensc-pkcs11.so: undefined symbol: ENGINE_by_id

Unplugging the Yubikey fixes the problem.

OpenSC package (providing opensc-pkcs11.so) is opensc-0.13.0-6.5.x86_64

Steps for reproducing this issue:

  1. Plug Yubikey NEO
  2. Start steam
PPlagman 2017-01-19 github

Can you explain how this setup works? Your setup must be moving libraries around when it's plugged in.

Hhsanjuan 2017-01-19 github

There's no "moving libraries around". The Yubikey NEO is a smartcard and opensc-pkcs11.so is used for reading smart cards.

Why the steam store (or rather steamwebhelper) ends up using that library, and what it is trying to do with it is something I don't know and I was hoping someone would clarify. ENGINE_by_id seems part of libcrypto which is part of openssl. Have there been changes to these libs in the last weeks? To be honest, I have no idea how to dig up the real issue, but the fact is that problem's gone when Yubikey is removed.

Kkisak-valve maintainer 2017-01-19 github

The most significant change in recent history that could be related is "Improved interactions between the Steam runtime and host distribution libraries, which should let Steam work out of the box with open-source graphics drivers on modern distributions. If using an older distribution or running into problems, use STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 to revert to previous behavior." in the 2017-01-05 steam beta client.

Maybe there is a subtle ABI compatibility issue going on here with preferring your system libraries over the steam runtime. lddtree ~/.local/share/Steam/ubuntu12_64/libcef.so should list all system libraries in use by steamwebhelper.

Hhsanjuan 2017-01-19 github

Well opensc-pkcs11.so is not even there :s

~> lddtree ~/.local/share/Steam/ubuntu12_64/libcef.so
libcef.so => /home/hector/.local/share/Steam/ubuntu12_64/libcef.so (interpreter => none)
    libpthread.so.0 => /lib64/libpthread.so.0
    libfreetype.so.6 => /usr/lib64/libfreetype.so.6
        libz.so.1 => /lib64/libz.so.1
        libbz2.so.1 => /usr/lib64/libbz2.so.1
        libpng16.so.16 => /usr/lib64/libpng16.so.16
    libdl.so.2 => /lib64/libdl.so.2
    librt.so.1 => /lib64/librt.so.1
    libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0
    libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0
        libffi.so.4 => /usr/lib64/libffi.so.4
    libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0
        libpcre.so.1 => /usr/lib64/libpcre.so.1
    libnss3.so => /usr/lib64/libnss3.so
        libplc4.so => /usr/lib64/libplc4.so
        libplds4.so => /usr/lib64/libplds4.so
    libnssutil3.so => /usr/lib64/libnssutil3.so
    libsmime3.so => /usr/lib64/libsmime3.so
    libnspr4.so => /usr/lib64/libnspr4.so
    libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1
    libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0
            libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0
                libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3
    libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0
        libthai.so.0 => /usr/lib64/libthai.so.0
            libdatrie.so.1 => /usr/lib64/libdatrie.so.1
    libcairo.so.2 => /usr/lib64/libcairo.so.2
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0
        libEGL.so.1 => /usr/X11R6/lib64/libEGL.so.1
            libGLdispatch.so.0 => /usr/X11R6/lib64/libGLdispatch.so.0
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0
        libGL.so.1 => /usr/X11R6/lib64/libGL.so.1
            libnvidia-tls.so.375.26 => /usr/lib64/libnvidia-tls.so.375.26
            libnvidia-glcore.so.375.26 => /usr/lib64/libnvidia-glcore.so.375.26
    libexpat.so.1 => /usr/lib64/libexpat.so.1
    libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0
        libselinux.so.1 => /lib64/libselinux.so.1
        libresolv.so.2 => /lib64/libresolv.so.2
    libX11.so.6 => /usr/lib64/libX11.so.6
    libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1
    libxcb.so.1 => /usr/lib64/libxcb.so.1
        libXau.so.6 => /usr/lib64/libXau.so.6
    libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1
    libXcursor.so.1 => /usr/lib64/libXcursor.so.1
    libXdamage.so.1 => /usr/lib64/libXdamage.so.1
    libXext.so.6 => /usr/lib64/libXext.so.6
    libXfixes.so.3 => /usr/lib64/libXfixes.so.3
    libXi.so.6 => /usr/lib64/libXi.so.6
    libXrender.so.1 => /usr/lib64/libXrender.so.1
    libXtst.so.6 => /usr/lib64/libXtst.so.6
    libXrandr.so.2 => /usr/lib64/libXrandr.so.2
    libXss.so.1 => /usr/lib64/libXss.so.1
    libgconf-2.so.4 => /usr/lib64/libgconf-2.so.4
        libdbus-glib-1.so.2 => /usr/lib64/libdbus-glib-1.so.2
    libm.so.6 => /lib64/libm.so.6
    libasound.so.2 => /usr/lib64/libasound.so.2
    libcups.so.2 => /usr/lib64/libcups.so.2
        libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2
            libkrb5.so.3 => /usr/lib64/libkrb5.so.3
                libkeyutils.so.1 => /lib64/libkeyutils.so.1
            libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3
            libcom_err.so.2 => /lib64/libcom_err.so.2
            libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0
        libssl.so.1.0.0 => /lib64/libssl.so.1.0.0
        libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0
        libavahi-common.so.3 => /usr/lib64/libavahi-common.so.3
        libavahi-client.so.3 => /usr/lib64/libavahi-client.so.3
    libdbus-1.so.3 => /lib64/libdbus-1.so.3
    libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0
    libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0
    libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0
        libXinerama.so.1 => /usr/lib64/libXinerama.so.1
    libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6
    libgcc_s.so.1 => /lib64/libgcc_s.so.1
    libc.so.6 => /lib64/libc.so.6
    ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

I'm not normally opted in for beta (though I verified the error still exists in it), so probably it is unrelated?

Kkisak-valve maintainer 2019-11-15 github

Hello @hsanjuan, are you still experiencing this issue on an up to date system?

Hhsanjuan 2019-11-20 github

No, don't think so.

Nothing extracted yet.