Skip to content
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

Retry DoXCache during redis cluster scaling #700

Closed
wyxloading opened this issue Dec 16, 2024 · 2 comments · Fixed by #701
Closed

Retry DoXCache during redis cluster scaling #700

wyxloading opened this issue Dec 16, 2024 · 2 comments · Fixed by #701

Comments

@wyxloading
Copy link
Contributor

Recently we got failed to fetch the cache because EXEC was aborted by redis or connection closed by DoMultiCache during redis cluster scaling ( relate to #696 )

We believe that fail reason should be something relation to cluster scaling.
Check source below, seem like in TRANSACTION do commands MULTI, PTTL, GET/MGET, EXEC, then redis server return a error MOVED {slot} {ip:port} for PTTL command, and EXEC get a EXECABORT error. But driver only check with the EXEC command result.

https://github.com/redis/rueidis/blob/main/pipe.go#L1446-L1482

Seem like we can fix this easily, just handle previous error in TRANSACTION and let driver handle retry automaticlly.

We will test it ASAP and maybe file a PR later.

@rueian
Copy link
Collaborator

rueian commented Dec 16, 2024

just handle previous error in TRANSACTION

Do you refer to the MOVED error you mentioned? I think it’s a good idea to replace the EXECABORT with the MOVED in this case.

@wyxloading
Copy link
Contributor Author

Do you refer to the MOVED error you mentioned?

Yes, and ASK error too. Check PR #701

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants