alsa-lib 1.2.2 kills my unity3d games
Jaroslav Kysela
perex at perex.cz
Sat Feb 29 21:41:32 CET 2020
Dne 29. 02. 20 v 21:19 Thomas J. Moore napsal(a):
> Sorry if this has already been reported, but I only really subscribed to
> report this bug, and nothing recent in the archive jumped out at me.
>
> Some time after Jan 12, some change in my (Gentoo Linux) system caused
> 67 of my 72 commercial, closed-source unity3d games to crash on startup.
> gdb was no help, but strace showed alsa activity before two crashes,
> and, sure enough, reverting alsa-lib to 1.2.1.2 cured it.
>
> I bisected to this commit (5ee5ef31b "namehint: correct the @args check"):
>
> https://git.alsa-project.org/?p=alsa-lib.git;a=blobdiff;f=src/control/namehint.c;h=4927ef973c326bef41e33b87714de87b31c1f752;hp=808df6b507336b8f6d6e618a0cfa520d62a3b4fc;hb=5ee5ef31b5ff3fb7c904054cb9cac7478a727f7c;hpb=ebdd2b6cdb8119cf75f0dd0a3b283d271b3a547e
>
> I don't know what the exact problem is, but reverting just this commit
> was enough to make everything work again (and its later modification in
> 6055f8a58 which doesn't make sense looking at the code as the function
> always returns 0 and str may still be NULL on exit, but adding a check
> for NULL str is not enough to stop unity3d from crashing).
The revert does not resolve the culprit. I already posted my comments to
https://github.com/alsa-project/alsa-lib/issues/27 . It's difficult to fix
something without sources. The bug seems to be in the sound device enumeration
in the commercial binary.
The alsa-lib's change just returns more devices than the previous version. It
should not affect anything. The device list collected from the affected
application in the comment bellow looks really suspicious:
https://github.com/alsa-project/alsa-lib/issues/27#issuecomment-592920831
It appears that the code does really something unwanted. You can find
workarounds in the issue.
Jaroslav
--
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
More information about the Alsa-devel
mailing list