mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #4375 from xiang90/kvapi_no_retry
clientv3: do not retry on modifications
This commit is contained in:
commit
9afee37471
@ -122,21 +122,18 @@ func (kv *kv) Delete(key string) (*DeleteResponse, error) {
|
||||
}
|
||||
|
||||
func (kv *kv) Compact(rev int64) error {
|
||||
for {
|
||||
r := &pb.CompactionRequest{Revision: rev}
|
||||
_, err := kv.getRemote().Compact(context.TODO(), r)
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if isRPCError(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
if nerr := kv.switchRemote(err); nerr != nil {
|
||||
return nerr
|
||||
}
|
||||
r := &pb.CompactionRequest{Revision: rev}
|
||||
_, err := kv.getRemote().Compact(context.TODO(), r)
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if isRPCError(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
go kv.switchRemote(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (kv *kv) Txn() Txn {
|
||||
@ -187,6 +184,12 @@ func (kv *kv) do(op Op) (*pb.ResponseUnion, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// do not retry on modifications
|
||||
if op.t != tRange {
|
||||
go kv.switchRemote(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if nerr := kv.switchRemote(err); nerr != nil {
|
||||
return nil, nerr
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user