syzbot


panic: WARNING: circular locking detected: cgroupfs.pidsControllerMutex -> mm.mappingRWMutex:

Status: fixed on 2022/06/17 03:16
Fix commit: d5a04e338eef cgroupfs: Don't copy in with cgroups locks held.
First crash: 896d, last: 895d

Sample crash report:
panic: WARNING: circular locking detected: cgroupfs.pidsControllerMutex -> mm.mappingRWMutex:
goroutine 61952 [running]:
gvisor.dev/gvisor/pkg/log.Stacks(0x0)
	pkg/log/log.go:316 +0xd3
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc000235780, 0xc000444d00, {0xc0019dac20, 0x3, 0x4})
	pkg/sync/locking/lockdep.go:56 +0x225
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc000844da0, 0xc002f9c328)
	pkg/sync/locking/lockdep.go:76 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc000844d80, 0xc002f9c440)
	bazel-out/k8-fastbuild-ST-a4501ad48192/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:441 +0x334
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc000235780, 0xc000844d80, {0xc002a22670, 0x2, 0x2})
	pkg/sync/locking/lockdep.go:73 +0x4aa
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc000444620, 0xc002f9c578)
	pkg/sync/locking/lockdep.go:76 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc000444600, 0xc002f9c690)
	bazel-out/k8-fastbuild-ST-a4501ad48192/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:441 +0x334
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc000235780, 0xc000444600, {0xc0034c0b48, 0x1, 0x1})
	pkg/sync/locking/lockdep.go:73 +0x4aa
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc0004445a0, 0xc002f9c7c8)
	pkg/sync/locking/lockdep.go:76 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc000444580, 0xc002f9c8e0)
	bazel-out/k8-fastbuild-ST-a4501ad48192/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:441 +0x334
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc000235780, 0xc000444580, {0x0, 0x0, 0x0})
	pkg/sync/locking/lockdep.go:73 +0x4aa
gvisor.dev/gvisor/pkg/sync/locking.AddGLock(0xc000235780, 0x0)
	pkg/sync/locking/lockdep.go:107 +0x33e
gvisor.dev/gvisor/pkg/sentry/mm.(*mappingRWMutex).RLock(0xc0036cf064)
	bazel-out/k8-fastbuild-ST-a4501ad48192/bin/pkg/sentry/mm/mapping_mutex.go:46 +0x53
gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).withInternalMappings(0xc0036cf000, {0x1c0e8f0, 0xc0029bca80}, {0xc0020a9400, 0x44}, {0x2c, 0xfc, 0x46}, 0x0, 0xc002f9cc60)
	pkg/sentry/mm/io.go:530 +0x14b
gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).CopyIn(0xc0036cf000, {0x1c0e8f0, 0xc0029bca80}, 0x5e9125, {0xc0007fb000, 0x0, 0x1000}, {0x59, 0x0})
	pkg/sentry/mm/io.go:163 +0x2c5
gvisor.dev/gvisor/pkg/usermem.CopyInVec({0x1c0e8f0, 0xc0029bca80}, {0x1c02128, 0xc0036cf000}, {0x0, 0x470e65, 0xdb3985, 0x17e9040}, {0xc0007fb000, 0x1000, ...}, ...)
	pkg/usermem/usermem.go:287 +0x276
gvisor.dev/gvisor/pkg/usermem.IOSequence.CopyIn({{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, 0x1}}, {0x1c0e8f0, 0xc0029bca80}, ...)
	pkg/usermem/usermem.go:491 +0xf9
gvisor.dev/gvisor/pkg/sentry/fsimpl/cgroupfs.(*pidsMaxData).Write(0xc0034c0a28, {0x1c0e8f0, 0xc0029bca80}, 0xc0020a9580, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, ...}, ...)
	pkg/sentry/fsimpl/cgroupfs/pids.go:276 +0x206
gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).pwriteLocked(0xc0003ba9a0, {0x1c0e8f0, 0xc0029bca80}, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, ...}}, ...)
	pkg/sentry/vfs/file_description_impl_util.go:381 +0x331
gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).Write(0xc0003ba9a0, {0x1c0e8f0, 0xc0029bca80}, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, ...}}, ...)
	pkg/sentry/vfs/file_description_impl_util.go:402 +0x136
gvisor.dev/gvisor/pkg/sentry/fsimpl/kernfs.(*DynamicBytesFD).Write(0xc0003ba9a0, {0x1c0e8f0, 0xc0029bca80}, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, ...}}, ...)
	pkg/sentry/fsimpl/kernfs/dynamic_bytes_file.go:125 +0xac
gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).Write(0xc0003baa00, {0x1c0e8f0, 0xc0029bca80}, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, ...}}, ...)
	pkg/sentry/vfs/file_description.go:665 +0x14c
gvisor.dev/gvisor/pkg/sentry/syscalls/linux/vfs2.write(0x0, 0x129c220, {{0x1c02128, 0xc0036cf000}, {0x0, 0x1, 0x0, 0x3b}, {0x0, 0x1}}, ...)
	pkg/sentry/syscalls/linux/vfs2/read_write.go:348 +0xae
gvisor.dev/gvisor/pkg/sentry/syscalls/linux/vfs2.Write(0xc0029bca80, {{0x4}, {0x0}, {0x3b}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/syscalls/linux/vfs2/read_write.go:317 +0x36f
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc0029bca80, 0x1, {{0x4}, {0x0}, {0x3b}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:142 +0xaf7
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc0029bca80, 0x1, {{0x4}, {0x0}, {0x3b}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:322 +0x8e
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc00252e1e0, 0x1, {{0x4}, {0x0}, {0x3b}, {0x0}, {0x0}, {0x0}})
	pkg/sentry/kernel/task_syscall.go:282 +0xc5
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc0029bca80)
	pkg/sentry/kernel/task_syscall.go:257 +0x4c7
gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc0029bca80, 0xc0029bca80)
	pkg/sentry/kernel/task_run.go:253 +0x19fc
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc0029bca80, 0x3e9)
	pkg/sentry/kernel/task_run.go:94 +0x2d4
created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start
	pkg/sentry/kernel/task_start.go:370 +0x1d1

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/06/15 12:49 gvisor 1ff543e17ee3 1719ee24 .config console log report info ci-gvisor-ptrace-3-race-cover panic: WARNING: circular locking detected: cgroupfs.pidsControllerMutex -> mm.mappingRWMutex:
2022/06/14 09:55 gvisor 82498d087ef8 9ce2c85a .config console log report info ci-gvisor-ptrace-3-race-cover panic: WARNING: circular locking detected: cgroupfs.pidsControllerMutex -> mm.mappingRWMutex:
2022/06/14 07:14 gvisor 82498d087ef8 0f087040 .config console log report info ci-gvisor-ptrace-3-race-cover panic: WARNING: circular locking detected: cgroupfs.pidsControllerMutex -> mm.mappingRWMutex:
* Struck through repros no longer work on HEAD.