syzbot


DATA RACE in fuse.(*connection).callFuture (2)

Status: fixed on 2022/02/05 11:11
Fix commit: e219f75d8b3c Fuse: Cache `maxActiveRequests` in `connection` to avoid reading it from `fs`.
First crash: 1026d, last: 1025d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
gvisor DATA RACE in fuse.(*connection).callFuture 1 1030d 1030d 14/26 fixed on 2022/02/03 04:49

Sample crash report:
WARNING: DATA RACE
Read at 0x00c0004e88f0 by goroutine 292:
  gvisor.dev/gvisor/pkg/sentry/fsimpl/fuse.(*connection).callFuture()
      pkg/sentry/fsimpl/fuse/connection.go:299 +0xbd
  gvisor.dev/gvisor/pkg/sentry/fsimpl/fuse.(*connection).Call()
      pkg/sentry/fsimpl/fuse/connection.go:275 +0x164
  gvisor.dev/gvisor/pkg/sentry/fsimpl/fuse.(*inode).Open()
      pkg/sentry/fsimpl/fuse/fusefs.go:462 +0xaef
  gvisor.dev/gvisor/pkg/sentry/fsimpl/kernfs.(*Filesystem).OpenAt()
      pkg/sentry/fsimpl/kernfs/filesystem.go:488 +0x366
  gvisor.dev/gvisor/pkg/sentry/fsimpl/fuse.(*filesystem).OpenAt()
      <autogenerated>:1 +0x90
  gvisor.dev/gvisor/pkg/sentry/vfs.(*VirtualFilesystem).OpenAt()
      pkg/sentry/vfs/vfs.go:437 +0x301
  gvisor.dev/gvisor/pkg/sentry/syscalls/linux/vfs2.openat()
      pkg/sentry/syscalls/linux/vfs2/filesystem.go:179 +0x31d
  gvisor.dev/gvisor/pkg/sentry/syscalls/linux/vfs2.Open()
      pkg/sentry/syscalls/linux/vfs2/filesystem.go:149 +0x6a
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall()
      pkg/sentry/kernel/task_syscall.go:103 +0x194
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke()
      pkg/sentry/kernel/task_syscall.go:238 +0xb3
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter()
      pkg/sentry/kernel/task_syscall.go:198 +0x10e
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall()
      pkg/sentry/kernel/task_syscall.go:173 +0x213
  gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute()
      pkg/sentry/kernel/task_run.go:254 +0x1286
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run()
      pkg/sentry/kernel/task_run.go:95 +0x352

Previous write at 0x00c0004e88f0 by goroutine 980:
  gvisor.dev/gvisor/pkg/sentry/fsimpl/fuse.(*DeviceFD).Release()
      pkg/sentry/fsimpl/fuse/dev.go:117 +0x1ab
  gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).DecRef.func1()
      pkg/sentry/vfs/file_description.go:192 +0x375
  gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescriptionRefs).DecRef()
      bazel-out/k8-fastbuild-ST-fa7f2b6368d1/bin/pkg/sentry/vfs/file_description_refs.go:131 +0x7c
  gvisor.dev/gvisor/pkg/sentry/vfs.(*FileDescription).DecRef()
      pkg/sentry/vfs/file_description.go:161 +0x76
  gvisor.dev/gvisor/pkg/sentry/syscalls/linux/vfs2.Read()
      pkg/sentry/syscalls/linux/vfs2/read_write.go:65 +0x428
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).executeSyscall()
      pkg/sentry/kernel/task_syscall.go:103 +0x194
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallInvoke()
      pkg/sentry/kernel/task_syscall.go:238 +0xb3
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscallEnter()
      pkg/sentry/kernel/task_syscall.go:198 +0x10e
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).doSyscall()
      pkg/sentry/kernel/task_syscall.go:173 +0x213
  gvisor.dev/gvisor/pkg/sentry/kernel.(*runApp).execute()
      pkg/sentry/kernel/task_run.go:254 +0x1286
  gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run()
      pkg/sentry/kernel/task_run.go:95 +0x352

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/02/04 18:34 gvisor dce4528a1a95 a3e470b2 .config console log report info ci-gvisor-ptrace-2-race DATA RACE in fuse.(*connection).callFuture
2022/02/04 10:49 gvisor dce4528a1a95 a3e470b2 .config console log report info ci-gvisor-ptrace-3-race DATA RACE in fuse.(*connection).callFuture
2022/02/03 23:54 gvisor 95d883a92e31 30646bfe .config console log report info ci-gvisor-ptrace-3-race DATA RACE in fuse.(*connection).callFuture
* Struck through repros no longer work on HEAD.