Skip to content
This repository has been archived by the owner on Apr 21, 2022. It is now read-only.

Data race in tests #34

Open
raulk opened this issue Mar 1, 2019 · 0 comments
Open

Data race in tests #34

raulk opened this issue Mar 1, 2019 · 0 comments
Labels
kind/bug A bug in existing code (including security flaws)

Comments

@raulk
Copy link
Member

raulk commented Mar 1, 2019

The new Travis CI config introduced in #33 uncovered a data race:

*** go test -v -race -coverprofile=coverage.7e6c87fdefc9a142.txt -covermode=atomic github.com/libp2p/go-libp2p-connmgr
go: downloading github.com/libp2p/go-testutil v0.0.1
=== RUN   TestConnTrimming
--- PASS: TestConnTrimming (0.00s)
=== RUN   TestConnsToClose
--- PASS: TestConnsToClose (0.00s)
=== RUN   TestGetTagInfo
--- PASS: TestGetTagInfo (0.00s)
=== RUN   TestTagPeerNonExistant
--- PASS: TestTagPeerNonExistant (0.00s)
=== RUN   TestUntagPeer
--- PASS: TestUntagPeer (0.00s)
=== RUN   TestGetInfo
--- PASS: TestGetInfo (0.00s)
=== RUN   TestDoubleConnection
17:09:48.024 ERROR    connmgr: received connected notification for conn we are already tracking:  <peer.ID Qm*Vza3Gd> connmgr.go:272
--- PASS: TestDoubleConnection (0.00s)
=== RUN   TestDisconnected
17:09:48.025 ERROR    connmgr: received disconnected notification for peer we are not tracking:  <peer.ID Qm*pCFb5w> connmgr.go:294
17:09:48.025 ERROR    connmgr: received disconnected notification for conn we are not tracking:  <peer.ID Qm*1ecqm5> connmgr.go:300
--- PASS: TestDisconnected (0.00s)
=== RUN   TestQuickBurstRespectsSilencePeriod
==================
WARNING: DATA RACE
Read at 0x00c000010d40 by goroutine 20:
  github.com/libp2p/go-libp2p-connmgr.TestQuickBurstRespectsSilencePeriod()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:323 +0x357
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
Previous write at 0x00c000010d40 by goroutine 26:
  github.com/libp2p/go-libp2p-connmgr.(*tconn).Close()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:23 +0x42
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).TrimOpenConns()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr.go:90 +0x539
Goroutine 20 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:878 +0x659
  testing.runTests.func1()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1119 +0xa8
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
  testing.runTests()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1117 +0x4ee
  testing.(*M).Run()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1034 +0x2ee
  main.main()
      _testmain.go:106 +0x332
Goroutine 26 (finished) created at:
  github.com/libp2p/go-libp2p-connmgr.(*cmNotifee).Connected()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr.go:280 +0x578
  github.com/libp2p/go-libp2p-connmgr.TestQuickBurstRespectsSilencePeriod()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:314 +0xbe
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
==================
==================
WARNING: DATA RACE
Read at 0x00c0001b4478 by goroutine 20:
  github.com/libp2p/go-libp2p-connmgr.TestQuickBurstRespectsSilencePeriod()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:330 +0x3af
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
Previous write at 0x00c0001b4478 by goroutine 26:
  github.com/libp2p/go-libp2p-connmgr.(*cmNotifee).Disconnected()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr.go:305 +0x298
  github.com/libp2p/go-libp2p-net.Notifiee.Disconnected-fm()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:312 +0x6e
  github.com/libp2p/go-libp2p-connmgr.(*tconn).Close()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:25 +0xb4
  github.com/libp2p/go-libp2p-connmgr.(*BasicConnMgr).TrimOpenConns()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr.go:90 +0x539
Goroutine 20 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:878 +0x659
  testing.runTests.func1()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1119 +0xa8
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
  testing.runTests()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1117 +0x4ee
  testing.(*M).Run()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:1034 +0x2ee
  main.main()
      _testmain.go:106 +0x332
Goroutine 26 (finished) created at:
  github.com/libp2p/go-libp2p-connmgr.(*cmNotifee).Connected()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr.go:280 +0x578
  github.com/libp2p/go-libp2p-connmgr.TestQuickBurstRespectsSilencePeriod()
      /home/travis/gopath/src/github.com/libp2p/go-libp2p-connmgr/connmgr_test.go:314 +0xbe
  testing.tRunner()
      /home/travis/.gimme/versions/go1.11.5.linux.amd64/src/testing/testing.go:827 +0x162
==================
--- FAIL: TestQuickBurstRespectsSilencePeriod (3.00s)
    testing.go:771: race detected during execution of test
FAIL
@raulk raulk added the kind/bug A bug in existing code (including security flaws) label Mar 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug A bug in existing code (including security flaws)
Projects
None yet
Development

No branches or pull requests

1 participant