From 2a97f2e49c2e52cf53e9fc725a294394f8d1fa52 Mon Sep 17 00:00:00 2001 From: Nedyalko Dyakov Date: Tue, 22 Apr 2025 22:42:18 +0300 Subject: [PATCH] fix build --- example_instrumentation_test.go | 17 ++++++++++++----- redis.go | 4 ++-- ring_test.go | 32 ++++++++++++++++++++++++-------- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/example_instrumentation_test.go b/example_instrumentation_test.go index 25efa3b2..36234ff0 100644 --- a/example_instrumentation_test.go +++ b/example_instrumentation_test.go @@ -51,7 +51,8 @@ func Example_instrumentation() { rdb.AddHook(redisHook{}) rdb.Ping(ctx) - // Output: starting processing: <[ping]> + // Output: + // starting processing: <[ping]> // dialing tcp :6379 // finished dialing tcp :6379 // starting processing: <[hello 3]> @@ -61,7 +62,8 @@ func Example_instrumentation() { func ExamplePipeline_instrumentation() { rdb := redis.NewClient(&redis.Options{ - Addr: ":6379", + Addr: ":6379", + DisableIdentity: true, }) rdb.AddHook(redisHook{}) @@ -70,16 +72,19 @@ func ExamplePipeline_instrumentation() { pipe.Ping(ctx) return nil }) - // Output: pipeline starting processing: [ping: ping: ] - // Output: pipeline starting processing: [[ping] [ping]] + // Output: + // pipeline starting processing: [[ping] [ping]] // dialing tcp :6379 // finished dialing tcp :6379 + // starting processing: <[hello 3]> + // finished processing: <[hello 3]> // pipeline finished processing: [[ping] [ping]] } func ExampleClient_Watch_instrumentation() { rdb := redis.NewClient(&redis.Options{ - Addr: ":6379", + Addr: ":6379", + DisableIdentity: true, }) rdb.AddHook(redisHook{}) @@ -92,6 +97,8 @@ func ExampleClient_Watch_instrumentation() { // starting processing: <[watch foo]> // dialing tcp :6379 // finished dialing tcp :6379 + // starting processing: <[hello 3]> + // finished processing: <[hello 3]> // finished processing: <[watch foo]> // starting processing: <[ping]> // finished processing: <[ping]> diff --git a/redis.go b/redis.go index 2fcd587f..03f939ad 100644 --- a/redis.go +++ b/redis.go @@ -394,7 +394,7 @@ func (c *baseClient) initConn(ctx context.Context, cn *pool.Conn) error { // or it could be DragonflyDB or a third-party redis-proxy. They all respond // with different error string results for unsupported commands, making it // difficult to rely on error strings to determine all results. - return fmt.Errorf("failed to initialize connection: %w", err) + return err } else if password != "" { // Try legacy AUTH command if HELLO failed err = c.reAuthConnection(ctx, conn)(auth.NewBasicCredentials(username, password)) @@ -434,7 +434,7 @@ func (c *baseClient) initConn(ctx context.Context, cn *pool.Conn) error { // Handle network errors (e.g. timeouts) in CLIENT SETINFO to avoid // out of order responses later on. if _, err = p.Exec(ctx); err != nil && !isRedisError(err) { - return fmt.Errorf("failed to set client identity: %w", err) + return err } } diff --git a/ring_test.go b/ring_test.go index cfd545c1..599f6888 100644 --- a/ring_test.go +++ b/ring_test.go @@ -357,13 +357,17 @@ var _ = Describe("Redis Ring", func() { ring.AddHook(&hook{ processPipelineHook: func(hook redis.ProcessPipelineHook) redis.ProcessPipelineHook { return func(ctx context.Context, cmds []redis.Cmder) error { - Expect(cmds).To(HaveLen(1)) + // skip the connection initialization + if cmds[0].Name() == "hello" || cmds[0].Name() == "client" { + return nil + } + Expect(len(cmds)).To(BeNumerically(">", 0)) Expect(cmds[0].String()).To(Equal("ping: ")) stack = append(stack, "ring.BeforeProcessPipeline") err := hook(ctx, cmds) - Expect(cmds).To(HaveLen(1)) + Expect(len(cmds)).To(BeNumerically(">", 0)) Expect(cmds[0].String()).To(Equal("ping: PONG")) stack = append(stack, "ring.AfterProcessPipeline") @@ -376,13 +380,17 @@ var _ = Describe("Redis Ring", func() { shard.AddHook(&hook{ processPipelineHook: func(hook redis.ProcessPipelineHook) redis.ProcessPipelineHook { return func(ctx context.Context, cmds []redis.Cmder) error { - Expect(cmds).To(HaveLen(1)) + // skip the connection initialization + if cmds[0].Name() == "hello" || cmds[0].Name() == "client" { + return nil + } + Expect(len(cmds)).To(BeNumerically(">", 0)) Expect(cmds[0].String()).To(Equal("ping: ")) stack = append(stack, "shard.BeforeProcessPipeline") err := hook(ctx, cmds) - Expect(cmds).To(HaveLen(1)) + Expect(len(cmds)).To(BeNumerically(">", 0)) Expect(cmds[0].String()).To(Equal("ping: PONG")) stack = append(stack, "shard.AfterProcessPipeline") @@ -416,14 +424,18 @@ var _ = Describe("Redis Ring", func() { processPipelineHook: func(hook redis.ProcessPipelineHook) redis.ProcessPipelineHook { return func(ctx context.Context, cmds []redis.Cmder) error { defer GinkgoRecover() + // skip the connection initialization + if cmds[0].Name() == "hello" || cmds[0].Name() == "client" { + return nil + } - Expect(cmds).To(HaveLen(3)) + Expect(len(cmds)).To(BeNumerically(">=", 3)) Expect(cmds[1].String()).To(Equal("ping: ")) stack = append(stack, "ring.BeforeProcessPipeline") err := hook(ctx, cmds) - Expect(cmds).To(HaveLen(3)) + Expect(len(cmds)).To(BeNumerically(">=", 3)) Expect(cmds[1].String()).To(Equal("ping: PONG")) stack = append(stack, "ring.AfterProcessPipeline") @@ -437,14 +449,18 @@ var _ = Describe("Redis Ring", func() { processPipelineHook: func(hook redis.ProcessPipelineHook) redis.ProcessPipelineHook { return func(ctx context.Context, cmds []redis.Cmder) error { defer GinkgoRecover() + // skip the connection initialization + if cmds[0].Name() == "hello" || cmds[0].Name() == "client" { + return nil + } - Expect(cmds).To(HaveLen(3)) + Expect(len(cmds)).To(BeNumerically(">=", 3)) Expect(cmds[1].String()).To(Equal("ping: ")) stack = append(stack, "shard.BeforeProcessPipeline") err := hook(ctx, cmds) - Expect(cmds).To(HaveLen(3)) + Expect(len(cmds)).To(BeNumerically(">=", 3)) Expect(cmds[1].String()).To(Equal("ping: PONG")) stack = append(stack, "shard.AfterProcessPipeline")