diff --git a/Makefile b/Makefile index fa3b4e004f..0323b379b7 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ all: testdeps go test ./... go test ./... -short -race + go test ./... -run=NONE -bench=. env GOOS=linux GOARCH=386 go test ./... go vet go get github.com/gordonklaus/ineffassign diff --git a/cluster.go b/cluster.go index ab2c76f05e..68194c8d49 100644 --- a/cluster.go +++ b/cluster.go @@ -1265,7 +1265,7 @@ func (c *ClusterClient) mapCmdsByNode(cmds []Cmder, cmdsMap *cmdsMap) error { return err } - cmdsAreReadOnly := c.cmdsAreReadOnly(cmds) + cmdsAreReadOnly := c.opt.ReadOnly && c.cmdsAreReadOnly(cmds) for _, cmd := range cmds { var node *clusterNode var err error @@ -1309,10 +1309,9 @@ func (c *ClusterClient) pipelineProcessCmds( return err } - err = cn.WithReader(c.opt.ReadTimeout, func(rd *proto.Reader) error { + return cn.WithReader(c.opt.ReadTimeout, func(rd *proto.Reader) error { return c.pipelineReadCmds(node, rd, cmds, failedCmds) }) - return err } func (c *ClusterClient) pipelineReadCmds( @@ -1329,7 +1328,9 @@ func (c *ClusterClient) pipelineReadCmds( continue } - if internal.IsRedisError(err) { + if c.opt.ReadOnly && internal.IsLoadingError(err) { + node.MarkAsLoading() + } else if internal.IsRedisError(err) { continue } diff --git a/go.mod b/go.mod index 57f2bc0db7..eb4969dbc1 100644 --- a/go.mod +++ b/go.mod @@ -4,3 +4,5 @@ require ( github.com/onsi/ginkgo v1.8.0 github.com/onsi/gomega v1.5.0 ) + +go 1.13