Area: cache (Redis backend, #626 / #630)
cache.redis.mode: standalone pointed at a cluster-enabled server degrades silently:
- Keys whose slot the node doesn't own get a
MOVED reply.
- The breaker counts
MOVED as "server up", so it never opens.
- Lookups for those keys always miss, and their bumps stay deferred, with nothing logged.
This comes from reading refusesWork; that the single client does not follow MOVED is inferred.
Options considered in #626, none taken:
- Refuse at connect when
INFO cluster reports cluster_enabled:1. This could also refuse single-endpoint cluster services that work in standalone mode today, such as Dragonfly's emulated cluster mode and possibly ElastiCache Serverless. Both are unverified.
- Treat
MOVED as a refusal. The breaker would flap whenever the probe key's slot is local.
Suggested: detect MOVED replies and log once at ERROR ("server is cluster-enabled; set cache.redis.mode: cluster") without opening the breaker. Alternatively, verify the single-endpoint services first, then refuse at connect.
Area: cache (Redis backend, #626 / #630)
cache.redis.mode: standalonepointed at a cluster-enabled server degrades silently:MOVEDreply.MOVEDas "server up", so it never opens.This comes from reading
refusesWork; that the single client does not followMOVEDis inferred.Options considered in #626, none taken:
INFO clusterreportscluster_enabled:1. This could also refuse single-endpoint cluster services that work in standalone mode today, such as Dragonfly's emulated cluster mode and possibly ElastiCache Serverless. Both are unverified.MOVEDas a refusal. The breaker would flap whenever the probe key's slot is local.Suggested: detect
MOVEDreplies and log once at ERROR ("server is cluster-enabled; set cache.redis.mode: cluster") without opening the breaker. Alternatively, verify the single-endpoint services first, then refuse at connect.