Intereting Posts
присоединиться к выходу схваток Интерфейс br0 не передает трафик Есть ли лучшая альтернатива судоидиту? Какие средства командной строки можно подключить из Unix к удаленным Windows? Могу ли я добавить правило iptables изнутри программы C Linux только с возможностями или мне нужно обязательно root? Почему мой экранизированный сценарий не работает? Почему «человек CMD» ничего не показывает? Bourne Shell для CShell почему systemd cryptsetup пытается перемонтировать уже установленный корневой раздел? Как захватить stdin в переменную без удаления любых завершающих строк? mdadm – размер массива RAID5 по сравнению с фактическим несоответствием размера диска Ошибка загрузки Arch Linux: проверка Fsck на монте LVM / var не выполняется Xargs с несколькими записями аргументов – используйте аргумент переменной окружения после sh -c '…' Как остановить брандмауэр от записи журналов в / var / log / messages? Не удается установить Debian на QEmu-arm

У меня проблемы с анализом причины этого (firefox) segfault

Когда выполняется в минимальном (непривилегированном) контейнере LXC, firefox segfaults (другие графические приложения работают нормально).

Я не могу найти точную причину этого segfault (что, скорее всего, связано с недостаточными разрешениями или недостающими ресурсами).

# strace /usr/bin/firefox ... open("/usr/lib/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 26 read(26,"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0007\0\0\0\0\0\0"..., 832) = 832 fstat(26, {st_mode=S_IFREG|0755, st_size=544424, ...}) = 0 mmap(NULL, 2619144, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 26, 0) = 0x7f269bf1e000 mprotect(0x7f269bf97000, 2097152, PROT_NONE) = 0 mmap(0x7f269c197000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 26, 0x79000) = 0x7f269c197000 mmap(0x7f269c19a000, 14088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f269c19a000 close(26) = 0 mprotect(0x7f269c197000, 8192, PROT_READ) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x20} --- unlink("/home/root/.mozilla/firefox/xqa348dr.default/lock") = 0 close(6) = 0 rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_RESTORER, 0x7f26bafb5e80}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [SEGV], NULL, 8) = 0 tgkill(228, 228, SIGSEGV) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_TKILL, si_pid=228, si_uid=0} --- +++ killed by SIGSEGV (core dumped) +++ Segmentation fault (core dumped) 

Предпосылки: Firefox выполняется в минимальном непривилегированном контейнере LXC (нет init, а не целого дистрибутива, просто firefox и его зависимостей). Поэтому я предполагаю, что эта проблема связана с возможными недостаточными разрешениями или несуществующими ресурсами, к которым должен обращаться Firefox. Внутри этого контейнера тривиальные графические программы, такие как «xclock» и даже аппаратные ускоренные программы, такие как «glxgears». Возможно, проблема с firefox не работает с dbus (я не знаю, правильно ли она настроена — все, что я сделал, это cp /etc/machine-id /container/etc/ ).

ОБНОВЛЕНИЕ: я смог решить проблему. В контейнере отсутствовала зависимость firefox (на данный момент я не могу сказать, какой из них, потому что я взял наполовину способ установить все содержимое пакета в контейнеры rootfs).

UPDATE2: Меня все еще интересует, как узнать точную причину вышеупомянутого segfault.