spring-projects / spring-data-redis

Provides support to increase developer productivity in Java when using Redis, a key-value store. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
https://spring.io/projects/spring-data-redis/
Apache License 2.0
1.77k stars 1.17k forks source link

Conflict on Garnet(Replacement of Redis, Implemented by MS, to resolve licensing issue of recent Redis) #3052

Closed yuseok-kim-edushare closed 4 days ago

yuseok-kim-edushare commented 4 days ago

Describe the bug

When I use Garnet to replace Redis My app written in Java with Spring Boot 3.3 and Spring Data Redis

I tried to test on container side and Redis CLI works well in PING command also Application's Execution of Ping works well

but Spring Application Try to connect Garnet, Fail to connect

and I checked logs, and finally found, when using Hello, fault on

Steps to reproduce the bug

  1. create app with some Spring boot app with using Spring Data Redis, will trying to connect garnet
  2. look fail message from spring boot's failure to application run

Expected behavior

working well

Screenshots

Applicaiont Failure message image

Garnet's Message When Try to RESP v3 Client (Use Hello) Image

Garnet's Message When Try to RESP v2 Client (Just only Use PING) Image

Release version

Spring Boot & Data 3.3.5 // Garnet v1.0.39

OS version

Problem first find in Ubuntu 24.04 LTS Host running on docker compose (garnet latest, eclipse-temurin:21-jre

test also perfomed on Windows 10 22H2 latest .NET 8 latest Eclipse-Temurin 21 JDK latest


Additional context

I asked first to Microsoft/Garnet but, then I found Garnet's log is clear https://github.com/microsoft/garnet/issues/811 (Also you can Spring Log in here) https://github.com/Prompt-oven/auth-service/issues/16

mp911de commented 4 days ago

This is actually an issue of the Garnet server that is sending the connection Id as String and not as number. Unfortunately, the Lettuce client doesn't propagate the failure and so you see only a timeout. I filed a PR at https://github.com/redis/lettuce/pull/3058 to propagate the failure. On the Garnet side, it would be great if the HELLO response would stick to how Redis replies.

yuseok-kim-edushare commented 4 days ago

@mp911de Thanks!