Bug 38399 - С libalsa-1.2.2 не работают игры на Unity3D
Summary: С libalsa-1.2.2 не работают игры на Unity3D
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libalsa (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
: 38398 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-04-27 03:15 MSK by Vyacheslav Dikonov
Modified: 2022-11-21 08:40 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vyacheslav Dikonov 2020-04-27 03:15:23 MSK
Для запуска множества разных игр на Unity3D необходима libalsa-1.2.1. С новой версией происходит Unhandled exception SIGARBRT.

Проверено на трех разных игрушках.

Решение найдено тут: (там другие люди в другом дистре подтверждают эту же ошибку)
https://github.com/mono/mono/issues/19131

Просьба исправить, сделать параллельную установку двух версий или откатить.
Comment 1 Vyacheslav Dikonov 2020-04-27 03:18:39 MSK
Иногда по сообщениям можно подумать, что виновато mono, поэтому на него вешали баг.

Вот пример вывода с ошибкой (до замены версии libalsa на 1.2.1)

$ ./run.sh -force-opengl
Set current directory to /home/slava/.bin/games/Dandara - Trials of Fear
Found path: /home/slava/.bin/games/Dandara - Trials of Fear/Dandara
Mono path[0] = '/home/slava/.bin/games/Dandara - Trials of Fear/Dandara_Data/Managed'
Mono config path = '/home/slava/.bin/games/Dandara - Trials of Fear/Dandara_Data/Mono/etc'
Preloaded 'ScreenSelector.so'
Preloaded 'libsteam_api.so'
Display 0 'Color LCD 17"': 1920x1200 (primary device).
Logging to /home/slava/.config/unity3d/Long Hat House/Dandara/Player.log
Stacktrace:


Native stacktrace:

	/home/slava/.bin/games/Dandara - Trials of Fear/Dandara_Data/Mono/x86_64/libmono.so(+0x98a23) [0x7f3e33b81a23]
	/lib64/libpthread.so.0(+0x140f0) [0x7f3e529770f0]
	/lib64/libc.so.6(gsignal+0x141) [0x7f3e527d8891]
	/lib64/libc.so.6(abort+0x127) [0x7f3e527c255b]
	./Dandara() [0xd302c6]
	/home/slava/.bin/games/Dandara - Trials of Fear/Dandara_Data/Mono/x86_64/libmono.so(+0xd931d) [0x7f3e33bc231d]
	/home/slava/.bin/games/Dandara - Trials of Fear/Dandara_Data/Mono/x86_64/libmono.so(+0x375cf) [0x7f3e33b205cf]
	/lib64/libpthread.so.0(+0x140f0) [0x7f3e529770f0]
	./Dandara() [0xcb51c8]
	./Dandara() [0xa0b962]
	./Dandara() [0xa0e843]
	./Dandara() [0xa0ee4f]
	./Dandara() [0xa0f0c0]
	./Dandara() [0xe10639]
	./Dandara() [0x17a5ad5]
	./Dandara() [0x17ccd1b]
	./Dandara() [0x17ccf78]
	./Dandara() [0x17cd17c]
	./Dandara() [0x17cd384]
	./Dandara() [0x17bd058]
	./Dandara() [0x17b240e]
	./Dandara() [0xe203ad]
	./Dandara() [0xe208e6]
	./Dandara() [0xe21597]
	./Dandara() [0xd7dbe1]
	./Dandara() [0xd862da]
	./Dandara() [0xd8b1ec]
	./Dandara() [0xd8b375]
	./Dandara() [0xa2124e]
	./Dandara() [0xc51bfb]
	./Dandara() [0x44dace]
	/lib64/libc.so.6(__libc_start_main+0xeb) [0x7f3e527c3e1b]
	./Dandara() [0x45a601]

Debug info from gdb:

I refuse to debug myself!
No threads.

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Аварийный останов
Comment 2 Michael Shigorin 2020-04-27 21:48:29 MSK
*** Bug 38398 has been marked as a duplicate of this bug. ***
Comment 3 Michael Shigorin 2020-04-27 21:50:45 MSK
Надо бы это в апстрим дотащить; а пока давай зафиксируем полезные ссылки:
http://altlinux.org/downgrade
http://ftp.altlinux.org/pub/distributions/archive/sisyphus/index/src/l/libalsa/
Comment 4 Vyacheslav Dikonov 2020-04-28 20:44:44 MSK
Просто откатить без пересборки приложений не получается. Кое что, проприетарное, например Zoom, работает теперь только с 1.2.2. Надо делать libalsa-compat.

Чуть более изящный временный выход: скопировать libasound.so.2.0.0 из пакета libalsa версии 1.2.1 в /usr/share/lib64/libasound.so.2.0.0-1.2.1 и перед запуском сломавшихся игрушек делать 

export LD_PRELOAD=/path/to/my/malloc.so /bin/ls

Вот только какой гад придумал обе несовместимые по факту версии называть одинаково "libasound.so.2.0.0" ?
Comment 5 Vyacheslav Dikonov 2020-04-28 20:50:20 MSK
(Ответ для Michael Shigorin на комментарий #3)
> Надо бы это в апстрим дотащить; а пока давай зафиксируем полезные ссылки:
> http://altlinux.org/downgrade
Было бы здорово написать там, как откатить не всю систему, а точечно отдельный пакет, оставаясь в Сизифе? Баги можно часто локализовать с точностью до приложения или библиотеки, а общий откат делать совсем не хочется.
Comment 6 Michael Shigorin 2020-04-28 20:54:27 MSK
(Ответ для Vyacheslav Dikonov на комментарий #4)
> Надо делать libalsa-compat.
В дистрибутиве такое можно было бы делать только при железобетонно мёртвом апстриме и полном нежелании (или невозможности) связываться с кодом.
Надо внятно рассказать апстриму.  Жаль, что mantis у них сдох -- предлагается писать в alsa-devel@, подписавшись: http://alsa-project.org/wiki/Bug_Tracking

(Ответ для Vyacheslav Dikonov на комментарий #5)
> > http://altlinux.org/downgrade
> Было бы здорово написать там, как откатить не всю систему,
> а точечно отдельный пакет, оставаясь в Сизифе?
Гм, думал, это очевидно -- apt-get install его и по вкусу за'hold'ить.
Затем можно вернуть настройки апта в режим "как было" (кроме Hold).
Comment 7 Vyacheslav Dikonov 2020-04-28 21:20:30 MSK
export LD_PRELOAD=/usr/lib64/libasound.so.2.0.0-1.2.1

Извините, ранее вставил чушь из буфера.
Comment 8 Vyacheslav Dikonov 2020-04-29 13:04:19 MSK
(Ответ для Michael Shigorin на комментарий #6)
> (Ответ для Vyacheslav Dikonov на комментарий #4)
> > Надо делать libalsa-compat.
> В дистрибутиве такое можно было бы делать только при железобетонно мёртвом
> апстриме и полном нежелании (или невозможности) связываться с кодом.
> Надо внятно рассказать апстриму. 
Апстрим alsa мертвым быть не должен, но вот апстримы игр могут вообще перестать существовать. Альсовцы же могут сказать, что "проблемы индейцев шерифа не волнуют". Так что сейчас libalsa-compat (или unity-wrapper) нужен.
Comment 9 Michael Shigorin 2021-10-27 20:45:00 MSK
С 1.2.4 (p9) / 1.2.5.1 (p10) не прошло часом?
Comment 10 Anton Farygin 2022-11-21 08:40:47 MSK
на p10 с libalsa 1.2.6 ошибка не воспроизводится, игры с unity отлично работают.