Open ikeydoherty opened 8 years ago
I can confirm this issue in all its details.
Stumbled over this ticket while investigating some steam shutdown related coredumps that contained dbus_g_connection_unref (libdbus-glib-1.so.2)
. Using the workaround DBUS_FATAL_WARNINGS=0
does its job, steam exits cleanly.
The Steam client currently segfaults on non-Debian systems due to a double-unref by the Steam client. This doesn't appear in Debian and Ubuntu because a patch is carried to forcibly disable fatal warnings in dbus, allowing bad API usage.
Note that this particular bug is common, and a a constant source of coredump uploads upon exit of Steam, which unrefs a closed connection:
Now, I know correcting the issue in Steam is probably going to take a bit of fixing, so there is a valid workaround you can implement in the main
$bindir/steam
script:This is currently being used in LSI to prevent mass coredumps reaching Valve, though obviously the actual underlying bug should still be fixed.
LSI fix: https://github.com/solus-project/linux-steam-integration/commit/82512dece012448ad3ab4eea586ee6d2d7900cdd
Steps for reproducing this issue:
If you have cannot immediately reproduce this, disabling the
STEAM_RUNTIME
will force it to happen. (STEAM_RUNTIME=0
)Related patched library in Steam runtime: http://archive.ubuntu.com/ubuntu/pool/main/d/dbus/dbus_1.4.18-1ubuntu1.7.debian.tar.gz
Mirrored patch used in Ubuntu package: https://git.solus-project.com/packages/dbus/tree/files/no-fatal-warnings.patch
Note that the patch causes non-standard behaviour so shouldn't be relied upon, i.e. this is not the upstream dbus default behaviour. For now the export trick will be the best approach until a full solution has been found.
To debug in your dev-sdk builds, ensure you set:
To override the behaviour of the Ubuntu patch.