lukechampine/us

Data race in ParallelBlobDownloader

jkawamoto opened this issue · 1 comments

Go test failes on kv branch (3185b62) and I got this error:

WARNING: DATA RACE
Write at 0x00c00038a2e8 by goroutine 126:
  lukechampine.com/us/renterhost.(*Session).setErr()
      /Users/junpei/src/github.com/lukechampine/us/renterhost/session.go:77 +0xbd
  lukechampine.com/us/renterhost.(*Session).readMessage()
      /Users/junpei/src/github.com/lukechampine/us/renterhost/session.go:153 +0xb6b
  lukechampine.com/us/renterhost.(*Session).ReadResponse()
      /Users/junpei/src/github.com/lukechampine/us/renterhost/session.go:224 +0x139
  lukechampine.com/us/host.(*session).readResponse()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:84 +0x13c
  lukechampine.com/us/host.(*SessionHandler).rpcRead.func1()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:518 +0xa4

Previous read at 0x00c00038a2e8 by goroutine 118:
  lukechampine.com/us/renterhost.(*Session).writeMessage()
      /Users/junpei/src/github.com/lukechampine/us/renterhost/session.go:113 +0x66
  lukechampine.com/us/renterhost.(*Session).WriteResponse()
      /Users/junpei/src/github.com/lukechampine/us/renterhost/session.go:216 +0x184
  lukechampine.com/us/host.(*session).writeResponse()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:104 +0x150
  lukechampine.com/us/host.(*SessionHandler).rpcRead()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:594 +0xe64
  lukechampine.com/us/host.(*SessionHandler).rpcRead-fm()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:506 +0x4b
  lukechampine.com/us/host.(*SessionHandler).Serve()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:233 +0x7b4
  lukechampine.com/us/internal/ghost.listen.func1()
      /Users/junpei/src/github.com/lukechampine/us/internal/ghost/ghost.go:126 +0xa9

Goroutine 126 (running) created at:
  lukechampine.com/us/host.(*SessionHandler).rpcRead()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:516 +0x15b
  lukechampine.com/us/host.(*SessionHandler).rpcRead-fm()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:506 +0x4b
  lukechampine.com/us/host.(*SessionHandler).Serve()
      /Users/junpei/src/github.com/lukechampine/us/host/session.go:233 +0x7b4
  lukechampine.com/us/internal/ghost.listen.func1()
      /Users/junpei/src/github.com/lukechampine/us/internal/ghost/ghost.go:126 +0xa9

Goroutine 118 (running) created at:
  lukechampine.com/us/internal/ghost.listen()
      /Users/junpei/src/github.com/lukechampine/us/internal/ghost/ghost.go:124 +0x5c
==================
--- FAIL: TestKVCancel (3.80s)
    testing.go:1038: race detected during execution of test

Thanks for the report. I merged a fix into master, and rebased kv on top of it.