LINUX.ORG.RU

Про Firefox и «Can't get cubeb context!»

 ,


0

1

Кто-нибудь уже борол сабжевую ошибку?

Когда-то я уже создавал тему, в которой упоминал про ошибки

OpenCubeb() failed to init cubeb

и

Вызов xcb_connection_has_error() вернул «true».

Сегодня я случайно нагуглил информацию по их поводу:

A build using --enable-alsa without --disable-content-sandbox would fail to initialise cubeb. We should rule out that possibility.

А у меня как раз рудиментарно оставалась опция --enable-alsa в слакбилде. Без --disable-content-sandbox. Удалил --enable-alsa и пересобрал Firefox без неё. Ошибки «OpenCubeb() failed to init cubeb» и «Вызов xcb_connection_has_error() вернул «true».» ушли.

Но, теперь постоянно вылазит сабжевая «Can't get cubeb context!». И нет аудио, да.

UPD. Проблема, по ходу, связана с sandbox'ом

MOZ_DISABLE_CONTENT_SANDBOX=1 firefox
работает идеально.

UPD 2. Выставление security.sandbox.content.level в 0 тоже помогает.

★★★★★

Последнее исправление: saahriktu (всего исправлений: 3)

Решать проблемы отключением критических секьюрити-фич

Ну окей, продолжайте наблюдение.

anonymous
()
Ответ на: комментарий от anonymous

Так все эти проблемы при работающем PulseAudio. В то время как в другом софте никаких проблем с PulseAudio нет. Только в Firefox'е. Первые 2 ошибки (тоже через PulseAudio; через ALSA Firefox уже давно не работает, поэтому я и называю опцию --enable-alsa рудиментарной) были из за того, что при сборке я не убрал опцию --enable-alsa при отсутствии --disable-content-sandbox. А если убрать опцию --enable-alsa и собрать Firefox _совсем_ без условной поддержки ALSA, то этот Firefox из коробки _не заработает через PulseAudio_, с которым у другого софта проблем нет, с сабжевой ошибкой. Потому, что нет доступа к содержимому sandbox'а, и отправлять на воспроизведение нечего.

В Гугле, кстати, много воплей о проблеме доступа к содержимому sandbox'а в Firefox'е. И кругом рекомендуют выставлять security.sandbox.content.level в 0.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 6)
Ответ на: комментарий от Harald

Нда. Ебилды гораздо сложнее слакбилдов. Тут проще цитировать Configure options из about:buildconfig.

У меня так:

--enable-application=browser --disable-tests MOZILLA_OFFICIAL=1 --enable-optimize=-O2 'CC=gcc -B/home/saahriktu/x4021/arch/slack20180/1/mozilla-firefox/gold' 'CXX=g++ -B/home/saahriktu/x4021/arch/slack20180/1/mozilla-firefox/gold' --enable-default-toolkit=cairo-gtk3 --disable-elf-hack MAKE=/usr/bin/gmake --disable-accessibility --enable-cpp-rtti --disable-crashreporter --enable-official-branding --enable-startup-notification --enable-strip --libdir=/usr/lib64 --prefix=/usr --with-system-zlib

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

И кругом рекомендуют выставлять security.sandbox.content.level в 0.

Добавь 16 в security.sandbox.content.syscall_whitelist (на странице about:config).

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Поэкспериментировал ещё с опциями sandbox'а. Добавление 16-ти в security.sandbox.content.syscall_whitelist ни на что не повлияло. Но, как выяснилось, security.sandbox.content.level можно выставить и в 2 - звук появился. По дефолту - 3.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

По wiki.mozilla.org получается, что сабжевая ошибка упирается в

Read access to most of the filesystem (Excludes themes/GTK configuration, fonts, shared data and libraries)

На уровне 3 это чтение блокируется, а на уровне 2 - нет.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Странно. Должен был помочь. У меня у самого firefox 58 + alsa. Pulseaudio нету.
Если посмотреть, что выводит firefox, то можно увидеть, что он как раз обращается (в моем случае) к syscall 16:

Sandbox: seccomp sandbox violation: pid 7797, tid 7868, syscall 16, args 57 2147767296 140272869930264 105 0 0.
Sandbox: seccomp sandbox violation: pid 7797, tid 7868, syscall 16, args 57 2147767296 140272869930280 105 0 0.
[Child 7797, MediaPlayback #2] WARNING: 7f93d0d98c40 OpenCubeb() failed to init cubeb: file /srv/firefox-58.0/dom/media/AudioStream.cpp, line 387
[Child 7797, MediaPlayback #2] WARNING: Decoder=7f93de8ed800 [OnMediaSinkAudioError]: file /srv/firefox-58.0/dom/media/MediaDecoderStateMachine.cpp, line 3642
Добавление 16 в белый список мне помогло.

yrii2121
()
Ответ на: комментарий от yrii2121

Сабжевая проблема не с инициализацией cubeb. При дефолтном значении security.sandbox.content.level выхлоп в консоль не содержит никаких упоминаний syscall'ов. По данным веб-консоли и Гугла грабли в

MediaCannotInitializePulseAudio=Unable to use PulseAudio
А по разнице между значениями security.sandbox.content.level - рабочим 2 и нерабочим 3 - получается, что грабли в том, что содержимое sandbox'а не может что-то прочитать.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Вычислил что, как минимум, при security.sandbox.content.level равном 3 для содержимого sandbox'а исчезает файл ~/.cache/mozilla/firefox/*.default/cache2/index.log:

-1 ENOENT (No such file or directory)
А вот при при security.sandbox.content.level равном 2 он уже появляется:
openat(AT_FDCWD, "/home/saahriktu/.cache/mozilla/firefox/*.default/cache2/index.log", O_RDWR|O_CREAT|O_TRUNC, 0600) = 8

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Надо запускать с переменной среды MOZ_SANDBOX_LOGGING=1, тогда Firefox будет писать много текста о том, как он пытается что-нибудь сделать, и с каким результатом. Ищешь там упоминания доступа куда-либо, выглядящие нормально, но завершившиеся с ошибкой доступа. Анализируешь, нужны ли эти ресурсы. По результатам анализа добавляешь указанные пути и системные вызовы в списки исключений в about:config.

У меня официальная сборка Firefox 58 выводит звук через apulse, если разрешить запись в /dev/snd/ и системный вызов 16. Некоторые хитрые конфигурации ALSA могут требовать права на запись и чтение ещё в какие-то директории. Всё не проверишь.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Спасибо, но я уже нашёл, что в моём случае не хватало «/home/saahriktu/.pulse» в security.sandbox.content.read_path_whitelist. Тогда можно и чтобы security.sandbox.content.level был выставлен в 3.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

у меня

--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --enable-application=browser --disable-tests PKG_CONFIG=x86_64-pc-linux-gnu-pkg-config CC=x86_64-pc-linux-gnu-gcc LD=x86_64-pc-linux-gnu-ld CXX=x86_64-pc-linux-gnu-g++ HOST_CC=x86_64-pc-linux-gnu-gcc HOST_CXX=x86_64-pc-linux-gnu-g++ 'BINDGEN_CFLAGS=-I/usr/include/nspr -I/usr/include/pixman-1' --disable-debug-symbols --enable-release --enable-system-ffi --enable-default-toolkit=cairo-gtk3 --with-google-api-keyfile=/var/tmp/portage/www-client/firefox-57.0.4/work/firefox-57.0.4/google-api-key MAKE=make XARGS=/usr/bin/xargs --enable-system-hunspell --enable-alsa --enable-content-sandbox --disable-crashreporter --enable-dbus --enable-extensions=default --disable-gconf --disable-install-strip --disable-necko-wifi --enable-official-branding --enable-optimize --enable-pie --disable-pulseaudio --enable-startup-notification --disable-strip --disable-system-sqlite --disable-updater --libdir=/usr/lib64 --prefix=/usr --with-default-mozilla-five-home=/usr/lib64/firefox --with-intl-api --with-nspr-prefix=/usr --with-nss-prefix=/usr --with-system-bz2 --without-system-icu --without-system-jpeg --without-system-libvpx --with-system-nspr --with-system-nss --with-system-png --with-system-zlib --x-includes=/usr/include --x-libraries=/usr/lib64
Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.