panic: WARNING: circular locking detected: kernel.fsContextMutex -> tmpfs.filesystemRWMutex: goroutine 68623 [running]: gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc0001c38e0, 0xc00070d278) bazel-out/k8-fastbuild/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x314 gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0001c3a70, 0xc0001c38c0, {0xc001f38cd0, 0x1, 0x1}) pkg/sync/locking/lockdep.go:112 +0x4eb gvisor.dev/gvisor/pkg/sync/locking.checkLock.func1(0xc0001c38c0, 0xc00070d408?) pkg/sync/locking/lockdep.go:115 +0x74 gvisor.dev/gvisor/pkg/sync/locking.(*ancestorsAtomicPtrMap).RangeRepeatable(0xc00017eda0, 0xc00070d4b8) bazel-out/k8-fastbuild/bin/pkg/sync/locking/atomicptrmap_ancestors_unsafe.go:440 +0x314 gvisor.dev/gvisor/pkg/sync/locking.checkLock(0xc0001c3a70, 0xc00017ed80, {0x0, 0x0, 0x0}) pkg/sync/locking/lockdep.go:112 +0x4eb gvisor.dev/gvisor/pkg/sync/locking.AddGLock(0xc0001c3a70, 0xffffffffffffffff) pkg/sync/locking/lockdep.go:144 +0x37b gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystemRWMutex).Lock(0xc0022802d8) bazel-out/k8-fastbuild/bin/pkg/sentry/fsimpl/tmpfs/filesystem_mutex.go:31 +0x4d gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystem).Release(0xc002280270, {0x21b8b30, 0xc001937208}) pkg/sentry/fsimpl/tmpfs/tmpfs.go:356 +0xc5 gvisor.dev/gvisor/pkg/sentry/vfs.(*Filesystem).DecRef.func1() pkg/sentry/vfs/filesystem.go:83 +0x116 gvisor.dev/gvisor/pkg/sentry/vfs.(*FilesystemRefs).DecRef(0xc002280270, 0xc00070d818) bazel-out/k8-fastbuild/bin/pkg/sentry/vfs/filesystem_refs.go:133 +0xb4 gvisor.dev/gvisor/pkg/sentry/vfs.(*Filesystem).DecRef(0xc002280270, {0x21b8b30, 0xc001937208}) pkg/sentry/vfs/filesystem.go:79 +0xa5 gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).unlockMounts(0xc0000045e0, {0x21b8b30, 0xc001937208}) pkg/sentry/vfs/vfs.go:1059 +0x2b3 gvisor.dev/gvisor/pkg/sentry/vfs.(*Mount).destroy(0xc002dc4580, {0x21b8b30, 0xc001937208}) pkg/sentry/vfs/mount.go:979 +0x8a5 gvisor.dev/gvisor/pkg/sentry/vfs.(*Mount).DecRef(0xc002dc4580, {0x21b8b30, 0xc001937208}) pkg/sentry/vfs/mount.go:943 +0xca gvisor.dev/gvisor/pkg/sentry/vfs.VirtualDentry.DecRef({0xc002dc4580?, 0xc002b1e008?}, {0x21b8b30, 0xc001937208}) pkg/sentry/vfs/vfs.go:1115 +0x6f gvisor.dev/gvisor/pkg/sentry/kernel.(*FSContext).destroy(0xc001f9dc00, {0x21b8b30, 0xc001937208}) pkg/sentry/kernel/fs_context.go:73 +0x16d gvisor.dev/gvisor/pkg/sentry/kernel.(*FSContext).DecRef.func1() pkg/sentry/kernel/fs_context.go:87 +0x59 gvisor.dev/gvisor/pkg/sentry/kernel.(*FSContextRefs).DecRef(0xc001f9dc00, 0xc00070dd10) bazel-out/k8-fastbuild/bin/pkg/sentry/kernel/fs_context_refs.go:133 +0xb4 gvisor.dev/gvisor/pkg/sentry/kernel.(*FSContext).DecRef(0xc001f9dc00, {0x21b8b30, 0xc001937208}) pkg/sentry/kernel/fs_context.go:86 +0xa5 gvisor.dev/gvisor/pkg/sentry/kernel.(*runExitMain).execute(0xc001937208?, 0xc001937208) pkg/sentry/kernel/task_exit.go:301 +0x7d3 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc001937208, 0x4fb2) pkg/sentry/kernel/task_run.go:97 +0x402 created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 68632 pkg/sentry/kernel/task_start.go:416 +0x17e known lock chain: tmpfs.filesystemRWMutex -> tmpfs.inodeMutex -> mm.mappingRWMutex -> kernel.fsContextMutex ====== tmpfs.filesystemRWMutex -> tmpfs.inodeMutex ===== goroutine 1 [running]: gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*inodeMutex).Lock(0xc0008c3488) bazel-out/k8-fastbuild/bin/pkg/sentry/fsimpl/tmpfs/inode_mutex.go:33 +0x4d gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*inode).touchCMtime(0xc0008c3458) pkg/sentry/fsimpl/tmpfs/tmpfs.go:854 +0xb0 gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystem).doCreateAt(0xc0008adc70, {0x21b8ec0, 0xc000804d60}, 0xc000280908, 0x0, 0xc000623b10) pkg/sentry/fsimpl/tmpfs/filesystem.go:219 +0x633 gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*filesystem).SymlinkAt(0xc0008adc70, {0x21b8ec0, 0xc000804d60}, 0xc000280908, {0x1f75182, 0xd}) pkg/sentry/fsimpl/tmpfs/filesystem.go:795 +0xf3 gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).SymlinkAt(0xc0000045e0, {0x21b8ec0, 0xc000804d60}, 0xc00078a1e0, 0xc00033e3c0, {0x1f75182, 0xd}) pkg/sentry/vfs/vfs.go:695 +0x2e8 gvisor.dev/gvisor/pkg/sentry/fsimpl/dev.userspaceInit({0x21b8ec0, 0xc000804d60}, 0xc0000045e0, 0xc00078a1e0, {0xc000255080?, 0xc0008c3408?}, 0x0) pkg/sentry/fsimpl/dev/dev.go:164 +0x33e gvisor.dev/gvisor/pkg/sentry/fsimpl/dev.FilesystemType.GetFilesystem({}, {0x21b8ec0, 0xc000804d60}, 0xc0000045e0, 0xc00078a1e0, {0x0, 0x0}, {0x1, {0x0, 0x0}, ...}) pkg/sentry/fsimpl/dev/dev.go:60 +0x36e gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).NewFilesystem(0xc0000045e0, {0x21b8ec0, 0xc000804d60}, 0xc00078a1e0, {0x0, 0x0}, {0x1f6b1d0, 0x3}, 0xc000723f40) pkg/sentry/vfs/mount.go:252 +0x1cd gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).MountDisconnected(0xc0000045e0, {0x21b8ec0, 0xc000804d60}, 0xc00078a1e0, {0x0, 0x0}, {0x1f6b1d0, 0x3}, 0xc000723f40) pkg/sentry/vfs/mount.go:271 +0xc5 gvisor.dev/gvisor/runsc/boot.(*containerMounter).mountSubmount(0xc000881e10, {0x21b8ec0, 0xc000804d60}, 0xc0004b2d80, 0xc000050388, 0xc000767ad0, 0xc00078a1e0, 0xc0008b0038) runsc/boot/vfs.go:872 +0x99c gvisor.dev/gvisor/runsc/boot.(*containerMounter).mountSubmounts(0xc000881e10, {0x21b8ec0, 0xc000804d60}, 0xc0004b2d80, 0xc000050388, 0xc000767ad0, 0xc00078a1e0) runsc/boot/vfs.go:750 +0x9b3 gvisor.dev/gvisor/runsc/boot.(*containerMounter).mountAll(0xc000881e10, {0x21b8ec0, 0xc000804d60}, 0xc00078a1e0, 0xc0004b2d80, 0xc000050388, 0xc0008ac000) runsc/boot/vfs.go:473 +0x585 gvisor.dev/gvisor/runsc/boot.setupContainerVFS({0x21b8ec0, 0xc000804ac0}, 0xc000634018, 0xc000881e10, 0xc000634048) runsc/boot/vfs.go:174 +0x2a5 gvisor.dev/gvisor/runsc/boot.(*Loader).createContainerProcess(0xc000634008, 0xc000634018) runsc/boot/loader.go:1248 +0xb30 gvisor.dev/gvisor/runsc/boot.(*Loader).run(0xc000634008) runsc/boot/loader.go:1003 +0x372 gvisor.dev/gvisor/runsc/boot.(*Loader).Run(0xc000634008) runsc/boot/loader.go:952 +0x2f gvisor.dev/gvisor/runsc/cmd.(*Boot).Execute(0xc00017d180, {0xc00022e0f8?, 0x12?}, 0xc0003ff030, {0xc0004cbec0, 0x2, 0x0?}) runsc/cmd/boot.go:585 +0x3815 github.com/google/subcommands.(*Commander).Execute(0xc000260000, {0x21a7b70, 0x3f59d60}, {0xc0004cbec0, 0x2, 0x2}) external/com_github_google_subcommands/subcommands.go:200 +0x676 github.com/google/subcommands.Execute(...) external/com_github_google_subcommands/subcommands.go:481 gvisor.dev/gvisor/runsc/cli.Main() runsc/cli/main.go:229 +0x247f main.main() runsc/main.go:31 +0x1d ====== tmpfs.inodeMutex -> mm.mappingRWMutex ===== goroutine 1180 [running]: gvisor.dev/gvisor/pkg/sentry/mm.(*mappingRWMutex).RLock(0xc000cdc05c) bazel-out/k8-fastbuild/bin/pkg/sentry/mm/mapping_mutex.go:59 +0x4d gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).withVecInternalMappings(0xc000cdc008, {0x21b8b30, 0xc001082588}, {0xc000bca000?, 0x489e31?, 0x489e69?, 0xc000999070?}, {0x1, 0x0, 0x0}, ...) pkg/sentry/mm/io.go:622 +0x170 gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).CopyInTo(0xc000cdc008, {0x21b8b30, 0xc001082588}, {0xc000bca000?, 0x0?, 0x489e69?, 0xc000999158?}, {0x2191be0, 0xc000f68c00}, {0x0, ...}) pkg/sentry/mm/io.go:325 +0x2f0 gvisor.dev/gvisor/pkg/usermem.IOSequence.CopyInTo({{0x21ae4b8, 0xc000cdc008}, {0xc000bca000, 0x31, 0x0, 0x87fec00}, {0x0, 0x1}}, {0x21b8b30, 0xc001082588}, ...) pkg/usermem/usermem.go:516 +0xcf gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*regularFileFD).pwrite(0xc000545080, {0x21b8b30, 0xc001082588}, {{0x21ae4b8, 0xc000cdc008}, {0xc000bca000, 0x31, 0x0, 0x87fec00}, {0x0, ...}}, ...) pkg/sentry/fsimpl/tmpfs/regular_file.go:573 +0x91b gvisor.dev/gvisor/pkg/sentry/fsimpl/tmpfs.(*regularFileFD).PWrite(0xc000545080, {0x21b8b30, 0xc001082588}, {{0x21ae4b8, 0xc000cdc008}, {0xc000bca000, 0x31, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/fsimpl/tmpfs/regular_file.go:528 +0xb5 gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).PWrite(0xc000545080, {0x21b8b30, 0xc001082588}, {{0x21ae4b8, 0xc000cdc008}, {0xc000bca000, 0x31, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/vfs/file_description.go:672 +0x184 gvisor.dev/gvisor/pkg/sentry/syscalls/linux.pwrite(0xc001082588, 0xc000545080, {{0x21ae4b8, 0xc000cdc008}, {0xc000bca000, 0x31, 0x0, 0x7ffff000}, {0x0, 0x1}}, ...) pkg/sentry/syscalls/linux/sys_read_write.go:503 +0xb2 gvisor.dev/gvisor/pkg/sentry/syscalls/linux.Pwritev2(0xc001082588, 0x457b27?, {{0x4}, {0x200000000240}, {0x31}, {0x1400}, {0x0}, {0x1}}) pkg/sentry/syscalls/linux/sys_read_write.go:496 +0x3aa gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc001082588, 0x148, {{0x4}, {0x200000000240}, {0x31}, {0x1400}, {0x0}, {0x1}}) pkg/sentry/kernel/task_syscall.go:143 +0xb90 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc001082588, 0x148, {{0x4}, {0x200000000240}, {0x31}, {0x1400}, {0x0}, {0x1}}) pkg/sentry/kernel/task_syscall.go:323 +0x85 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc001082588, 0x148, {{0x4}, {0x200000000240}, {0x31}, {0x1400}, {0x0}, {0x1}}) pkg/sentry/kernel/task_syscall.go:283 +0xc7 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc001082588) pkg/sentry/kernel/task_syscall.go:258 +0x53e gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc001082588?, 0xc001082588) pkg/sentry/kernel/task_run.go:269 +0x220c gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc001082588, 0x13c) pkg/sentry/kernel/task_run.go:97 +0x402 created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 1094 pkg/sentry/kernel/task_start.go:416 +0x17e ====== mm.mappingRWMutex -> kernel.fsContextMutex ===== goroutine 805 [running]: gvisor.dev/gvisor/pkg/sentry/kernel.(*fsContextMutex).Lock(0xc000885e08) bazel-out/k8-fastbuild/bin/pkg/sentry/kernel/fs_context_mutex.go:33 +0x4d gvisor.dev/gvisor/pkg/sentry/kernel.(*FSContext).RootDirectory(0xc000885e00) pkg/sentry/kernel/fs_context.go:150 +0x65 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).contextValue(0xc000b5c008, {0x1cdad80, 0x21876a0}, 0x1) pkg/sentry/kernel/task_context.go:99 +0x12ba gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Value(0xc000b5c008, {0x1cdad80, 0x21876a0}) pkg/sentry/kernel/task_context.go:61 +0x85 gvisor.dev/gvisor/pkg/sentry/vfs.RootFromContext({0x7ff6417912b8, 0xc000b5c008}) pkg/sentry/vfs/context.go:88 +0x58 gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).MappedName(0xc000260f00, {0x21b8b30, 0xc000b5c008}) pkg/sentry/vfs/file_description.go:818 +0x78 gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).appendVMAMapsEntryLocked(0xc000c42e30?, {0x21b8b30, 0xc000b5c008}, {0xc0007f3b08?, 0xc000a7fc40?}, 0xc000a72be0) pkg/sentry/mm/procfs.go:129 +0x32c gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).vmaSmapsEntryIntoLocked(0xc0007ef008, {0x21b8b30, 0xc000b5c008}, {0xc0007f3b08?, 0x48866c?}, 0xc000eb82c0) pkg/sentry/mm/procfs.go:160 +0xb5 gvisor.dev/gvisor/pkg/sentry/mm.(*MemoryManager).ReadSmapsDataInto(0xc0007ef008, {0x21b8b30, 0xc000b5c008}, 0xc000eb82c0) pkg/sentry/mm/procfs.go:141 +0x12e gvisor.dev/gvisor/pkg/sentry/fsimpl/proc.(*smapsData).Generate(0xc000b39888, {0x21b8b30, 0xc000b5c008}, 0xc000eb82c0) pkg/sentry/fsimpl/proc/task_files.go:670 +0x9e gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).preadLocked(0xc000eb82a0, {0x21b8b30, 0xc000b5c008}, {{0x21ae8c8, 0xc000b52980}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/vfs/file_description_impl_util.go:310 +0x1d9 gvisor.dev/gvisor/pkg/sentry/vfs.(*DynamicBytesFileDescriptionImpl).PRead(0xc000eb82a0, {0x21b8b30, 0xc000b5c008}, {{0x21ae8c8, 0xc000b52980}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/vfs/file_description_impl_util.go:329 +0xd5 gvisor.dev/gvisor/pkg/sentry/fsimpl/kernfs.(*DynamicBytesFD).PRead(0xc000eb82a0, {0x21b8b30, 0xc000b5c008}, {{0x21ae8c8, 0xc000b52980}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/fsimpl/kernfs/dynamic_bytes_file.go:133 +0xb7 gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).PRead(0xc000eb8300, {0x21b8b30, 0xc000b5c008}, {{0x21ae8c8, 0xc000b52980}, {0x0, 0x1, 0x0, 0x7ffff000}, {0x0, ...}}, ...) pkg/sentry/vfs/file_description.go:638 +0x19b gvisor.dev/gvisor/pkg/sentry/kernel/pipe.(*VFSPipeFD).SpliceFromNonPipe(0xc000b52980, {0x21b8b30, 0xc000b5c008}, 0xc000eb8300, 0x0, 0x7ffff000) pkg/sentry/kernel/pipe/vfs.go:320 +0x1fc gvisor.dev/gvisor/pkg/sentry/syscalls/linux.Splice(0xc000b5c008, 0x457b27?, {{0x4}, {0x200000000140}, {0x9}, {0x0}, {0x800000000ff}, {0x3}}) pkg/sentry/syscalls/linux/sys_splice.go:147 +0x1825 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall(0xc000b5c008, 0x113, {{0x4}, {0x200000000140}, {0x9}, {0x0}, {0x800000000ff}, {0x3}}) pkg/sentry/kernel/task_syscall.go:143 +0xb90 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke(0xc000b5c008, 0x113, {{0x4}, {0x200000000140}, {0x9}, {0x0}, {0x800000000ff}, {0x3}}) pkg/sentry/kernel/task_syscall.go:323 +0x85 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter(0xc000b5c008, 0x113, {{0x4}, {0x200000000140}, {0x9}, {0x0}, {0x800000000ff}, {0x3}}) pkg/sentry/kernel/task_syscall.go:283 +0xc7 gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall(0xc000b5c008) pkg/sentry/kernel/task_syscall.go:258 +0x53e gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute(0xc000b5c008?, 0xc000b5c008) pkg/sentry/kernel/task_run.go:269 +0x220c gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc000b5c008, 0xd3) pkg/sentry/kernel/task_run.go:97 +0x402 created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start in goroutine 840 pkg/sentry/kernel/task_start.go:416 +0x17e