v3electionpb.proto Campaign return "invalid auth token" when setcd server has been deleted token.
etcdserver/api/v3electionpb/v3electionpb.proto
rpc Campaign(CampaignRequest) returns (CampaignResponse) {
option (google.api.http) = {
post: "/v3/election/campaign"
body: "*"
};
}
-
Etcdserver auth enable.
-
Two processes(A and B) call Campaign, A is leadership, B process blocks at Campaign-->waitDeletes->waitDelete-watch.
-
After 5 mintues, auth token is deleted on etcdserver, A process call Resign rpc, B process watched delete event, then waitDeletes run
func waitDeletes(ctx context.Context, client *v3.Client, pfx string, maxCreateRev int64) (*pb.ResponseHeader, error) {
getOpts := append(v3.WithLastCreate(), v3.WithMaxCreateRev(maxCreateRev))
for {
> resp, err := client.Get(ctx, pfx, getOpts...)
if err != nil {
return nil, err
}
if len(resp.Kvs) == 0 {
return resp.Header, nil
}
lastKey := string(resp.Kvs[0].Key)
if err = waitDelete(ctx, client, lastKey, resp.Header.Revision); err != nil {
return nil, err
}
}
}
return err_code: 2, error: etcdserver: invalid auth token.
etcdserver.EtcdServer's kv client is not RetryKVClient, so etcdserver.EtcdServer.KV.Get doesn't
authenticate by the old token.
how to make etcdserver.EtcdServer.KV.Get whithout authenticate.
v3electionpb.proto Campaign return "invalid auth token" when setcd server has been deleted token.
etcdserver/api/v3electionpb/v3electionpb.proto
rpc Campaign(CampaignRequest) returns (CampaignResponse) {
option (google.api.http) = {
post: "/v3/election/campaign"
body: "*"
};
}
Etcdserver auth enable.
Two processes(A and B) call Campaign, A is leadership, B process blocks at Campaign-->waitDeletes->waitDelete-watch.
After 5 mintues, auth token is deleted on etcdserver, A process call Resign rpc, B process watched delete event, then waitDeletes run
return err_code: 2, error: etcdserver: invalid auth token.
etcdserver.EtcdServer's kv client is not RetryKVClient, so etcdserver.EtcdServer.KV.Get doesn't
authenticate by the old token.
how to make etcdserver.EtcdServer.KV.Get whithout authenticate.