Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

identify: race in test #2522

Closed
marten-seemann opened this issue Aug 25, 2023 · 0 comments · Fixed by #2526
Closed

identify: race in test #2522

marten-seemann opened this issue Aug 25, 2023 · 0 comments · Fixed by #2526
Labels
kind/bug A bug in existing code (including security flaws)

Comments

@marten-seemann
Copy link
Contributor

https://github.com/libp2p/go-libp2p/actions/runs/5961647714/job/16171286351?pr=2520

=== RUN   TestIDService
  ==================
  WARNING: DATA RACE
  Write at 0x0000020eb830 by goroutine 601:
    github.com/libp2p/go-libp2p/p2p/protocol/identify_test.TestIDService()
        /home/runner/work/go-libp2p/go-libp2p/p2p/protocol/identify/id_test.go:112 +0x55
    testing.tRunner()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1595 +0x238
    testing.(*T).Run.func1()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1648 +0x44
  
  Previous read at 0x0000020eb830 by goroutine 571:
    github.com/libp2p/go-libp2p/p2p/protocol/identify.(*netNotifiee).Disconnected()
        /home/runner/work/go-libp2p/go-libp2p/p2p/protocol/identify/id.go:983 +0x1e8
    github.com/libp2p/go-libp2p/p2p/net/mock.(*peernet).removeConn.func1.1()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_peernet.go:274 +0x6b
    github.com/libp2p/go-libp2p/p2p/net/mock.(*peernet).notifyAll()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_peernet.go:429 +0xc9
    github.com/libp2p/go-libp2p/p2p/net/mock.(*peernet).removeConn.func1()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_peernet.go:273 +0xa6
  
  Goroutine 601 (running) created at:
    testing.(*T).Run()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1648 +0x82a
    testing.runTests.func1()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:2054 +0x84
    testing.tRunner()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1595 +0x238
    testing.runTests()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:2052 +0x896
    testing.(*M).Run()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1925 +0xb57
    main.main()
        _testmain.go:97 +0x2bd
  
  Goroutine 571 (finished) created at:
    github.com/libp2p/go-libp2p/p2p/net/mock.(*peernet).removeConn()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_peernet.go:270 +0x28c
    github.com/libp2p/go-libp2p/p2p/net/mock.(*conn).teardown()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_conn.go:94 +0xaa
    github.com/libp2p/go-libp2p/p2p/net/mock.(*conn).Close.func1()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_conn.go:84 +0xe6
    sync.(*Once).doSlow()
        /home/runner/work/_tool/go/1.21.0/x64/src/sync/once.go:74 +0xf0
    sync.(*Once).Do()
        /home/runner/work/_tool/go/1.21.0/x64/src/sync/once.go:65 +0x44
    github.com/libp2p/go-libp2p/p2p/net/mock.(*conn).Close()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_conn.go:81 +0x4e
    github.com/libp2p/go-libp2p/p2p/net/mock.(*peernet).Close()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_peernet.go:70 +0x64
    github.com/libp2p/go-libp2p/p2p/host/basic.(*BasicHost).Close.func1()
        /home/runner/work/go-libp2p/go-libp2p/p2p/host/basic/basic_host.go:1031 +0x270
    sync.(*Once).doSlow()
        /home/runner/work/_tool/go/1.21.0/x64/src/sync/once.go:74 +0xf0
    sync.(*Once).Do()
        /home/runner/work/_tool/go/1.21.0/x64/src/sync/once.go:65 +0x44
    github.com/libp2p/go-libp2p/p2p/host/basic.(*BasicHost).Close()
        /home/runner/work/go-libp2p/go-libp2p/p2p/host/basic/basic_host.go:1008 +0x4b
    github.com/libp2p/go-libp2p/p2p/net/mock.(*mocknet).Close()
        /home/runner/work/go-libp2p/go-libp2p/p2p/net/mock/mock_net.go:58 +0xd6
    github.com/libp2p/go-libp2p/p2p/protocol/identify_test.newHarnessWithMa.func1()
        /home/runner/work/go-libp2p/go-libp2p/p2p/protocol/identify/obsaddr_test.go:98 +0x42
    testing.(*common).Cleanup.func1()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1169 +0x182
    testing.(*common).runCleanup()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1347 +0x1c2
    testing.tRunner.func2()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1589 +0x50
    runtime.deferreturn()
        /home/runner/work/_tool/go/1.21.0/x64/src/runtime/panic.go:477 +0x30
    testing.(*T).Run.func1()
        /home/runner/work/_tool/go/1.21.0/x64/src/testing/testing.go:1648 +0x44
  ==================
  2023/08/24 09:06:01 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
      id_test.go:158: test peer1 has peer2 addrs correctly
      id_test.go:170: test peer2 has peer1 addrs correctly
      id_test.go:184: testing addrs just after disconnect
      id_test.go:194: testing addrs after TTL expiration
      testing.go:1465: race detected during execution of test
  --- FAIL: TestIDService (0.04s)
@marten-seemann marten-seemann added the kind/bug A bug in existing code (including security flaws) label Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug A bug in existing code (including security flaws)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant