protonscr

Client crash on many computers with OpenMandriva

steamclosed Steam client
ValveSoftware/steam-for-linux#6861 · opened 2020-02-01 by AngryPenguinPL · updated 2020-08-21 · 12 comments · github
AAngryPenguinPL 2020-02-01 github

Your system information

  • Steam client version (build number or date): (steam from 21 january)
  • Distribution (e.g. OpenMandriva Cooker/Rolling/upcoming Rock 4.1):
  • Opted into Steam client beta?: [No]
  • Have you checked for system updates?: [Yes]

Please describe your issue in as much detail as possible:

Steam client working fine few days ago, but we have recently noticed that a crash occurs during startup (just when login screen should appear). Crash appears on computers of different people with OpenMandriva (all recent version, Cooker, Rolling and stable 4.1).
We don't know if this was caused by one of the latest system updates or the latest Steam update.
A few days ago it worked, so something happened in the meantime.
I can't see anything from recent updates that would cause such a problem. Mainly Qt upgrade or Plasma rebuild, SDL rebuild, Glib2.0 upgrade was also. I've tried downgrade some packages, but the problem is still the same. I don't know what caused this. Maybe a system update or a steam update.

When I launch steam from console I see:

Performing checksum verification of executable files
[2020-02-01 20:18:59] Verification complete
opensslconnection.cpp (2276) : Assertion Failed: COpenSSLConnection(c0xd9a5af20) made no progress: SSLv2/v3 write client hello B (0 in 218 out)
opensslconnection.cpp (2276) : Assertion Failed: COpenSSLConnection(c0xd9a5af20) made no progress: SSLv2/v3 write client hello B (0 in 218 out)
Installing breakpad exception handler for appid(steam)/version(1579321278)
Opted-in Controller Mask for AppId 0: 0
crash_20200201201900_23.dmp[18948]: Uploading dump (out-of-process)
/tmp/dumps/crash_20200201201900_23.dmp
/tmp/dumps/crash_20200201201900_23.dmp: Relink `/home/x/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libcurl-gnutls.so.4' with `/lib/librt.so.1' for IFUNC symbol `clock_gettime'
opensslconnection.cpp (2276) : Assertion Failed: COpenSSLConnection(c0xd9a5af20) made no progress: SSLv2/v3 write client hello B (3728 in 0 out)
opensslconnection.cpp (2276) : Assertion Failed: COpenSSLConnection(c0xd9a5af20) made no progress: SSLv2/v3 write client hello B (3728 in 0 out)
opensslconnection.cpp (2301) : Assertion Failed: bForceRequeue || m_unThreadBytesToRead == 0 || m_eResultRunSSL != k_EResultOK
opensslconnection.cpp (2301) : Assertion Failed: bForceRequeue || m_unThreadBytesToRead == 0 || m_eResultRunSSL != k_EResultOK
Installing breakpad exception handler for appid(steam)/version(1579321278)
assert_20200201201857_1.dmp[18955]: Uploading dump (out-of-process)
/tmp/dumps/assert_20200201201857_1.dmp
/tmp/dumps/assert_20200201201857_1.dmp: Relink `/home/x/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libcurl-gnutls.so.4' with `/lib/librt.so.1' for IFUNC symbol `clock_gettime'
/home/x/.local/share/Steam/steam.sh: linia 722: 18845 Bus Error            (core dump) $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@

Here is full launch log:
https://gist.github.com/AngryPenguinPL/ff224d93bfe3c885fe615f7cd6dfb0f6

Also I uploaded dumps:
http://www.mediafire.com/file/aisrs2hh3o0vy82/crash_20200201201900_23.dmp/file
http://www.mediafire.com/file/rj8jjxbrhvs3qcf/assert_20200201201857_1.dmp/file
http://www.mediafire.com/file/zbydiynex565vxt/crash_20200201195339_23.dmp/file
http://www.mediafire.com/file/4q1xqt5h5q8ki83/assert_20200201195336_1.dmp/file
http://www.mediafire.com/file/ev6q005von60nsq/crash_20200201171359_23.dmp/file

Here is a list of all updated packages in last few days: https://gist.github.com/AngryPenguinPL/6ea924c4ee22feabc3c05b2f5ad27e1e

Also Im trying Steam on other Linux OS and works fine. Trying download also older ISO with OpenMandriva, created in 13 january and still Steam crashing. Worth to add, even If I install old ISO, then all needed packages is still downloading from repo in recent version. List is here: https://gist.github.com/AngryPenguinPL/31915cff125aae88500862f98fd93869

Worth to add, when run steam without runtime: STEAM_RUNTIME=0 steam
Steam launching and hang on this small window with "updating steam information".

PS. is any way to force steam update to older version? For example before 21 January?

Steps for reproducing this issue:

  1. Install OpenMandriva Cooker, Rolling or current stable 4.1
  2. Enable x86 main and 86_64-non-free repository
  3. Install Steam from non-free repo
  4. Launch steam and see crash.

Issue confirmed also by @berolinux

Kkisak-valve maintainer 2020-02-01 github

For reference, the attached assert .dmps are SIGBUS in steam and the crash .dmps are DUMP_REQUESTED in crashhandler.so.

TTTimo 2020-02-06 github
opensslconnection.cpp (2276) : Assertion Failed: COpenSSLConnection(c0xd9a5af20) made no progress: SSLv2/v3 write client hello B (0 in 218 out)

suggests problems with network/crypto/SSL?

Relink `/home/x/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libcurl-gnutls.so.4' with `/lib/librt.so.1' for IFUNC symbol `clock_gettime'

I wonder if that means the host has a problem with scout's libcurl-gnutls.so.4
We statically link curl into the Steam client so I'm not sure how that would come into a crash here though.

Can you post the output of the following:
~/.steam/steam/ubuntu12_32/steam-runtime/run.sh ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-system-info
(it's the same as doing Help > System Information in a working client)

And provide the content of ~/.steam/steam/logs

Bberolinux 2020-02-06 github

If I replace steam's libcurl-gnutls.so.4 with the system version, the problem remains the same (but the Relink warning goes away).

Bberolinux 2020-02-07 github

We've tracked the crash down to this modification in our util-linux package:
https://github.com/OpenMandrivaAssociation/util-linux/commit/d46f2e62066379160a8930733a0cd96a4cd734df#diff-07f6d29b369ee7e097c3cf9342ba52ceR335

Reverting to a version of (32-bit) libmount.so.1 that is built without cryptsetup support makes steam start up (and actually work correctly) once.

It starts crashing again if it is restarted, but rm -rf ~/.local/share/Steam "fixes" it again.

Given the various warnings about SSL in the crash (as well as the fact that libmount with cryptsetup uses OpenSSL), I think libmount.so.1 pulls in the system libcrypto.so.1.1, which in turn has symbol clashes with the version of libcrypto.so.1 in the steam runtime.

Chances are linking libmount statically into steam would fix this.

Bberolinux 2020-02-07 github

Given the analysis in the previous comment, we've rebuilt cryptsetup using a different crypto backend. This prevents libmount from pulling in openssl, and stops the symbol clashes. Steam now starts up and works (uncovering another probably unrelated issue, will open a new report for that).

I'll leave the report open though, given this may happen on other distributions that use cryptsetup with openssl as well.

TTTimo 2020-02-10 github

Given the various warnings about SSL in the crash (as well as the fact that libmount with cryptsetup uses OpenSSL), I think libmount.so.1 pulls in the system libcrypto.so.1.1, which in turn has symbol clashes with the version of libcrypto.so.1 in the steam runtime.

There is steam-runtime/lib/i386-linux-gnu/libcrypto.so.1.0.0 in steamrt-scout, however the Steam client does not use it. It is statically linked against a custom OpenSSL build. Still, I think you are correct in that SSL symbols from the host are being injected and causing problems. We'll nibble on this internally to see what we can do, thanks!

Ttpgxyz 2020-02-17 github

@berolinux @TTimo Maybe we need to extend list of openssl hidden symbols ?
https://github.com/OpenMandrivaAssociation/openssl/blob/master/0002-Hide-a-symbol-from-Steam.patch

Ssmcv 2020-06-29 github

I think libmount.so.1 pulls in the system libcrypto.so.1.1

This looks like the same issue as #7223 in Debian testing/unstable and Ubuntu groovy, which both recently enabled the optional libcryptsetup dependency in libmount, which in turn depends on OpenSSL libcrypto. There are some ideas on that issue.

Chances are linking libmount statically into steam would fix this.

I doubt it. If this issue is the same as the one in Debian, then libmount is coming in via the dependency chain GTK -> GLib -> libmount, because the system copies of GLib and GTK are newer than the ones in the Steam Runtime. Having a statically linked copy of some random version of libmount would potentially even make matters worse, if it exports the same symbols as the system copy but is not perfectly compatible.

Ttpgxyz 2020-06-29 github

Using kernel backend as default crypto engine for cryptsetup resolves issue:
https://github.com/OpenMandrivaAssociation/cryptsetup/commit/96e9d05c7585a32ab7c902712fba283b780968ed

TTTimo 2020-07-21 github

Changes made in Steam client beta >= Jul 20 should address this

Kkisak-valve maintainer 2020-08-21 github

Closing per the last comment.

Nothing extracted yet.