chromium-browser: segfault related to WebRTC
While calling someone on jitsi w/ screenshare, chromium-browser segfaults after a random amount of time :(
My setup:
- Alpine Edge
- first noticed on Chromium 102.0.5005.115, still occurs after update to latest 103.0.5060.53
- ALSA, no pulseaudio/pipewire
- Linux 5.15.48-0-lts, musl 1.2.3
- Xorg
some info from gdb:
Thread 24 "ThreadPoolForeg" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 20683]
0x00007ffff7fb7836 in strlen () from /lib/ld-musl-x86_64.so.1
(gdb) bt
#0 0x00007ffff7fb7836 in strlen () from /lib/ld-musl-x86_64.so.1
#1 0x00005555573e195e in ?? ()
#2 0x00007fffe9e2f2a0 in ?? ()
#3 0x0000000000000000 in ?? ()
(gdb) i r
rax 0xffffffffffffffff -1
rbx 0xffffffffffffffff -1
rcx 0x0 0
rdx 0x7fffec795388 140737160762248
rsi 0xffffffffffffffff -1
rdi 0xffffffffffffffff -1
rbp 0x7fffea0ca5a0 0x7fffea0ca5a0
rsp 0x7fffec795348 0x7fffec795348
r8 0x7fffea0ca5a0 140737120085408
r9 0xb 11
r10 0x7fffea0ca5cc 140737120085452
r11 0x0 0
r12 0x1 1
r13 0x7fffea0ca5a0 140737120085408
r14 0x7fffea0ca5a0 140737120085408
r15 0x0 0
rip 0x7ffff7fb7836 0x7ffff7fb7836 <strlen+7>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
--Type <RET> for more, q to quit, c to continue without paging--
gs 0x0 0
(gdb)
end of strace:
(...)
getrandom("\xaf\x39\xfe\xf9\x44\x1a\x70\x1a\xbb\x78\x93\x6b\x31\x13\x72\xad", 16, 0) = 16
unlink("/dev/shm/.org.chromium.Chromium.iedaBK") = 0
fcntl(90, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
sendmsg(159, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\1\0\0\20\0\1\0\1\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=264}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[90]}], msg_controllen=20, msg_flags=0}, MSG_NOSIGNAL) = 264
close(90) = 0
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 0) = 1 ([{fd=12, revents=POLLIN}])
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
read(12, "!", 2) = 1
open("/dev/shm/.org.chromium.Chromium.KEcFhl", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 90
fstat(90, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
ftruncate(90, 1029120) = 0
fallocate(90, 0, 0, 1029120) = 0
getrandom("\x96\x79\x26\x19\x3d\x5b\x72\x7a\xf6\xb1\x88\x7a\xdf\xe7\xea\x27", 16, 0) = 16
unlink("/dev/shm/.org.chromium.Chromium.KEcFhl") = 0
fcntl(90, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
sendmsg(159, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\1\0\0\20\0\1\0\1\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=264}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[90]}], msg_controllen=20, msg_flags=0}, MSG_NOSIGNAL) = 264
close(90) = 0
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 9989) = 1 ([{fd=12, revents=POLLIN}])
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
read(12, "!", 2) = 1
open("/dev/shm/.org.chromium.Chromium.GaJClF", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 90
fstat(90, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
ftruncate(90, 2058240) = 0
fallocate(90, 0, 0, 2058240) = 0
getrandom("\x2d\x36\xbd\x01\x50\xf4\x5a\x0f\x54\xa7\xfa\x33\xbd\x48\x97\x7e", 16, 0) = 16
unlink("/dev/shm/.org.chromium.Chromium.GaJClF") = 0
fcntl(90, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
sendmsg(159, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\1\0\0\20\0\1\0\1\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=264}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[90]}], msg_controllen=20, msg_flags=0}, MSG_NOSIGNAL) = 264
close(90) = 0
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 0) = 1 ([{fd=12, revents=POLLIN}])
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
read(12, "!", 2) = 1
open("/dev/shm/.org.chromium.Chromium.fFJndd", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 90
fstat(90, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
ftruncate(90, 1029120) = 0
fallocate(90, 0, 0, 1029120) = 0
getrandom("\x7c\xa4\xfa\xf2\x33\xcf\x8c\x4e\x38\xeb\xe3\xa6\xe0\xd3\xf0\xc3", 16, 0) = 16
unlink("/dev/shm/.org.chromium.Chromium.fFJndd") = 0
fcntl(90, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
sendmsg(159, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\1\0\0\20\0\1\0\1\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=264}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[90]}], msg_controllen=20, msg_flags=0}, MSG_NOSIGNAL) = 264
close(90) = 0
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(24, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(31, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=24, events=POLLIN}, {fd=31, events=POLLIN}], 4, 9949[0630/213426.258784:ERROR:scoped_ptrace_attach.cc(27)] ptrace: Operation not permitted (1)
) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
+++ killed by SIGSEGV +++
Segmentation fault