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

grpc has data race in v1.12.0 #1264

Closed
rleungx opened this issue Oct 10, 2018 · 2 comments · Fixed by #1265
Closed

grpc has data race in v1.12.0 #1264

rleungx opened this issue Oct 10, 2018 · 2 comments · Fixed by #1265

Comments

@rleungx
Copy link
Member

rleungx commented Oct 10, 2018

==================
WARNING: DATA RACE
Read at 0x00c04b90e578 by goroutine 898:
  github.com/pingcap/pd/vendor/google.golang.org/grpc/transport.(*http2Server).WriteStatus()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/transport/http2_server.go:739 +0x64
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*serverStream).RecvMsg.func1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/stream.go:736 +0x1fc
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*serverStream).RecvMsg()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/stream.go:753 +0x3d9
  github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*monitoredServerStream).RecvMsg()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:69 +0x68
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb.(*watchWatchServer).Recv()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3558 +0x84
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*serverWatchStream).recvLoop()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:222 +0x73
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*watchServer).Watch.func2()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:173 +0x53

Previous write at 0x00c04b90e578 by goroutine 40:
  github.com/pingcap/pd/vendor/google.golang.org/grpc/transport.(*http2Server).WriteHeader()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/transport/http2_server.go:690 +0xfd
  github.com/pingcap/pd/vendor/google.golang.org/grpc/transport.(*http2Server).Write()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/transport/http2_server.go:797 +0x898
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*serverStream).SendMsg()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/stream.go:710 +0x397
  github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*monitoredServerStream).SendMsg()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:61 +0x68
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb.(*watchWatchServer).Send()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3553 +0x6a
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*serverWatchStream).sendLoop()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:437 +0x192e
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*watchServer).Watch.func1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:163 +0x38

Goroutine 898 (running) created at:
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*watchServer).Watch()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:172 +0x3f8
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb._Watch_Watch_Handler()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3539 +0xcd
  github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x187
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.newStreamInterceptor.func1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/interceptor.go:93 +0x12a
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:1167 +0x9e0
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).handleStream()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:1253 +0x1300
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:680 +0xac

Goroutine 40 (finished) created at:
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.(*watchServer).Watch()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/watch.go:162 +0x384
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb._Watch_Watch_Handler()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3539 +0xcd
  github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.StreamServerInterceptor()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go:40 +0x187
  github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc.newStreamInterceptor.func1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/interceptor.go:93 +0x12a
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).processStreamingRPC()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:1167 +0x9e0
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).handleStream()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:1253 +0x1300
  github.com/pingcap/pd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
      /home/jenkins/workspace/pd_ghpr_unit_test/go/src/github.com/pingcap/pd/vendor/google.golang.org/grpc/server.go:680 +0xac
==================

It has been fixed in v1.12.1 and should we bump the version of grpc?
See grpc/grpc-go#2074.

@nolouch
Copy link
Contributor

nolouch commented Oct 10, 2018

I think we can upgrade to v1.12.2

@disksing
Copy link
Contributor

@shenli I think tidb wants to upgrade too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants