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

[Race Detector] Race in proxylib between (*AccessLogServer).Close() and test.StartAccessLogServer #16296

Closed
gandro opened this issue May 25, 2021 · 0 comments · Fixed by #16298
Labels
area/CI Continuous Integration testing issue or flake area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. ci/flake This is a known failure that occurs in the tree. Please investigate me! kind/bug/race-detector

Comments

@gandro
Copy link
Member

gandro commented May 25, 2021

Found in Travis CI: https://travis-ci.com/github/cilium/cilium/builds/226793613

==================
WARNING: DATA RACE
Read at 0x00c0000e2aa8 by goroutine 44:
  github.com/cilium/cilium/proxylib/test.(*AccessLogServer).Close()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:48 +0xbc
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:160 +0x437
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Previous write at 0x00c0000e2aa8 by goroutine 46:
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:116 +0x1ed

Goroutine 44 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1238 +0x5d7
  github.com/cilium/cilium/proxylib.TestMemcache()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:123 +0x2a9
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Goroutine 46 (finished) created at:
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:99 +0x42f
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:125 +0x84
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c000010370 by goroutine 44:
  github.com/cilium/cilium/proxylib/test.(*AccessLogServer).Close()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:48 +0xe9
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:160 +0x437
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Previous write at 0x00c000010370 by goroutine 46:
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:116 +0x1b9

Goroutine 44 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1238 +0x5d7
  github.com/cilium/cilium/proxylib.TestMemcache()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:123 +0x2a9
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Goroutine 46 (finished) created at:
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:99 +0x42f
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:125 +0x84
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c000010368 by goroutine 44:
  net.(*conn).ok()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/net/net.go:174 +0x6e
  net.(*conn).Close()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/net/net.go:204 +0x78
  github.com/cilium/cilium/proxylib/test.(*AccessLogServer).Close()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:49 +0x124
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:160 +0x437
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Previous write at 0x00c000010368 by goroutine 46:
  net.newUnixConn()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/net/unixsock.go:195 +0x8e
  net.(*UnixListener).accept()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/net/unixsock_posix.go:166 +0xa5
  net.(*UnixListener).AcceptUnix()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/net/unixsock.go:247 +0x8e
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:103 +0xa4

Goroutine 44 (running) created at:
  testing.(*T).Run()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1238 +0x5d7
  github.com/cilium/cilium/proxylib.TestMemcache()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:123 +0x2a9
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202

Goroutine 46 (finished) created at:
  github.com/cilium/cilium/proxylib/test.StartAccessLogServer()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/test/accesslog_server.go:99 +0x42f
  github.com/cilium/cilium/proxylib.TestMemcache.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/proxylib/proxylib_memcached_test.go:125 +0x84
  testing.tRunner()
      /home/travis/.gimme/versions/go1.16.4.linux.amd64/src/testing/testing.go:1193 +0x202
==================
    testing.go:1092: race detected during execution of test
FAIL
coverage: 33.4% of statements in ./...
FAIL	github.com/cilium/cilium/proxylib	0.691s
FAIL

log.txt

@gandro gandro added area/CI Continuous Integration testing issue or flake area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. ci/flake This is a known failure that occurs in the tree. Please investigate me! kind/bug/race-detector labels May 25, 2021
tklauser added a commit to tklauser/cilium that referenced this issue May 25, 2021
Don't attempt to accept the connection if the server is closing.

Fixes cilium#16296

Signed-off-by: Tobias Klauser <tobias@cilium.io>
aanm pushed a commit that referenced this issue May 28, 2021
Don't attempt to accept the connection if the server is closing.

Fixes #16296

Signed-off-by: Tobias Klauser <tobias@cilium.io>
tklauser added a commit to tklauser/cilium that referenced this issue Aug 23, 2021
[ upstream commit 47d4224 ]

Don't attempt to accept the connection if the server is closing.

Fixes cilium#16296

Signed-off-by: Tobias Klauser <tobias@cilium.io>
tklauser added a commit that referenced this issue Aug 24, 2021
[ upstream commit 47d4224 ]

Don't attempt to accept the connection if the server is closing.

Fixes #16296

Signed-off-by: Tobias Klauser <tobias@cilium.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/CI Continuous Integration testing issue or flake area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. ci/flake This is a known failure that occurs in the tree. Please investigate me! kind/bug/race-detector
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant