syzbot


DATA RACE in ramfs.(*dirFileOperations).Readdir

Status: fixed on 2019/08/14 00:44
Reported-by: syzbot+b2a6002f47bf67302137@syzkaller.appspotmail.com
Fix commit: 09cf3b40a899 Fix data race in InodeSimpleAttributes.Unstable.
First crash: 2131d, last: 2131d

Sample crash report:
WARNING: DATA RACE
Write at 0x00c0001d4048 by goroutine 316:
  gvisor.googlesource.com/gvisor/pkg/sentry/fs/ramfs.(*dirFileOperations).Readdir()
      pkg/sentry/fs/ramfs/dir.go:419 +0x1fb
  gvisor.googlesource.com/gvisor/pkg/sentry/fs.(*File).Readdir()
      pkg/sentry/fs/file.go:226 +0x129
DIAGNOSIS:
I0125 15:21:44.618278   60282 x:0] ***************************
I0125 15:21:44.618472   60282 x:0] Args: [/syzkaller/managers/kvm-direct-overlay-host-race/current/image -root /syzkaller/managers/kvm-direct-overlay-host-race/workdir/gvisor_root -watchdog-action=panic -network=none -debug -platform=ptrace -file-access=exclusive -overlay -network=host debug -stacks ci-gvisor-kvm-direct-overlay-host-race-2]
I0125 15:21:44.618568   60282 x:0] Git Revision: cc995207531965b70bc1b812a70b91f242a92086
I0125 15:21:44.618601   60282 x:0] PID: 60282
I0125 15:21:44.618636   60282 x:0] UID: 0, GID: 0
I0125 15:21:44.618659   60282 x:0] Configuration:
I0125 15:21:44.618684   60282 x:0] 		RootDir: /syzkaller/managers/kvm-direct-overlay-host-race/workdir/gvisor_root
I0125 15:21:44.618706   60282 x:0] 		Platform: ptrace
I0125 15:21:44.618788   60282 x:0] 		FileAccess: exclusive, overlay: true
I0125 15:21:44.618831   60282 x:0] 		Network: host, logging: false
I0125 15:21:44.618911   60282 x:0] 		Strace: false, max size: 1024, syscalls: []
I0125 15:21:44.618944   60282 x:0] ***************************
D0125 15:21:44.619023   60282 x:0] Load container "/syzkaller/managers/kvm-direct-overlay-host-race/workdir/gvisor_root" "ci-gvisor-kvm-direct-overlay-host-race-2"
D0125 15:21:44.622911   60282 x:0] Signal container "ci-gvisor-kvm-direct-overlay-host-race-2": signal 0
D0125 15:21:44.623032   60282 x:0] Signal sandbox "ci-gvisor-kvm-direct-overlay-host-race-2"
D0125 15:21:44.623094   60282 x:0] Connecting to sandbox "ci-gvisor-kvm-direct-overlay-host-race-2"
D0125 15:21:44.623774   60282 x:0] urpc: successfully marshalled 120 bytes.
D0125 15:21:44.624993   60282 x:0] urpc: unmarshal success.
I0125 15:21:44.625148   60282 x:0] Found sandbox "ci-gvisor-kvm-direct-overlay-host-race-2", PID: 58949
I0125 15:21:44.625233   60282 x:0] Retrieving sandbox stacks
D0125 15:21:44.625256   60282 x:0] Stacks sandbox "ci-gvisor-kvm-direct-overlay-host-race-2"
D0125 15:21:44.625308   60282 x:0] Connecting to sandbox "ci-gvisor-kvm-direct-overlay-host-race-2"
D0125 15:21:44.625788   60282 x:0] urpc: successfully marshalled 36 bytes.
D0125 15:21:44.727471   60282 x:0] urpc: unmarshal success.
I0125 15:21:44.727587   60282 x:0]      *** Stack dump ***
goroutine 5762 [running]:
gvisor.googlesource.com/gvisor/pkg/log.Stacks(0x459e01, 0x28, 0x45d3f2, 0x4e466d)
	pkg/log/log.go:259 +0xd1
gvisor.googlesource.com/gvisor/runsc/boot.(*debug).Stacks(0x22e11f8, 0x22e11f8, 0xc000500310, 0x0, 0x0)
	runsc/boot/debug.go:26 +0x38
reflect.Value.call(0xc00013ff20, 0xc00013c240, 0x13, 0x10d4223, 0x4, 0xc00095fe68, 0x3, 0x3, 0x4f058e, 0xf8ffe0, ...)
	GOROOT/src/reflect/value.go:447 +0x635
reflect.Value.Call(0xc00013ff20, 0xc00013c240, 0x13, 0xc00095fe68, 0x3, 0x3, 0x0, 0x22e11f8, 0x16)
	GOROOT/src/reflect/value.go:308 +0xc1
gvisor.googlesource.com/gvisor/pkg/urpc.(*Server).handleOne(0xc0002a85d0, 0xc0006ca420, 0x0, 0x0)
	pkg/urpc/urpc.go:298 +0x613
gvisor.googlesource.com/gvisor/pkg/urpc.(*Server).handleRegistered(0xc0002a85d0, 0xc0006ca420, 0xc0002a85d0, 0xc0006ca420)
	pkg/urpc/urpc.go:393 +0x43
gvisor.googlesource.com/gvisor/pkg/urpc.(*Server).StartHandling.func1(0xc0002a85d0, 0xc0006ca420)
	pkg/urpc/urpc.go:413 +0x77
created by gvisor.googlesource.com/gvisor/pkg/urpc.(*Server).StartHandling
	pkg/urpc/urpc.go:411 +0x6f

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc0002ca264)
	GOROOT/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc0002ca264)
	GOROOT/src/sync/waitgroup.go:130 +0xb5
gvisor.googlesource.com/gvisor/pkg/sentry/kernel.(*Kernel).WaitExited(0xc0002d0000)
	pkg/sentry/kernel/kernel.go:801 +0x57
gvisor.googlesource.com/gvisor/runsc/boot.(*Loader).WaitExit(0xc0002d0140, 0x0, 0x0)
	runsc/boot/loader.go:747 +0x50
gvisor.googlesource.com/gvisor/runsc/cmd.(*Boot).Execute(0xc0001d2120, 0x12192e0, 0xc000138010, 0xc00013eb40, 0xc0001df020, 0x2, 0x2, 0x0)
	runsc/cmd/boot.go:236 +0x121d
github.com/google/subcommands.(*Commander).Execute(0xc00014c000, 0x12192e0, 0xc000138010, 0xc0001df020, 0x2, 0x2, 0x1)
	external/com_github_google_subcommands/subcommands.go:141 +0x525
github.com/google/subcommands.Execute(0x12192e0, 0xc000138010, 0xc0001df020, 0x2, 0x2, 0xc00012ed40)
	external/com_github_google_subcommands/subcommands.go:371 +0x81
main.main()
	runsc/main.go:221 +0x1ef8

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/01/25 15:22 https://gvisor.googlesource.com/gvisor master cc9952075319 b5d78bce .config console log report syz ci-gvisor-kvm-direct-overlay-host-race
* Struck through repros no longer work on HEAD.