You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are using SE.Redis client to connect to Envoy Redis proxy. We recently stumbled upon the following issue where our transactions started failing with an error. The minimum repro code is here:
var transaction = cache.CreateTransaction();
transaction.AddCondition(Condition.StringEqual("some_key", 1));
_ = transaction.StringIncrementAsync("some_key");
_ = transaction.StringSetAsync("some_key", + 1);
var result = await transaction.ExecuteAsync();
When the above is execute against Envoy Redis proxy we observe the following error
Unhandled exception. System.AggregateException: One or more errors occurred. (This operation has been disabled in the command-map and cannot be used: UNWATCH)
The problem comes from the fact that Envoy does not support the UNWATCH command, so maybe this can be replaced by DISCARD in the client, in order to make it compatible with Envoy? Will this be a viable option?
Any help is appreciated!
The text was updated successfully, but these errors were encountered:
Quick update on this: After further investigation, DISCARD won't be a solution. Because: MULTI\r\nDISCARD\r\n does not get propagated to the underlying Redis cluster from Envoy, while WATCH does.
Meaning: WATCH <key> <-- sent to Redis MULTI <-- Not sent DISCARD/EXEC <-- Not sent
will not clear the watch unless there is at least one operation inside the transaction.
Hello folks!
We are using SE.Redis client to connect to Envoy Redis proxy. We recently stumbled upon the following issue where our transactions started failing with an error. The minimum repro code is here:
When the above is execute against Envoy Redis proxy we observe the following error
The problem comes from the fact that Envoy does not support the
UNWATCH
command, so maybe this can be replaced byDISCARD
in the client, in order to make it compatible with Envoy? Will this be a viable option?Any help is appreciated!
The text was updated successfully, but these errors were encountered: