You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2022/11/25 10:17:57 UTC

[GitHub] [superset] dangal95 opened a new issue, #22226: Superset worker restarting and Celery ignoring config values - HELM / Kubernetes / SQS / S3

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

   I am running Superset on Kubernetes (EKS v1.23, HELM chart v.0.7.7, Superset Docker image version "2-0"). I am using SQS as my celery broker and S3 as my results backend and cache. The S3 caching and results backend works, however the setup of using SQS as the broker is not working as expected. 
   
   #### How to reproduce the bug
   The worker runs this command for a liveness probe: `celery -A superset.tasks.celery_app:app inspect ping -d celery@$HOSTNAME`. However, it is getting this error: `Error: No nodes replied within time constraint`. I'm not sure why this is happening, I've followed the following documentation pages and setup everything accordingly: 
   
   Celery Configuration - https://docs.celeryq.dev/en/stable/userguide/configuration.html
   Celery with SQS - https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/sqs.html
   Running Superset on Kubernetes - https://superset.apache.org/docs/installation/running-on-kubernetes
   Async Queries using Celery - https://superset.apache.org/docs/installation/async-queries-celery
   
   This is my celery configuration inside the values.yaml files.
   
   ```
   configOverrides:    
     enable_s3_caching: |
       from s3cache.s3cache import S3Cache
       from datetime import timedelta
       from flask import Flask
       from flask_caching import Cache
       from superset.config import *
   
       SQLALCHEMY_DATABASE_URI = f"postgresql://{db_username}:{db_password}@{host_name}/superset"
       S3_CACHE_BUCKET = BUCKET_NAME
       SQL_LAB_S3_CACHE_KEY_PREFIX = 'sql-lab-result/'
       CHARTING_DATA_S3_CACHE_KEY_PREFIX = 'chart-query-results/'
       FILTER_STATE_S3_CACHE_KEY_PREFIX = 'filter-state-results/'
       EXPLORE_FORM_S3_CACHE_KEY_PREFIX = 'explore-form-results/'
       THUMBNAIL_S3_CACHE_KEY_PREFIX = 'thumbnails/'
   
       RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, SQL_LAB_S3_CACHE_KEY_PREFIX)
   
       def init_data_cache(app: Flask, config, cache_args, cache_options) -> S3Cache:
         return S3Cache(S3_CACHE_BUCKET, CHARTING_DATA_S3_CACHE_KEY_PREFIX)
   
       def init_filter_state_cache(app: Flask, config, cache_args, cache_options) -> S3Cache:
         return S3Cache(S3_CACHE_BUCKET, FILTER_STATE_S3_CACHE_KEY_PREFIX)
       
       def init_explore_cache(app: Flask, config, cache_args, cache_options) -> S3Cache:
         return S3Cache(S3_CACHE_BUCKET, THUMBNAIL_S3_CACHE_KEY_PREFIX)
   
       def init_thumbnail_cache(app: Flask, config, cache_args, cache_options) -> S3Cache:
         return S3Cache(S3_CACHE_BUCKET, EXPLORE_FORM_S3_CACHE_KEY_PREFIX)
   
       THUMBNAIL_CACHE_CONFIG = {'CACHE_TYPE': 'superset_config.init_thumbnail_cache'}
       DATA_CACHE_CONFIG = {'CACHE_TYPE': 'superset_config.init_data_cache'}
       FILTER_STATE_CACHE_CONFIG = {'CACHE_TYPE': 'superset_config.init_filter_state_cache'}
       EXPLORE_FORM_DATA_CACHE_CONFIG = {'CACHE_TYPE': 'superset_config.init_explore_cache'}
       SECRET_KEY = f"SECRET_KEY "    
       
       ENABLE_PROXY_FIX = True
   
       THUMBNAIL_SELENIUM_USER = SELENIUM_USER
       WEBDRIVER_BASEURL = BASE_URL
   
       CELERY_ENABLE_REMOTE_CONTROL = False
   
       class CeleryConfig:
         
         task_queues = None
         broker_url = "sqs://"
         broker_transport_options = {
           'region': 'eu-central-1',
         }
         imports = ("superset.sql_lab", 'superset.tasks',)
         worker_log_level = "DEBUG"
         worker_prefetch_multiplier = 1
         worker_enable_remote_control = False
         task_default_queue = "celery"
         #task_acks_late = False
         task_annotations = {
             "sql_lab.get_sql_results": {"rate_limit": "100/s"},
             
         }
   
       CELERY_CONFIG = CeleryConfig
   ```
   
   ### Expected results
   What I expect is that the worker does not fail on the liveness probe. Especially because Superset is able to automatically create a queue named "celery" in SQS. Furthermore, I expect celery not to create "pid" queues because I set `worker_enable_remote_control = False` AND `CELERY_ENABLE_REMOTE_CONTROL = False`.
   
   
   ### Actual results
   The worker is restarting because of the error `Error: No nodes replied within time constraint`, and `worker_enable_remote_control = False` is being totally ignored because I can see multiple queues (see screenshot) being created. 
   ![image](https://user-images.githubusercontent.com/24626518/203958170-2c0e6fbf-5913-4537-a47d-c29da547163a.png)
   
   The worker restarts multiple times (see screenshot) and every time it creates a lot of pid queues.
   ![image](https://user-images.githubusercontent.com/24626518/203959093-94e2bc2f-ea24-4b5f-afd6-063b4b1f95ec.png)
   
   
   ### Environment
   
   - superset version: `2.0.1`
   - python version: `3.8.12`
   - EKS version: `1.23`
   - Docker tag: `2-0`
   - HELM Chart version: `0.7.7`
   - celery[sqs] (pip) version: `5.2.7`
   - boto3 (pip) version: `1.26.2`
   - s3werkzeugcache (pip) version: `0.2.1`
   
   I would really appreciate  your help on this because I can't seem to find anything online about it.
   


-- 
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: notifications-unsubscribe@superset.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [superset] craig-rueda commented on issue #22226: Superset worker restarting and Celery ignoring config values - HELM / Kubernetes / SQS / S3

Posted by GitBox <gi...@apache.org>.
craig-rueda commented on issue #22226:
URL: https://github.com/apache/superset/issues/22226#issuecomment-1344579377

   Hey @dangal95 thanks for all the details! I haven't tried SQS with Celery personally, but I HAVE seen this behavior of it creating all of the pidbox queues even with remote control disabled. Did you try disabling `gossip` as well? This looks like more of a generic Celery issue, as opposed to something Superset-specific. Have you tried looking around the webs for any guides etc. for running Celery on SQS? 
   
   One other 


-- 
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: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [I] Superset worker restarting and Celery ignoring config values - HELM / Kubernetes / SQS / S3 [superset]

Posted by "rusackas (via GitHub)" <gi...@apache.org>.
rusackas commented on issue #22226:
URL: https://github.com/apache/superset/issues/22226#issuecomment-1944854271

   Closing this as stale since it's been silent for so long, and we're trying to steer toward a more actionable Issues backlog. If people are still encountering this in current versions (currently 3.x) please re-open this issue, open a new Issue with updated context, or raise a PR to address the problem. Thanks!
   


-- 
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: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


Re: [I] Superset worker restarting and Celery ignoring config values - HELM / Kubernetes / SQS / S3 [superset]

Posted by "rusackas (via GitHub)" <gi...@apache.org>.
rusackas closed issue #22226: Superset worker restarting and Celery ignoring config values - HELM / Kubernetes / SQS / S3
URL: https://github.com/apache/superset/issues/22226


-- 
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: notifications-unsubscribe@superset.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org