이 (firefox) 세그폴트의 원인을 분석할 수 없습니다.

이 (firefox) 세그폴트의 원인을 분석할 수 없습니다.

최소(권한이 없는) LXC 컨테이너에서 실행하는 경우,파이어폭스 세그폴트(다른 그래픽 응용 프로그램은 잘 작동합니다.)

이 분할 오류의 정확한 원인을 찾을 수 없습니다.(이는 권한이 부족하거나 리소스가 부족하기 때문일 가능성이 높습니다.)

# 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 컨테이너(초기화 없음, 전체 배포가 아닌 Firefox 및 해당 종속성)에서 실행됩니다. 따라서 이 문제는 불충분하거나 존재하지 않는 리소스에 액세스해야 하는 Firefox와 관련이 있을 수 있다고 생각합니다. 이 컨테이너 내에서는 "xclock"과 같은 간단한 그래픽 프로그램이나 "glxgears"와 같은 하드웨어 가속 프로그램도 작동할 수 있습니다. 아마도 Firefox가 작동하지 않는 문제는 dbus와 관련이 있을 것입니다(올바르게 설정되었는지는 모르겠습니다. 그게 제가 한 전부입니다 cp /etc/machine-id /container/etc/).

고쳐 쓰다:이 문제를 해결할 수 있었습니다. 컨테이너에 firefox에 대한 종속성이 없습니다(모든 패키지 콘텐츠를 컨테이너의 rootfs에 마운트하는 어설픈 접근 방식을 취했기 때문에 지금은 어느 것인지 알 수 없습니다).

업데이트 2:위 세그폴트의 정확한 원인을 찾는 방법에 여전히 관심이 있습니다.

관련 정보