protonscr

Steam Controller triggers assertion on Gentoo x86_64

steamopen reviewed
ValveSoftware/steam-for-linux#4458 · opened 2016-05-22 by ghost · updated 2016-10-13 · 4 comments · github
?ghost 2016-05-22 github

Your system information

  • Steam client version: 1463778979
  • Distribution (e.g. Ubuntu): Gentoo x86_64
  • Opted into Steam client beta?: [Yes/No] Yes (problem occurred with current stable and beta client versions)
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

When I connect my Steam Controller in Big Picture Mode it prompts me to migrate the settings profile (I hadn't used my controller in some time) then Steam crashes while migrating. Otherwise Steam and the games I've tried playing through it work fine. I'm on a 64-bit Gentoo with STEAM_RUNTIME disabled and ZFS filesystems (Steam is running off an SSD with a ZFS filesystem having a 16K recordsize and lz4 compression enabled, no encryption though). The relevant bit of output from Steam, from when I turned on the controller until it crashed:

Steam Controller reserving XInput slot 0
Opening joystick Steam Controller
Controller 0 connected, configuring it now...
!! Controller 0 attributes (wireless):
  ProductID: 4354
  Serial: FC53400466
  Capabilities: 00000003
  UniqueID: 0
  Firmware Version: 0
  Firmware Build Time: 1455918081 (Fri, 19 Feb 2016 21:41:21 GMT)
  Bootloader Build Time: 1439863405 (Tue, 18 Aug 2015 02:03:25 GMT)
Could not find local override, default, or selection, checking last resort path: /mnt/games/Steam//controller_base/bigpicture.vdf
defaultfocus=WelcomeTitle not found within layout file for WelcomeSection
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
Installing breakpad exception handler for appid(steam)/version(1463778979)
chunkfinder.cpp (681) : Assertion Failed: Default chunk and disk sector size don't align
Assert( Assertion Failed: Default chunk and disk sector size don't align ):chunkfinder.cpp:681

Installing breakpad exception handler for appid(steam)/version(1463778979)
assert_20160522112958_38.dmp[28998]: Uploading dump (out-of-process)
/tmp/dumps/assert_20160522112958_38.dmp
chunkfinder.cpp (734) : Assertion Failed: unBytesRead == cubRead
crash_20160522112919_1.dmp[29002]: Uploading dump (out-of-process)
/tmp/dumps/crash_20160522112919_1.dmp
/mnt/games/Steam/steam.sh: line 753: 28815 Segmentation fault      $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
assert_20160522112958_38.dmp[28998]: Finished uploading minidump (out-of-process): success = yes
assert_20160522112958_38.dmp[28998]: response: CrashID=bp-b9dd736e-9cf9-46fc-97aa-5a5c82160522
assert_20160522112958_38.dmp[28998]: file ''/tmp/dumps/assert_20160522112958_38.dmp'', upload yes: ''CrashID=bp-b9dd736e-9cf9-46fc-97aa-5a5c82160522''
crash_20160522112919_1.dmp[29002]: Finished uploading minidump (out-of-process): success = yes
crash_20160522112919_1.dmp[29002]: response: CrashID=bp-84b127c8-a8f8-42f2-bda0-f86ce2160522
crash_20160522112919_1.dmp[29002]: file ''/tmp/dumps/crash_20160522112919_1.dmp'', upload yes: ''CrashID=bp-84b127c8-a8f8-42f2-bda0-f86ce2160522''

I suspect the assertion about chunk size not aligning to disk sector size is checking for the wrong thing or in some other way is not valid, and is the source of the problem with the controller crashing steam under Linux for some folks.

Steps for reproducing this issue:

  1. Switch Steam to Big Picture Mode.
  2. Turn on Steam Controller with the USB dongle plugged in.
  3. Get prompted to customize the controller and click accept.
  4. Have Steam crash while it is migrating the controller profile.
?ghost 2016-07-19 github

Any updates on this? I'm still unable to use my Steam Controller (and by extension, play any of the games I'd use it with), even with a clean install of Steam from a few weeks ago, because Steam still crashes in the same way while trying to migrate the controller profile.

Ppluser 2016-09-10 github

I confirmed same problem. When I moved the system from on ZFS to ext4, Steam controller setting works without crash. VALVE should fix this problem, IMHO.

?ghost 2016-10-10 github

After using a different computer to migrate my controller's profile (to avoid Steam crashing before completing the migration), I have discovered that Steam crashes with the same assertion about the chunk size not aligning to the disk sector size whenever I try to change the controller's setting (such as editing the key mappings in the desktop configuration). In addition to the information in the original bug report, I'm currently running kernel 4.7.4 and zfs 0.6.5.8 (the latest release from http://zfsonlinux.org/)

LLilolbet 2016-10-13 github

Hi, ran into the same issue :)

Running Archlinux with 4.7.7-1-ck and ZFS 0.6.5.8.
I worked around the problem by creating a new dataset with a fixed record size for the Steam installation, lets call it tank/Steam.
zfs create tank/Steam
Applied a fixed record size that matched the drive sector size, check your harddrive specs. It should be either 512 or 4k. You can set additional things here if you wish. The record size is the only one that causes the crash.
zfs set recordsize=4k tank/Steam
I then rsynced the entire ~/.local/share/Steam over to tank/Steam except steamapps, because I still wanted a larger record size there. If you rsync everything that should also be fine.
rsync -a --exclude={steamapps} ~/.local/share/Steam tank/Steam
And created the rest...
zfs create -o recordsize=1M tank/Steam/steamapps
rsync -a ~/.local/share/Steam/steamapps tank/Steam/steamapps
Set the mountpoint to legacy
zfs set mountpoint=legacy tank/Steam
and added mountpoint to fstab
tank/Steam /home/USERNAME/.local/share/Steam/ zfs defaults,noatime 0 0
mv ~/.local/share/Steam ~/.local/share/SteamOLD
mount -a

Hope it help anyone else, though I am not sure why they are sanity checking for this :)
Seems like a needless check, especially since ZFS and XFS both have variable record/chunk sizes.

Edit:
If anyone from Valve feels like having a go at reproducing this, the following dataset settings caused the crash, though I assume the only necessary one to cause the crash is the recordsize property.

NAME PROPERTY VALUE SOURCE
tank/Games type filesystem -
tank/Games creation Sat Dec 12 13:25 2015 -
tank/Games used 174G -
tank/Games available 1.90T -
tank/Games referenced 93.9G -
tank/Games compressratio 1.12x -
tank/Games mounted yes -
tank/Games quota none default
tank/Games reservation none default
tank/Games recordsize 1M inherited from tank
tank/Games mountpoint /media/data/Games inherited from tank
tank/Games sharenfs off default
tank/Games checksum on default
tank/Games compression lz4 inherited from tank
tank/Games atime on default
tank/Games devices on default
tank/Games exec on default
tank/Games setuid on default
tank/Games readonly off default
tank/Games zoned off default
tank/Games snapdir hidden default
tank/Games aclinherit restricted default
tank/Games canmount on default
tank/Games xattr sa inherited from tank
tank/Games copies 1 default
tank/Games version 5 -
tank/Games utf8only off -
tank/Games normalization none -
tank/Games casesensitivity sensitive -
tank/Games vscan off default
tank/Games nbmand off default
tank/Games sharesmb off default
tank/Games refquota none default
tank/Games refreservation none default
tank/Games primarycache all default
tank/Games secondarycache all default
tank/Games usedbysnapshots 168K -
tank/Games usedbydataset 93.9G -
tank/Games usedbychildren 80.2G -
tank/Games usedbyrefreservation 0 -
tank/Games logbias latency default
tank/Games dedup off default
tank/Games mlslabel none default
tank/Games sync standard default
tank/Games refcompressratio 1.03x -
tank/Games written 88K -
tank/Games logicalused 196G -
tank/Games logicalreferenced 97.1G -
tank/Games filesystem_limit none default
tank/Games snapshot_limit none default
tank/Games filesystem_count none default
tank/Games snapshot_count none default
tank/Games snapdev hidden default
tank/Games acltype off default
tank/Games context none default
tank/Games fscontext none default
tank/Games defcontext none default
tank/Games rootcontext none default
tank/Games relatime on temporary
tank/Games redundant_metadata all default
tank/Games overlay off default

Nothing extracted yet.