I use clientv3 in our project, but compile failed after I update grpc.
# github.com/coreos/etcd/etcdserver/etcdserverpb
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:1951: cannot use _KV_Range_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:1955: cannot use _KV_Put_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:1959: cannot use _KV_DeleteRange_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:1963: cannot use _KV_Txn_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:1967: cannot use _KV_Compact_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2223: cannot use _Lease_LeaseGrant_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2227: cannot use _Lease_LeaseRevoke_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2368: cannot use _Cluster_MemberAdd_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2372: cannot use _Cluster_MemberRemove_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2376: cannot use _Cluster_MemberUpdate_Handler (type func(interface {}, context.Context, func(interface {}) error) (interface {}, error)) as type grpc.methodHandler in field value
../../coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:2376: too many errors
FAIL github.com/pingcap/pd/pd-client [build failed]
https://github.com/coreos/etcd/tree/master/clientv3
etcd uses cmd/vendor directory to store external dependencies, which are to be compiled into etcd release binaries. client can be imported without vendoring. For full compatibility, it is recommended to vendor builds using etcd's vendored packages, using tools like godep, as in vendor directories. For more detail, please read Go vendor design.
The etcd's vendored gRPC might be different than yours. Could you check? We use https://github.com/coreos/etcd/blob/master/cmd/Godeps/Godeps.json#L211.
I force using git reset --hard 9ac074585f926c8506b6351bfdc396d2b19b1cb1 for grpc and it works now.
Most helpful comment
I force using
git reset --hard 9ac074585f926c8506b6351bfdc396d2b19b1cb1for grpc and it works now.