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
Name and Version
redis: 7.2.3
dogpile.cache: 1.2.2
redis-py: 5.0.1
What steps will reproduce the bug?
Deploy a Redis cluster with sentinel and auth enabled, create a script to call sentinel host and retrieve data from cache:
import dogpile.cache
import time
import logging
import redis
# Set the log level to DEBUG for Dogpilecache
logging.basicConfig(level=logging.DEBUG)
# Create a Dogpilecache region
cache_region = dogpile.cache.make_region().configure(
'dogpile.cache.redis_sentinel',
arguments={
'sentinels': [
['redis-cluster', 26379],
],
'sentinel_kwargs': {
'password': 'mypassword',
}
}
)
def get_data_from_cache(key):
# Try retrieving data from cache
data = cache_region.get(key)
if data is not None:
print(f"Data found in cache: {data}")
else:
print("Data not found in cache")
# Simulating a time-consuming operation to fetch the data
time.sleep(2)
data = f"Sample data for {key}"
# Store the data in cache for future use
cache_region.set(key, data)
print(f"Data stored in cache: {data}")
return data
# Perform data retrieval using Dogpilecache
print(redis.__version__)
result = get_data_from_cache("example_key")
print(f"Final result: {result}")
Are you using any custom parameters or values?
I'm sure about every parameter because without auth, script works as expected, the only parameter I cannot trust is password in sentinel_kwargs. I'm also sure that problem is on dogpile.cache because from the same client it works with redis-cli or with a python script like this:
import redis
# Create a Redis Sentinel connection
sentinel = redis.Redis(
host='redis-cluster',
port=26379,
password='mypassword',
decode_responses=True
)
# Get the replicas (slaves) of the master
replicas = sentinel.sentinel_slaves('mymaster')
# Iterate through replicas and print their IP and port
for replica in replicas:
replica_host = replica['ip']
replica_port = replica['port']
print(f"Replica: {replica_host}:{replica_port}")
What is the expected behavior?
same output obtained when auth is disabled:
5.0.1
Data found in cache: <dogpile.cache.api.NoValue object>
Final result: <dogpile.cache.api.NoValue object>
What do you see instead?
redis.sentinel.SlaveNotFoundError: No slave found for 'mymaster
Additional information
Redis cluster is deployed through bitnami helm chart.
I've tried different version of dogpile.cache (1.1.8 and 1.1.0), same result.
I've tried to add decode_responses parameter, same result.
Network and name resolution are ok. It works without auth and with auth enable but without dogpile.cache (like redis-cli and redis-py).
The text was updated successfully, but these errors were encountered:
Name and Version
redis: 7.2.3
dogpile.cache: 1.2.2
redis-py: 5.0.1
What steps will reproduce the bug?
Deploy a Redis cluster with sentinel and auth enabled, create a script to call sentinel host and retrieve data from cache:
Are you using any custom parameters or values?
I'm sure about every parameter because without auth, script works as expected, the only parameter I cannot trust is password in sentinel_kwargs. I'm also sure that problem is on dogpile.cache because from the same client it works with redis-cli or with a python script like this:
What is the expected behavior?
same output obtained when auth is disabled:
5.0.1
Data found in cache: <dogpile.cache.api.NoValue object>
Final result: <dogpile.cache.api.NoValue object>
What do you see instead?
redis.sentinel.SlaveNotFoundError: No slave found for 'mymaster
Additional information
Redis cluster is deployed through bitnami helm chart.
I've tried different version of dogpile.cache (1.1.8 and 1.1.0), same result.
I've tried to add decode_responses parameter, same result.
Network and name resolution are ok. It works without auth and with auth enable but without dogpile.cache (like redis-cli and redis-py).
The text was updated successfully, but these errors were encountered: