syzbot


panic: WARNING: circular locking detected: fasync.fileMutex -> kernel.taskSetRWMutex: (2)

Status: fixed on 2023/06/26 09:18
Fix commit: fedbf08401fe kernel: unshare a network namespace without taking Task.mu
First crash: 525d, last: 525d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
gvisor panic: WARNING: circular locking detected: fasync.fileMutex -> kernel.taskSetRWMutex: C 1 539d 539d 26/26 fixed on 2023/06/09 02:12

Sample crash report:
panic: WARNING: circular locking detected: fasync.fileMutex -> kernel.taskSetRWMutex:
goroutine 263 [running]:
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc0003ae140, 0xc000bcdfd8)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x31d
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0003aeb40, 0xc0003ae120, {0xc0006c5000, 0x3, 0x4})
	pkg/sync/locking/lockdep.go:112 +0x4e6
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc0002cfea0?, 0xc000bce108?)
	pkg/sync/locking/lockdep.go:115 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc0002cfe80, 0xc000bce218)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x31d
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0003aeb40, 0xc0002cfe60, {0xc000c1b040, 0x2, 0x2})
	pkg/sync/locking/lockdep.go:112 +0x4e6
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc0002cfe10?, 0xc000bce348?)
	pkg/sync/locking/lockdep.go:115 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc0002cfdf0, 0xc000bce458)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x31d
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0003aeb40, 0xc0002cfdd0, {0xc00082a7a0, 0x1, 0x1})
	pkg/sync/locking/lockdep.go:112 +0x4e6
gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc0003aef70?, 0xc000bce588?)
	pkg/sync/locking/lockdep.go:115 +0x7a
gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc0003aef50, 0xc000bce698)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x31d
gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0003aeb40, 0xc0003aef30, {0x0, 0x0, 0x0})
	pkg/sync/locking/lockdep.go:112 +0x4e6
gvisor.dev/gvisor/pkg/sync/locking.AddGLock(0xc0003aeb40, 0xffffffffffffffff)
	pkg/sync/locking/lockdep.go:144 +0x385
gvisor.dev/gvisor/pkg/sentry/kernel.(*taskSetRWMutex).RLock(0xc0005eacb0)
	bazel-out/k8-fastbuild-ST-3dcbe13c9b87/bin/pkg/sentry/kernel/taskset_mutex.go:59 +0x58
gvisor.dev/gvisor/pkg/sentry/kernel.(*ThreadGroup).Leader(0xc000a35000)
	pkg/sentry/kernel/threads.go:403 +0x8b
gvisor.dev/gvisor/pkg/sentry/kernel/fasync.(*FileAsync).NotifyEvent(0xc0001e6540, 0x41)
	pkg/sentry/kernel/fasync/fasync.go:106 +0x25a
gvisor.dev/gvisor/pkg/waiter.(*Queue).Notify(0xc0001fd740, 0x41)
	pkg/waiter/waiter.go:238 +0x106
gvisor.dev/gvisor/pkg/tcpip/transport/packet.(*endpoint).HandlePacket(0xc0002c2700, 0x1, 0x86dd, 0xc000284780)
	pkg/tcpip/transport/packet/endpoint.go:473 +0x785
gvisor.dev/gvisor/pkg/tcpip/stack.(*nic).DeliverLinkPacket.func2({0x7572c0, 0xc0002c2700})
	pkg/tcpip/stack/nic.go:772 +0x3af
gvisor.dev/gvisor/pkg/tcpip/stack.(*packetEndpointList).forEach(0xc0001fd800, 0xc000bcf940)
	pkg/tcpip/stack/nic.go:130 +0x166
gvisor.dev/gvisor/pkg/tcpip/stack.(*nic).DeliverLinkPacket(0xc00083e000, 0x86dd, 0xc000284000)
	pkg/tcpip/stack/nic.go:787 +0x2a7
gvisor.dev/gvisor/pkg/tcpip/link/nested.(*Endpoint).DeliverLinkPacket(0xc00055a370, 0x1?, 0x0?)
	pkg/tcpip/link/nested/nested.go:69 +0xc6
gvisor.dev/gvisor/pkg/tcpip/link/packetsocket.(*endpoint).WritePackets(0xc00055a370, {{0xc00082a780, 0x1, 0x1}})
	pkg/tcpip/link/packetsocket/packetsocket.go:52 +0xc5
gvisor.dev/gvisor/pkg/tcpip/stack.(*delegatingQueueingDiscipline).WritePacket(0xc000c1a2e0, 0xc00055a370?)
	pkg/tcpip/stack/nic.go:146 +0xa9
gvisor.dev/gvisor/pkg/tcpip/stack.(*nic).writeRawPacket(0xc00083e000, 0xc000284000)
	pkg/tcpip/stack/nic.go:392 +0x93
gvisor.dev/gvisor/pkg/tcpip/stack.(*nic).writePacket(0xc00083e000, 0x100000000000000?)
	pkg/tcpip/stack/nic.go:386 +0x71
gvisor.dev/gvisor/pkg/tcpip/stack.(*nic).WritePacket(0xc00083e000, 0xc00000ffca?, 0xc000284000)
	pkg/tcpip/stack/nic.go:347 +0x246
gvisor.dev/gvisor/pkg/tcpip/network/ipv6.(*endpoint).writePacket(0xc000769500, 0xc0004c4600, 0xc000284000, 0x98214e?, 0x0)
	pkg/tcpip/network/ipv6/ipv6.go:878 +0x4e6
gvisor.dev/gvisor/pkg/tcpip/network/ipv6.(*endpoint).WritePacket(0xc000769500, 0xc0004c4600, {0x86dd?, 0x0?, 0x0?}, 0x128447b?)
	pkg/tcpip/network/ipv6/ipv6.go:829 +0x43f
gvisor.dev/gvisor/pkg/tcpip/stack.(*Route).WritePacket(0xc0004c4600, {0x128284c?, 0x0?, 0x0?}, 0x128447b?)
	pkg/tcpip/stack/route.go:495 +0x139
gvisor.dev/gvisor/pkg/tcpip/transport/internal/network.(*WriteContext).WritePacket(0xc000bd0478, 0xc000284000, 0x0)
	pkg/tcpip/transport/internal/network/endpoint.go:320 +0x218
gvisor.dev/gvisor/pkg/tcpip/transport/udp.(*endpoint).write(0xc00057bc00, {0x762b08, 0xc000274b40}, {0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, ...}})
	pkg/tcpip/transport/udp/endpoint.go:529 +0x5cd
gvisor.dev/gvisor/pkg/tcpip/transport/udp.(*endpoint).Write(0xc00057bc00, {0x762b08, 0xc000274b40}, {0x0, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, ...}})
	pkg/tcpip/transport/udp/endpoint.go:366 +0x98
gvisor.dev/gvisor/pkg/sentry/socket/netstack.(*sock).Write(0xc000318780, {0x7737e0?, 0xc000644a80}, {{0x76d3f0, 0xc000a81000}, {0x0, 0x1, 0x0, 0x0}, {0x0, ...}}, ...)
	pkg/sentry/socket/netstack/netstack.go:482 +0x243
gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).Write(0xc000318780, {0x7737e0, 0xc000644a80}, {{0x76d3f0, 0xc000a81000}, {0x0, 0x1, 0x0, 0x0}, {0x0, ...}}, ...)
	pkg/sentry/vfs/file_description.go:679 +0x152
gvisor.dev/gvisor/pkg/sentry/syscalls/linux.write(0xc00055c4e0?, 0xc000215520?, {{0x76d3f0, 0xc000a81000}, {0x0, 0x1, 0x0, 0x0}, {0x0, 0x1}}, ...)
	pkg/sentry/syscalls/linux/sys_read_write.go:347 +0xae
gvisor.dev/gvisor/pkg/sentry/syscalls/linux.Write(0xc000644a80, 0x1?, {{0x6}, {0x0}, {0x0}, {0x1}, {0x1}, {0x1}})
	pkg/sentry/syscalls/linux/sys_read_write.go:316 +0x34f
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc000644a80, 0x1, {{0x6}, {0x0}, {0x0}, {0x1}, {0x1}, {0x1}})
	pkg/sentry/kernel/task_syscall.go:142 +0xabf
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc000644a80, 0x1?, {{0x6}, {0x0}, {0x0}, {0x1}, {0x1}, {0x1}})
	pkg/sentry/kernel/task_syscall.go:322 +0x8e
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc000baa3c0?, 0xc000215b37?, {{0x6}, {0x0}, {0x0}, {0x1}, {0x1}, {0x1}})
	pkg/sentry/kernel/task_syscall.go:282 +0xc5
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc000644a80)
	pkg/sentry/kernel/task_syscall.go:257 +0x53b
gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc000644a80?, 0xc000644a80)
	pkg/sentry/kernel/task_run.go:269 +0x22b4
gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc000644a80, 0x9)
	pkg/sentry/kernel/task_run.go:98 +0x35b
created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start
	pkg/sentry/kernel/task_start.go:383 +0x1da

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/06/19 22:16 gvisor d31be26ed544 d521bc56 .config console log report syz C ci-gvisor-systrap-1-race-cover panic: WARNING: circular locking detected: fasync.fileMutex -> kernel.taskSetRWMutex:
* Struck through repros no longer work on HEAD.