-
Notifications
You must be signed in to change notification settings - Fork 973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required on CLIENT and READONLY command #2996
Comments
Could be related to #2823 |
Hello @tishun , is there any workaround for this? We have upgraded to version |
Just a quick test, because we are still unable to reproduce the issue, could you attempt the solution provided in #2817 (comment) ? |
The issue happens after we upgrade to version 6.4.0.RELEASE, does this workaround mentioned still required? |
This old issue looks kinda relevant: #1201 but looks the config |
Apologies, did not give the full explanation and I see my comments were confusing. The log you sent clearly shows that there is a bug in the order of the commands that are sent during handshake. Typically the driver would always first send an Now this metadata is sent in a fire-and-forget way since 6.4.0.RELEASE so you would only be seeing these issues in the log, but the application should not fail (this is done because older versions of the Redis server did not support them and this information is not necessary for the driver to function properly). If you apply the suggested code you would disable this metadata being sent and it should stop the errors from showing up in the logs until we manage to reproduce the issue locally and fix it. We managed to achieve it once, but not since, so it might take some time for us to find the issue. Please let me know if:
Just realized that you should also disable reporting the client name (not only the library name and version). So the complete (temporary) fix should look like: RedisURI redisUri = RedisURI.Builder.redis("my.redis.instance.com", 6379)
.withLibraryName("")
.withLibraryVersion("")
.withClientName("")
.build();
RedisClient redisClient = RedisClient.create(redisUri); |
Thanks @tishun for the detailed explanations, it does make sense to me now for We do notice an issue(even though not 100% sure if it's related): we currently set |
Actually it make sense also for the If the We have drafted a fix that aims to fix the order of command execution e.g. Hope it helps |
I will also port this for 6.4.1.RELEASE |
Thanks @tishun @ggivo , I can just upgrade to 6.5.0.RELEASE to try this out? |
Yes, if upgrading works for you then this should do the trick. |
Bug Report
Current Behavior
When attempting to connect to an AWS MemoryDB cluster using Lettuce version 6.4.0.RELEASE, an error occurs related to authentication for the CLIENT and READONLY commands. This issue persists regardless of the protocol version used (RESP2 or RESP3). However, requests to the MemoryDB cluster still succeed and return responses despite this error.
Stack trace
Input Code
Input Code
Expected behavior/code
The CLIENT and READONLY commands should execute successfully without authentication errors.
Environment
Possible Solution
Additional context
The text was updated successfully, but these errors were encountered: