Bug 52388 - Странная приоритетность сеансов
Summary: Странная приоритетность сеансов
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: pipewire (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-10 14:45 MSK by manowar@altlinux.org
Modified: 2024-12-10 14:46 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description manowar@altlinux.org 2024-12-10 14:45:47 MSK
Резюме: независимо от типа сеанса (текстовый или графический): первый сеанс на машине НЕ останавливает воспроизведение звука при переключении VT и тем самым препятствует другим сеансам использовать звуковое оборудование.

Подробности:

# id test1
uid=1001(test1) gid=1001(test1) группы=1001(test1)

VT1 regular login: test1

$ speaker-test -c2 -tpink
Playback device is default
...
Unable to set hw params for playback: Ошибка ввода/вывода
Setting of hwparams failed: Ошибка ввода/вывода

test1       1921  0.0  0.6 177720 13128 ?        S<sl 02:55   0:00 /usr/bin/pipewire

$ speaker-test -c2 -tpink
Playback device is default
...
 0 - Front Left
 1 - Front Right

Переключиться на VT1 --- звук продолжается!

Переключиться на VT2 --- звук продолжается!

Переключиться на VT3 --- звук продолжается!

Переключиться на VT* --- звук продолжается!

---

# id test2
uid=1002(test2) gid=1002(test2) группы=1002(test2)

VT 2 regular login: test2

$ speaker-test -c2 -tsin
Playback device is default
...
Unable to set hw params for playback: Ошибка ввода/вывода
Setting of hwparams failed: Ошибка ввода/вывода

test2       2030  0.0  0.5 109312 10612 ?        S<sl 02:59   0:00 /usr/bin/pipewire

$ speaker-test -c2 -tsin
Playback device is default
...
Unable to set hw params for playback: Ошибка ввода/вывода
Setting of hwparams failed: Ошибка ввода/вывода

Остановить speaker-test на VT2, переключиться на VT3

$ speaker-test -c2 -tsin
Playback device is default
...
Unable to set hw params for playback: Ошибка ввода/вывода
Setting of hwparams failed: Ошибка ввода/вывода

$ speaker-test -c2 -tsin
Playback device is default
...
 0 - Front Left
 1 - Front Right

Переключиться на VT2 --- звук остановлен!

Переключиться на VT3 --- звук продолжается!

Переключиться на VT4 --- звук остановлен!

Переключиться на VT* кроме VT3 --- звук остановлен!

---

Если пользователей test1 и test2 поменять местами --- ничего
не меняется относительно VT.

---

А вот если поменять порядок активации сеансов в VT --- сперва
выполнить вход на VT3, а затем на VT2, то поведение соответственно
изменяется: везде остаётся звучать VT3 (то есть, первый из сеансов),
а в сеансах на остальных VT звук останавливается после переключения
VT.

---

Запускаю на VT2 speaker-test от test2 и переключаюсь на гритер VT1
(звук продолжается), после чего активирую графический сеанс
test1.

Интересно, что в графическом сеансе test1 на VT1 дополнительно
присутствует pipewire-pulse:

test1       4200  0.1  0.6 112616 13200 ?        S<sl 03:16   0:00 /usr/bin/pipewire
test1       4203  0.0  0.4 100600  9284 ?        S<sl 03:16   0:00 /usr/bin/pipewire-pulse

В то время как у test2 на VT2 только pipewire.

Звук speaker-test от test2 продолжает играть.

При этом можно свободно запустить speaker-test от test1, но
звука он не даст до тех пор, пока не прервать speaker-test на VT2
и не переключиться обратно (!) на VT1.

Переключение на VT2 прерывает звук из графического сеанса.

---

Если последовательность активации сеансов снова поменять (сперва
графический, затем текстовый), то поведение соответственно изменится:
звук из графического сеанса будет звучат везде не прерываясь
при переключении VT.

Иными словами поведение везде одинаковое независимо от типа сеанса
(текстовый или графический): первый сеанс на машине не останавливает
воспроизведение звука при переключении VT и тем самым препятствует
другим сеансам использовать звуковое оборудование.

Если в первом сеансе на машине не включать воспроизведение какого-либо
звука, то остальные сеансы ведут себя кооперативно: останавливают
воспроизведение звука.