syzbot


panic: WARNING: circular locking detected: tmpfs.filesystemRWMutex -> pipe.pipeMutex:

Status: moderation: reported on 2024/11/25 23:32
Reported-by: syzbot+566cf8b809e7b145c221@syzkaller.appspotmail.com
First crash: 7d14h, last: 7d14h

Sample crash report:
panic: WARNING: circular locking detected: tmpfs.filesystemRWMutex -> pipe.pipeMutex:
	goroutine 207060 [running]:
	gvisor.dev/gvisor/pkg/sentry/kernel/pipe.(*pipeMutex).Lock(0xc0082533bc)
		bazel-out/k8-fastbuild/bin/pkg/sentry/kernel/pipe/pipe_mutex.go:35 +0x3c
	gvisor.dev/gvisor/pkg/sentry/kernel/pipe.(*Pipe).wOpen(0xc008253380)
		pkg/sentry/kernel/pipe/pipe.go:334 +0x3d
	gvisor.dev/gvisor/pkg/sentry/kernel/pipe.(*VFSPipe).ReaderWriterPair(0xc008253380, {0x1f8d2e0, 0xc0154f2c88}, 0xc00022e2c0, 0xc008749680, 0x0)
		pkg/sentry/kernel/pipe/vfs.go:65 +0x1d4
	gvisor.dev/gvisor/pkg/sentry/fsimpl/pipefs.NewConnectedPipeFDs({0x1f8d2e0, 0xc0154f2c88}, 0xc00022e2c0, 0x0)
		pkg/sentry/fsimpl/pipefs/pipefs.go:213 +0x24a
	gvisor.dev/gvisor/pkg/sentry/syscalls/linux.pipe2(0xc0154f2c88, 0x20000140, 0x0)
		pkg/sentry/syscalls/linux/sys_pipe.go:45 +0xde
	gvisor.dev/gvisor/pkg/sentry/syscalls/linux.Pipe(0xc0154f2c88, 0xca?, {{0x20000140}, {0x0}, {0x0}, {0x0}, {0x0}, {0x0}})
		pkg/sentry/syscalls/linux/sys_pipe.go:31 +0x2e
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc0154f2c88, 0x16, {{0x20000140}, {0x0}, {0x0}, {0x0}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:143 +0x995
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc0154f2c88, 0x16, {{0x20000140}, {0x0}, {0x0}, {0x0}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:323 +0x72
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc0154f2c88, 0x16, {{0x20000140}, {0x0}, {0x0}, {0x0}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:283 +0x94
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc0154f2c88)
		pkg/sentry/kernel/task_syscall.go:258 +0x4b0
	gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc0154f2c88?, 0xc0154f2c88)
		pkg/sentry/kernel/task_run.go:269 +0x1fae
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc0154f2c88, 0xfb43)
		pkg/sentry/kernel/task_run.go:97 +0x4fb
	created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 207048
		pkg/sentry/kernel/task_start.go:400 +0x165
	
	known lock chain: pipe.pipeMutex -> tmpfs.filesystemRWMutex
	
	====== pipe.pipeMutex -> tmpfs.filesystemRWMutex =====
	goroutine 21632 [running]:
	gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystemRWMutex).RLock(0xc000555728)
		bazel-out/k8-fastbuild/bin/pkg/sentry/fsimpl/tmpfs/filesystem_mutex.go:59 +0x3c
	gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystem).StatAt(0xc0005556c0, {0x1f8d2e0, 0xc001b9cc88}, 0xc001980488, {0x0?, 0x0?})
		pkg/sentry/fsimpl/tmpfs/filesystem.go:760 +0x97
	gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).StatAt(0xc0002851e0, {0x1f8d2e0, 0xc001b9cc88}, 0xc0023af620, 0xc00214cb58, 0xc00214c988)
		pkg/sentry/vfs/vfs.go:646 +0x197
	gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).GenerateProcMountInfo(0xc0002851e0, {0x1f8d2e0, 0xc001b9cc88}, {0xc002970fd0?, 0xc006114408?}, 0xc001b8a2c0)
		pkg/sentry/vfs/mount.go:1471 +0x5a7
	gvisor.dev/gvisor/pkg/sentry/fsimpl/proc.(*mountInfoData).Generate(0xc00250ce08, {0x1f8d2e0, 0xc001b9cc88}, 0xc001b8a2c0)
		pkg/sentry/fsimpl/proc/task_files.go:1199 +0x285
	gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).preadLocked(0xc001b8a2a0, {0x1f8d2e0, 0xc001b9cc88}, {{0x1f84890, 0xc00bc8fa80}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...)
		pkg/sentry/vfs/file_description_impl_util.go:310 +0x195
	gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).Read(0xc001b8a2a0, {0x1f8d2e0, 0xc001b9cc88}, {{0x1f84890, 0xc00bc8fa80}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...)
		pkg/sentry/vfs/file_description_impl_util.go:337 +0x11a
	gvisor.dev/gvisor/pkg/sentry/fsimpl/kernfs.(*DynamicBytesFD).Read(0xc001b8a2a0, {0x1f8d2e0, 0xc001b9cc88}, {{0x1f84890, 0xc00bc8fa80}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...)
		pkg/sentry/fsimpl/kernfs/dynamic_bytes_file.go:127 +0x91
	gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).Read(0xc001b8a300, {0x1f8d2e0, 0xc001b9cc88}, {{0x1f84890, 0xc00bc8fa80}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...)
		pkg/sentry/vfs/file_description.go:648 +0x155
	gvisor.dev/gvisor/pkg/sentry/kernel/pipe.(*VFSPipeFD).SpliceFromNonPipe(0xc00bc8fa80, {0x1f8d2e0, 0xc001b9cc88}, 0xc001b8a300, 0xffffffffffffffff, 0x7ffff000)
		pkg/sentry/kernel/pipe/vfs.go:318 +0x166
	gvisor.dev/gvisor/pkg/sentry/syscalls/linux.Sendfile(0xc001b9cc88, 0xca?, {{0x4}, {0x3}, {0x0}, {0x100800001}, {0x0}, {0x0}})
		pkg/sentry/syscalls/linux/sys_splice.go:361 +0x1233
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc001b9cc88, 0x28, {{0x4}, {0x3}, {0x0}, {0x100800001}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:143 +0x995
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc001b9cc88, 0x28, {{0x4}, {0x3}, {0x0}, {0x100800001}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:323 +0x72
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc001b9cc88, 0x28, {{0x4}, {0x3}, {0x0}, {0x100800001}, {0x0}, {0x0}})
		pkg/sentry/kernel/task_syscall.go:283 +0x94
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc001b9cc88)
		pkg/sentry/kernel/task_syscall.go:258 +0x4b0
	gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc001b9cc88?, 0xc001b9cc88)
		pkg/sentry/kernel/task_run.go:269 +0x1fae
	gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc001b9cc88, 0x15a2)
		pkg/sentry/kernel/task_run.go:97 +0x4fb
	created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 22132
		pkg/sentry/kernel/task_start.go:400 +0x165
	

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/11/18 22:27 gvisor 03a28d158e54 571351cb .config console log report info ci-gvisor-systrap-1-race panic: WARNING: circular locking detected: tmpfs.filesystemRWMutex -> pipe.pipeMutex:
* Struck through repros no longer work on HEAD.