xueyun0512 opened a new issue, #41743:
URL: https://github.com/apache/superset/issues/41743

   ### Bug description
   
   Hello, 
   I'm deploying Caching with Redis and I have Redis Sentinel for HA. 
   Both redis sentinel and redis server have tls activated.
   
   In superset_config.py, I have set:
   
   ```py
   CUSTOM_SENTINEL_SERVERS= [
   ('sentinel1.example.com', 26379),
   ('sentinel2.example.com', 26379),
   ('sentinel3.example.com', 26379),
   ]
   
   FILTER_STATE_CACHE_CONFIG = {
       'CACHE_TYPE': 'RedisSentinelCache',
       'CACHE_DEFAULT_TIMEOUT': 86400,
       'CACHE_KEY_PREFIX': 'superset:filter_cache',
       'CACHE_REDIS_SENTINELS': CUSTOM_SENTINEL_SERVERS,
       'CACHE_REDIS_SENTINEL_MASTER': 'redis_master',
       'CACHE_REDIS_SENTINEL_PASSWORD': None,
       'CACHE_REDIS_PORT': 6380,
       'CACHE_OPTIONS': {
           'ssl': True,
           'ssl_cert_reqs': ssl.CERT_REQUIRED,
           'ssl_ca_certs': '/etc/security/keys/root_ca.pem',
           'ssl_certfile': '/etc/security/keys/superset.pem',
           'ssl_keyfile': '/etc/security/keys/superset.key',
       },
   }
   
   ```
   
   In Superset, I have the log
   ```log
   No slave found for 'redis_master'
   Traceback (most recent call last):
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/flask_appbuilder/api/__init__.py",
 line 124, in wraps
       return f(self, *args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/utils/log.py",
 line 301, in wrapper
       value = f(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/dashboards/filter_state/api.py",
 line 174, in post
       return super().post(pk)
              ^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/views/base_api.py",
 line 92, in wraps
       return f(self, *args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/temporary_cache/api.py",
 line 80, in post
       key = self.get_create_command()(args).run()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/utils/decorators.py",
 line 267, in wrapped
       return on_error(ex)
              ^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/utils/decorators.py",
 line 232, in on_error
       raise ex
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/utils/decorators.py",
 line 260, in wrapped
       result = func(*args, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/commands/temporary_cache/create.py",
 line 35, in run
       return self.create(self._cmd_params)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/superset/commands/dashboard/filter_state/create.py",
 line 36, in create
       key = cache_manager.filter_state_cache.get(contextual_key)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/flask_caching/__init__.py",
 line 195, in get
       return self.cache.get(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/cachelib/redis.py",
 line 78, in get
       self._read_client.get(f"{self._get_prefix()}{key}")
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/commands/core.py",
 line 1822, in get
       return self.execute_command("GET", name, keys=[name])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/client.py",
 line 605, in execute_command
       return self._execute_command(*args, **options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/client.py",
 line 611, in _execute_command
       conn = self.connection or pool.get_connection()
                                 ^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/utils.py",
 line 183, in wrapper
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/connection.py",
 line 1483, in get_connection
       connection.connect()
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/sentinel.py",
 line 58, in connect
       return self.retry.call_with_retry(self._connect_retry, lambda error: 
None)
              
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/retry.py",
 line 67, in call_with_retry
       raise error
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/retry.py",
 line 62, in call_with_retry
       return do()
              ^^^^
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/sentinel.py",
 line 50, in _connect_retry
       for slave in self.connection_pool.rotate_slaves():
     File 
"/opt/superset/.conda/envs/venv_superset/lib/python3.11/site-packages/redis/sentinel.py",
 line 134, in rotate_slaves
       raise SlaveNotFoundError(f"No slave found for {self.service_name!r}")
   redis.sentinel.SlaveNotFoundError: No slave found for 'redis_master'
   ```
   
   And on redis sentinel side, I got:
   ```log
   1591788:X 03 Jul 2026 12:02:15.104 # Error accepting a client connection: 
error:1408F10B:SSL routines:ssl3_get_record:wrong version number(addr=XXXXX 
laddr=XXX)
   ```
   
   I'm wondering if the TLS option in CACHE_OPTIONS is only applied to redis 
server or also sentinel ? 
   Can you help me please ? 
   
   thanks!
   
   ### Screenshots/recordings
   
   _No response_
   
   ### Superset version
   
   6.1.0
   
   ### Python version
   
   3.11
   
   ### Node version
   
   I don't know
   
   ### Browser
   
   Chrome
   
   ### Additional context
   
   _No response_
   
   ### Checklist
   
   - [x] I have searched Superset docs and Slack and didn't find a solution to 
my problem.
   - [x] I have searched the GitHub issue tracker and didn't find a similar bug 
report.
   - [x] I have checked Superset's logs for errors and if I found a relevant 
Python stacktrace, I included it here as text in the "additional context" 
section.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to