go-hep / hep

hep is the mono repository holding all of go-hep.org/x/hep packages and tools
https://go-hep.org
BSD 3-Clause "New" or "Revised" License
230 stars 35 forks source link

rootio/cmd/root-fuse: data race in File.Read+File.Flush #297

Open sbinet opened 6 years ago

sbinet commented 6 years ago
2018/07/24 10:41:55 Unimplemented opcode POLL
2018/07/24 10:41:55 Unimplemented opcode POLL
==================
WARNING: DATA RACE
Write at 0x00c000074be8 by goroutine 28:
  go-hep.org/x/hep/rootio/cmd/root-fuse.(*File).Flush()
      /home/travis/gopath/src/go-hep.org/x/hep/rootio/cmd/root-fuse/fuse.go:163 +0x5f
  github.com/hanwen/go-fuse/fuse/nodefs.(*rawBridge).Flush()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/nodefs/fsops.go:491 +0xe6
  github.com/hanwen/go-fuse/fuse.doFlush()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/opcode.go:329 +0x8f
  github.com/hanwen/go-fuse/fuse.(*Server).handleRequest()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:404 +0x484
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:376 +0x18a
  github.com/hanwen/go-fuse/fuse.(*Server).Serve()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:324 +0x66
Previous read at 0x00c000074be8 by goroutine 29:
  go-hep.org/x/hep/rootio/cmd/root-fuse.(*File).Read()
      /home/travis/gopath/src/go-hep.org/x/hep/rootio/cmd/root-fuse/fuse.go:190 +0x5a
  github.com/hanwen/go-fuse/fuse/pathfs.(*pathInode).Read()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/pathfs/pathfs.go:744 +0x7f
  github.com/hanwen/go-fuse/fuse/nodefs.(*rawBridge).Read()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/nodefs/fsops.go:452 +0x1b1
  github.com/hanwen/go-fuse/fuse.doRead()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/opcode.go:319 +0x123
  github.com/hanwen/go-fuse/fuse.(*Server).handleRequest()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:404 +0x484
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:376 +0x18a
Goroutine 28 (running) created at:
  go-hep.org/x/hep/rootio/cmd/root-fuse.run()
      /home/travis/gopath/src/go-hep.org/x/hep/rootio/cmd/root-fuse/main.go:113 +0x52f
Goroutine 29 (running) created at:
  github.com/hanwen/go-fuse/fuse.(*Server).readRequest()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:284 +0x440
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:357 +0x78
  github.com/hanwen/go-fuse/fuse.(*Server).Serve()
      /home/travis/gopath/src/github.com/hanwen/go-fuse/fuse/server.go:324 +0x66
==================
--- FAIL: TestFUSEDirs (0.03s)
    testing.go:771: race detected during execution of test
FAIL
sbinet commented 5 years ago

another one (probably the same):

=== RUN   TestFUSEDirs
2018/12/13 18:10:25 Unimplemented opcode POLL
==================
WARNING: DATA RACE
Write at 0x00c000360c68 by goroutine 17:
  go-hep.org/x/hep/groot/cmd/root-fuse.(*File).Flush()
      /home/travis/gopath/src/go-hep.org/x/hep/groot/cmd/root-fuse/fuse.go:167 +0x47
  github.com/hanwen/go-fuse/fuse/nodefs.(*rawBridge).Flush()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/nodefs/fsops.go:490 +0xf5
  github.com/hanwen/go-fuse/fuse.doFlush()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/opcode.go:334 +0x8f
  github.com/hanwen/go-fuse/fuse.(*Server).handleRequest()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:405 +0x48a
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:377 +0x16d
  github.com/hanwen/go-fuse/fuse.(*Server).Serve()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:325 +0x66
Previous read at 0x00c000360c68 by goroutine 18:
  go-hep.org/x/hep/groot/cmd/root-fuse.(*File).Read()
      /home/travis/gopath/src/go-hep.org/x/hep/groot/cmd/root-fuse/fuse.go:194 +0x42
  github.com/hanwen/go-fuse/fuse/pathfs.(*pathInode).Read()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/pathfs/pathfs.go:749 +0x6d
  github.com/hanwen/go-fuse/fuse.doRead()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/opcode.go:324 +0x123
  github.com/hanwen/go-fuse/fuse.(*Server).handleRequest()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:405 +0x48a
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:377 +0x16d
Goroutine 17 (running) created at:
  go-hep.org/x/hep/groot/cmd/root-fuse.run()
      /home/travis/gopath/src/go-hep.org/x/hep/groot/cmd/root-fuse/main.go:114 +0x532
Goroutine 18 (running) created at:
  github.com/hanwen/go-fuse/fuse.(*Server).readRequest()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:285 +0x443
  github.com/hanwen/go-fuse/fuse.(*Server).loop()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:358 +0x78
  github.com/hanwen/go-fuse/fuse.(*Server).Serve()
      /home/travis/gopath/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20181027161220-c029b69a13a7/fuse/server.go:325 +0x66
==================
--- FAIL: TestFUSEDirs (0.03s)
    testing.go:806: race detected during execution of test