@@ -328,8 +328,8 @@ func (r *Router) Call(ctx context.Context, bucketID uint64, mode CallMode,
328328 vshardError := storageCallResponse .VshardError
329329
330330 switch vshardError .Name {
331- case VShardErrNameWrongBucket , VShardErrNameBucketIsLocked :
332- // We reproduce here behavior in https://github.com/tarantool/vshard/blob/b6fdbe950a2e4557f05b83bd8b846b126ec3724e /vshard/router/init.lua#L663
331+ case VShardErrNameWrongBucket , VShardErrNameBucketIsLocked , VShardErrNameTransferIsInProgress :
332+ // We reproduce here behavior in https://github.com/tarantool/vshard/blob/0.1.34 /vshard/router/init.lua#L667
333333 r .BucketReset (bucketID )
334334
335335 destination := vshardError .Destination
@@ -381,7 +381,7 @@ func (r *Router) Call(ctx context.Context, bucketID uint64, mode CallMode,
381381 }
382382 }
383383
384- // retry for VShardErrNameWrongBucket, VShardErrNameBucketIsLocked
384+ // retry for VShardErrNameWrongBucket, VShardErrNameBucketIsLocked, VShardErrNameTransferIsInProgress
385385
386386 r .metrics ().RetryOnCall ("bucket_migrate" )
387387
@@ -390,12 +390,6 @@ func (r *Router) Call(ctx context.Context, bucketID uint64, mode CallMode,
390390 // this vshardError will be returned to a caller in case of timeout
391391 err = vshardError
392392 continue
393- case VShardErrNameTransferIsInProgress :
394- // Since lua vshard router doesn't retry here, we don't retry too.
395- // There is a comment why lua vshard router doesn't retry:
396- // https://github.com/tarantool/vshard/blob/b6fdbe950a2e4557f05b83bd8b846b126ec3724e/vshard/router/init.lua#L697
397- r .BucketReset (bucketID )
398- return VshardRouterCallResp {}, vshardError
399393 case VShardErrNameNonMaster :
400394 // vshard.storage has returned NON_MASTER error, lua vshard router updates info about master in this case:
401395 // See: https://github.com/tarantool/vshard/blob/b6fdbe950a2e4557f05b83bd8b846b126ec3724e/vshard/router/init.lua#L704.
0 commit comments