Etcd: compile clientv3 with newest grpc failed

Created on 20 Apr 2016  路  2Comments  路  Source: etcd-io/etcd

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]

Most helpful comment

I force using git reset --hard 9ac074585f926c8506b6351bfdc396d2b19b1cb1 for grpc and it works now.

All 2 comments

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.

Was this page helpful?
0 / 5 - 0 ratings