go-redis icon indicating copy to clipboard operation
go-redis copied to clipboard

should not redirect when meet network err in cluster mode

Open lintanghui opened this issue 2 years ago • 0 comments

Issue tracker is used for reporting bugs and discussing new features. Please use stackoverflow for supporting issues.

should not redirect req when meet netwrokr err in cluster, in cluster mode ,we default set maxRediect to 3, we should redirect when meet move ,ask or readonly err. but we should not redirect req when meet network err. but as code below:

err := c._processPipelineNode(ctx, node, cmds, failedCmds)
				if err == nil {
					return
				}
				if attempt < c.opt.MaxRedirects {
					if err := c.mapCmdsByNode(ctx, failedCmds, cmds); err != nil {
						setCmdsErr(cmds, err)
					}
				} else {
					setCmdsErr(cmds, err)
				}

when meet network err, it will retry all cmd, and if we also set maxRetry, it will cause multi retry req.

Expected Behavior

shoudl not redirect when meet network err in cluster mode

Current Behavior

retry all cmd when meet network err in cluster mode

Possible Solution

check err in cluster mode ,and only redirect in move|ask|readonly err

Steps to Reproduce

Context (Environment)

Detailed Description

Possible Implementation

lintanghui avatar May 28 '22 08:05 lintanghui