shynet icon indicating copy to clipboard operation
shynet copied to clipboard

No support for redis sentinel caches.

Open kashalls opened this issue 1 year ago • 4 comments

It seems like the redis package does not have support for redis sentinel databases. Redis sentinel allows for better high availability support than running a single redis instance.

Launching Shynet queue worker...
 
 -------------- celery@shynet-celeryworker-84bc85849d-xqb7c v5.2.7 (dawn-chorus)
--- ***** ----- 
-- ******* ---- Linux-6.1.0-9-amd64-x86_64-with 2023-09-19 09:36:44
- *** --- * --- 
- ** ---------- [config]
- ** ---------- .> app:         shynet:0x7f9ba37facb0
- ** ---------- .> transport:   redis://redis.default.svc.cluster.local:6379/6
- ** ---------- .> results:     disabled://
- *** --- * --- .> concurrency: 3 (prefork)
-- ******* ---- .> task events: ON
--- ***** ----- 
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery
                

[tasks]
  . analytics.tasks.ingress_request
  . dashboard.tasks.send_email

[2023-09-19 09:36:44,579: INFO/MainProcess] Connected to redis://redis.default.svc.cluster.local:6379/6
[2023-09-19 09:36:44,584: INFO/MainProcess] mingle: searching for neighbors
[2023-09-19 09:36:45,602: INFO/MainProcess] mingle: all alone
[2023-09-19 09:36:45,624: CRITICAL/MainProcess] Unrecoverable error: ReadOnlyError("You can't write against a read only replica.")
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/celery/worker/worker.py", line 203, in start
    self.blueprint.start(self)
  File "/usr/local/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/usr/local/lib/python3.10/site-packages/celery/bootsteps.py", line 365, in start
    return self.obj.start()
  File "/usr/local/lib/python3.10/site-packages/celery/worker/consumer/consumer.py", line 332, in start
    blueprint.start(self)
  File "/usr/local/lib/python3.10/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/usr/local/lib/python3.10/site-packages/celery/worker/consumer/gossip.py", line 107, in start
    super().start(c)
  File "/usr/local/lib/python3.10/site-packages/celery/bootsteps.py", line 397, in start
    self.consumers = self.get_consumers(channel)
  File "/usr/local/lib/python3.10/site-packages/celery/worker/consumer/gossip.py", line 175, in get_consumers
    return [Consumer(
  File "/usr/local/lib/python3.10/site-packages/kombu/messaging.py", line 387, in __init__
    self.revive(self.channel)
  File "/usr/local/lib/python3.10/site-packages/kombu/messaging.py", line 409, in revive
    self.declare()
  File "/usr/local/lib/python3.10/site-packages/kombu/messaging.py", line 422, in declare
    queue.declare()
  File "/usr/local/lib/python3.10/site-packages/kombu/entity.py", line 606, in declare
    self._create_queue(nowait=nowait, channel=channel)
  File "/usr/local/lib/python3.10/site-packages/kombu/entity.py", line 617, in _create_queue
    self.queue_bind(nowait=nowait, channel=channel)
  File "/usr/local/lib/python3.10/site-packages/kombu/entity.py", line 660, in queue_bind
    return self.bind_to(self.exchange, self.routing_key,
  File "/usr/local/lib/python3.10/site-packages/kombu/entity.py", line 669, in bind_to
    return (channel or self.channel).queue_bind(
  File "/usr/local/lib/python3.10/site-packages/kombu/transport/virtual/base.py", line 562, in queue_bind
    self._queue_bind(exchange, *meta)
  File "/usr/local/lib/python3.10/site-packages/kombu/transport/redis.py", line 1033, in _queue_bind
    client.sadd(self.keyprefix_queue % (exchange,),
  File "/usr/local/lib/python3.10/site-packages/redis/client.py", line 2243, in sadd
    return self.execute_command('SADD', name, *values)
  File "/usr/local/lib/python3.10/site-packages/redis/client.py", line 901, in execute_command
    return self.parse_response(conn, command_name, **options)
  File "/usr/local/lib/python3.10/site-packages/redis/client.py", line 915, in parse_response
    response = connection.read_response()
  File "/usr/local/lib/python3.10/site-packages/redis/connection.py", line 756, in read_response
    raise response
redis.exceptions.ReadOnlyError: You can't write against a read only replica.`

kashalls avatar Sep 19 '23 16:09 kashalls