syzbot


panic: WARNING: circular locking detected: mm.activeRWMutex -> tmpfs.filesystemRWMutex:

Status: fixed on 2023/11/02 02:06
Fix commit: e1e7edcc1b67 Don't release unused RightsControlMessage in Recv.
First crash: 219d, last: 219d

Sample crash report:
panic: WARNING: circular locking detected: mm.activeRWMutex -> tmpfs.filesystemRWMutex:
goroutine 2106126 [running]:
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc00034c9b0, 0xc001f156d8)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x1dc
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc00034ce10, 0xc00034c990, {0x0, 0x0, 0x0})
	pkg/sync/locking/lockdep.go:112 +0x473
gvisor.dev/gvisor/pkg/sync/locking.AddGLock(0xc00034ce10, 0xffffffffffffffff)
	pkg/sync/locking/lockdep.go:144 +0x2dc
gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystemRWMutex).RLock(0xc0003563c0)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sentry/fsimpl/tmpfs/filesystem_mutex.go:59 +0x3c
gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*dentry).InotifyWithParent(0xc00075a550, {0x7e61b8, 0xc03b6e2a80}, 0x10, 0xc0?, 0x45?)
	pkg/sentry/fsimpl/tmpfs/tmpfs.go:470 +0xdf
gvisor.dev/gvisor/pkg/sentry/vfs.(*Dentry).InotifyWithParent(0xc00075a550, {0x7e61b8, 0xc03b6e2a80}, 0x12dbbd1?, 0x0?, 0xec?)
	pkg/sentry/vfs/dentry.go:188 +0x75
gvisor.dev/gvisor/pkg/sentry/socket/control.(*RightsFiles).Release.(*FileDescription).DecRef.func1()
	pkg/sentry/vfs/file_description.go:167 +0xa5
gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescriptionRefs).DecRef(0xc14b3ecf00, 0xc001f15af8)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sentry/vfs/file_description_refs.go:132 +0x56
gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).DecRef(...)
	pkg/sentry/vfs/file_description.go:161
gvisor.dev/gvisor/pkg/sentry/socket/control.(*RightsFiles).Release(0xc03b358330, {0x7e61b8, 0xc03b6e2a80})
	pkg/sentry/socket/control/control.go:707 +0xb3
gvisor.dev/gvisor/pkg/sentry/socket/unix/transport.(*streamQueueReceiver).Recv.func1()
	pkg/sentry/socket/unix/transport/unix.go:512 +0xa2
gvisor.dev/gvisor/pkg/sentry/socket/unix/transport.(*streamQueueReceiver).Recv(0xc03bb0c600, {0x7e61b8, 0xc03b6e2a80}, {0xc03b3583c0, 0x1, 0x1}, 0x0, 0x0, 0x0)
	pkg/sentry/socket/unix/transport/unix.go:624 +0x137d
gvisor.dev/gvisor/pkg/sentry/socket/unix/transport.(*baseEndpoint).RecvMsg(0xc03ab52160, {0x7e61b8, 0xc03b6e2a80}, {0xc03b3583c0, 0x1, 0x1}, 0x10?, 0xc0002aa2f0?, 0xf0?, 0x0)
	pkg/sentry/socket/unix/transport/unix.go:880 +0x11a
gvisor.dev/gvisor/pkg/sentry/socket/unix.(*EndpointReader).ReadToBlocks.func1({0xc03b3583c0, 0x1, 0x1})
	pkg/sentry/socket/unix/io.go:115 +0x147
gvisor.dev/gvisor/pkg/safemem.FromVecReaderFunc.ReadToBlocks({0xc00034cec0?}, {0x7f5fb6402340?, 0x1000?, 0xffffffffffffffff?, 0x12dba29?})
	pkg/safemem/io.go:282 +0x3e8
gvisor.dev/gvisor/pkg/sentry/socket/unix.(*EndpointReader).ReadToBlocks(0xc03b4f7c00, {0x7f5fb6402340?, 0x20002340?, 0xffffffffffffffff?, 0x7f5fb6402340?})
	pkg/sentry/socket/unix/io.go:124 +0x77
gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).withInternalMappings(0xc03a781000, {0x7e61b8, 0xc03b6e2a80}, {0xc001f16518?, 0x15d73ce?}, {0xd9?, 0x9e?, 0x2d?}, 0x1?, 0xc001f166f0)
	pkg/sentry/mm/io.go:522 +0x187
gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).withVecInternalMappings(0xc03a781000, {0x7e61b8, 0xc03b6e2a80}, {0x0?, 0xc000aca340?, 0xc001f16728?, 0x12dba29?}, {0x0, 0x1, 0x0}, ...)
	pkg/sentry/mm/io.go:591 +0x69b
gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).CopyOutFrom(0xc03a781000, {0x7e61b8, 0xc03b6e2a80}, {0x0?, 0x0?, 0xc03ad99da0?, 0x0?}, {0x7c9d80?, 0xc03b4f7c00?}, {0x0, ...})
	pkg/sentry/mm/io.go:273 +0x295
gvisor.dev/gvisor/pkg/usermem.IOSequence.CopyOutFrom(...)
	pkg/usermem/usermem.go:508
gvisor.dev/gvisor/pkg/sentry/socket/unix.(*Socket).RecvMsg.func1()
	pkg/sentry/socket/unix/unix.go:745 +0xf5
gvisor.dev/gvisor/pkg/sentry/socket/unix.(*Socket).RecvMsg(0xc03a58c0c0, 0xc03b6e2a80, {{0x7df3d8, 0xc03a781000}, {0x0, 0x1, 0x20002340, 0x1000}, {0x0, 0x1}}, ...)
	pkg/sentry/socket/unix/unix.go:802 +0x87d
gvisor.dev/gvisor/pkg/sentry/syscalls/linux.recvSingleMsg(0xc03b6e2a80, {0x7f6fe0, 0xc03a58c0c0}, 0x200002c0, 0x0, 0x0?, {0x0?})
	pkg/sentry/syscalls/linux/sys_socket.go:812 +0x268
gvisor.dev/gvisor/pkg/sentry/syscalls/linux.RecvMsg(0xc03b6e2a80, 0xc001f17598?, {{0x3}, {0x200002c0}, {0x0}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/syscalls/linux/sys_socket.go:656 +0x338
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc03b6e2a80, 0x2f, {{0x3}, {0x200002c0}, {0x0}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:142 +0x8b5
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc03b6e2a80, 0x24f6e00?, {{0x3}, {0x200002c0}, {0x0}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:322 +0x6c
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc001f17b58?, 0x20667d9?, {{0x3}, {0x200002c0}, {0x0}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:282 +0x87
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc03b6e2a80)
	pkg/sentry/kernel/task_syscall.go:257 +0x4f0
gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc03b6e2a80?, 0xc03b6e2a80)
	pkg/sentry/kernel/task_run.go:269 +0x1e08
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc03b6e2a80, 0xb349)
	pkg/sentry/kernel/task_run.go:98 +0x43b
created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 2108681
	pkg/sentry/kernel/task_start.go:391 +0x1ae

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/10/19 14:43 gvisor 29a8856da7ba f62755ed .config console log report info ci-gvisor-ptrace-2-race panic: WARNING: circular locking detected: mm.activeRWMutex -> tmpfs.filesystemRWMutex:
* Struck through repros no longer work on HEAD.