error detail
worker_1 | [2019-05-05 10:18:15,608][PID:139][ERROR][ForkPoolWorker-7] Task redash.tasks.execute_query[671b61be-a3c7-4b39-83b4-c71ea499f9d9] raised unexpected: InvalidToken()
worker_1 | Traceback (most recent call last):
worker_1 | File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 382, in trace_task
worker_1 | R = retval = fun(*args, **kwargs)
worker_1 | File "/app/redash/worker.py", line 64, in __call__
worker_1 | return TaskBase.__call__(self, *args, **kwargs)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 641, in __protected_call__
worker_1 | return self.run(*args, **kwargs)
worker_1 | File "/app/redash/tasks/queries.py", line 390, in execute_query
worker_1 | scheduled_query).run()
worker_1 | File "/app/redash/tasks/queries.py", line 290, in __init__
worker_1 | self.data_source = self._load_data_source()
worker_1 | File "/app/redash/tasks/queries.py", line 377, in _load_data_source
worker_1 | return models.DataSource.query.get(self.data_source_id)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 924, in get
worker_1 | ident, loading.load_on_pk_identity)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 1007, in _get_impl
worker_1 | return db_load_fn(self, primary_key_identity)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 250, in load_on_pk_identity
worker_1 | return q.one()
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2954, in one
worker_1 | ret = self.one_or_none()
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2924, in one_or_none
worker_1 | ret = list(self)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 98, in instances
worker_1 | util.raise_from_cause(err)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
worker_1 | reraise(type(exception), exception, tb=exc_tb, cause=cause)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 79, in instances
worker_1 | rows = [proc(row) for row in fetch]
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 511, in _instance
worker_1 | loaded_instance, populate_existing, populators)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 611, in _populate_full
worker_1 | dict_[key] = getter(row)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/type_api.py", line 1226, in process
worker_1 | return process_value(impl_processor(value), dialect)
worker_1 | File "/app/redash/models/types.py", line 28, in process_result_value
worker_1 | return ConfigurationContainer.from_json(super(EncryptedConfiguration, self).process_result_value(value, dialect))
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py", line 409, in process_result_value
worker_1 | decrypted_value = self.engine.decrypt(value)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py", line 216, in decrypt
worker_1 | decrypted = self.fernet.decrypt(value)
worker_1 | File "/usr/local/lib/python2.7/dist-packages/cryptography/fernet.py", line 103, in decrypt
worker_1 | raise InvalidToken
worker_1 | InvalidToken
this is my yaml file
version: '2'
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "Q422k6vaXUk8"
REDASH_WEB_WORKERS: 4
restart: unless-stopped
worker:
image: redash/redash:latest
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
restart: unless-stopped
redis:
image: redis:3.0-alpine
ports:
- "6379:6379"
volumes:
- ./data/redis_data:/data
restart: always
postgres:
image: postgres:9.5.6-alpine
ports:
- "5432:5432"
volumes:
- ./data/postgresql_data:/var/lib/postgresql/data
restart: unless-stopped
1,docker-compose -f docker-compose-prod.yaml run --rm server create_db
2,docker-compose -f docker-compose-prod.yaml up
3,visit http://127.0.0.1:5000/ and add mysql data source success
then visit http://127.0.0.1:5000/queries/new , create a new query and execute will get an error like the one above. InvalidToken
You need to set the same REDASH_COOKIE_SECRET for all Redash Docker services. In your case: both server and worker.
You need to set the same
REDASH_COOKIE_SECRETfor all Redash Docker services. In your case: bothserverandworker.
how to deal with this problem
@uniquewdl
just add a environment same parameter REDASH_COOKIE_SECRET and value form server to worker
services:
server:
image: redash/redash:latest
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "Q422k6vaXUk8"
REDASH_WEB_WORKERS: 4
restart: always
worker:
image: redash/redash:latest
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_COOKIE_SECRET: "Q422k6vaXUk8"
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
restart: always
@uniquewdl
just add a environment same parameter REDASH_COOKIE_SECRET and value form server to workerserver: image: redash/redash:latest command: server depends_on: - postgres - redis ports: - "5000:5000" environment: PYTHONUNBUFFERED: 0 REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" REDASH_COOKIE_SECRET: "Q422k6vaXUk8" REDASH_WEB_WORKERS: 4 restart: always worker: image: redash/redash:latest command: scheduler environment: PYTHONUNBUFFERED: 0 REDASH_COOKIE_SECRET: "Q422k6vaXUk8" REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" QUEUES: "queries,scheduled_queries,celery" WORKERS_COUNT: 2 restart: always
how to generate REDASH_COOKIE_SECRET
just copy from server environment,you can see https://github.com/getredash/setup just run with docker-compose up
只需从服务器环境中复制,您就可以看到https://github.com/getredash/setup 刚与docker-compose up一起运行
不好意思,我不太理解您说的从服务器环境中复制。我描述一下我的疑问:我在配置redash-compose.yml的时候需要填写REDASH_COOKIE_SECRET,那我的REDASH_COOKIE_SECRET是从哪里获取呢。
Hey even after setting the same REDASH_COOKIE_SECRET for worker and server and scheduler (all three) I am getting this InvalidToken issue. Need help on this.
Most helpful comment
You need to set the same
REDASH_COOKIE_SECRETfor all Redash Docker services. In your case: bothserverandworker.