mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

The issue is caused by hand-crafted protobuf message. The runtime.errorBody defines two protobuf fields with same number. We need to upgrade the version to fix it. Otherwise, the client side won't receive any errors from server side because of panic. ``` mismatching field: runtime.errorBody.error, want runtime.errorBody.message ``` It can fix the cases PASSES="build grpcproxy" CPU=4 RACE=true ./test -run TestV3CurlLeaseRevokeNoTLS The original error is like: ``` v3_curl_lease_test.go:109: testV3CurlLeaseRevoke: prefix (/v3) endpoint (/kv/lease/revoke): error (read /dev/ptmx: input/output error (expected "etcdserver: requested lease not found", got ["curl: (52) Empty reply from server\r\n"])), wanted etcdserver: requested lease not found v3_curl_lease_test.go:109: testV3CurlLeaseRevoke: prefix (/v3beta) endpoint (/kv/lease/revoke): error (read /dev/ptmx: input/output error (expected "etcdserver: requested lease not found", got ["curl: (52) Empty reply from server\r\n"])), wanted etcdserver: requested lease not found ``` The `Empty reply from server` is caused by panic and server recover it but it doesn't have chance to reply to client. Signed-off-by: Wei Fu <fuweid89@gmail.com>