thematheusgomes opened a new issue #10173:
URL: https://github.com/apache/incubator-superset/issues/10173
Hello guys,
I am trying to activate the email reporting feature, but I am caught in an
error that is happening in my local environment.
When I try to send a test email I get the following error:
```log
superset-worker_1 | [2020-06-26 14:18:21,977: INFO/MainProcess] Received
task: email_reports.send[424af3f6-dfc4-4854-896e-325929e597d8]
superset-worker_1 | [2020-06-26 14:18:21,977: DEBUG/MainProcess] TaskPool:
Apply <function _fast_trace_task at 0x7f27f16ea400>
(args:('email_reports.send', '424af3f6-dfc4-4854-896e-325929e597d8', {'lang':
'py', 'task': 'email_reports.send', 'id':
'424af3f6-dfc4-4854-896e-325929e597d8', 'shadow': None, 'eta': None, 'expires':
None, 'group': None, 'retries': 0, 'timelimit': [120, 150], 'root_id':
'424af3f6-dfc4-4854-896e-325929e597d8', 'parent_id': None, 'argsrepr':
"('slice', 1)", 'kwargsrepr': "{'recipients': '[email protected]'}",
'origin': 'gen10@f44409800e15', 'reply_to':
'63fed0c8-a976-384b-8b8e-691eabe81119', 'correlation_id':
'424af3f6-dfc4-4854-896e-325929e597d8', 'hostname': 'celery@6bb9f2776617',
'delivery_info': {'exchange': '', 'routing_key': 'celery', 'priority': 0,
'redelivered': None}, 'args': ['slice', 1], 'kwargs': {'recipients':
'[email protected]'}}, b'[["slice", 1], {"recipients":
"[email protected]"}, {"callbacks": null, "errbacks": null, "chain":
null, "chord": null}]', 'application/json', 'utf-8') kwargs:{})
superset-worker_1 | [2020-06-26 14:18:21,978: DEBUG/MainProcess] Task
accepted: email_reports.send[424af3f6-dfc4-4854-896e-325929e597d8] pid:21
superset_1 | 172.20.0.1 - - [26/Jun/2020 14:18:21] "POST
/sliceemailscheduleview/edit/1 HTTP/1.1" 302 -
superset_1 | INFO:werkzeug:172.20.0.1 - - [26/Jun/2020 14:18:21]
"POST /sliceemailscheduleview/edit/1 HTTP/1.1" 302 -
superset-worker_1 | [2020-06-26 14:18:21,994: ERROR/ForkPoolWorker-1] Task
email_reports.send[424af3f6-dfc4-4854-896e-325929e597d8] raised unexpected:
URLError(ConnectionRefusedError(111, 'Connection refused'),)
superset-worker_1 | Traceback (most recent call last):
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 1318, in do_open
superset-worker_1 | encode_chunked=req.has_header('Transfer-encoding'))
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
1254, in request
superset-worker_1 | self._send_request(method, url, body, headers,
encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
1300, in _send_request
superset-worker_1 | self.endheaders(body, encode_chunked=encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
1249, in endheaders
superset-worker_1 | self._send_output(message_body,
encode_chunked=encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
1036, in _send_output
superset-worker_1 | self.send(msg)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
974, in send
superset-worker_1 | self.connect()
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line
946, in connect
superset-worker_1 | (self.host,self.port), self.timeout,
self.source_address)
superset-worker_1 | File "/usr/local/lib/python3.6/socket.py", line 724,
in create_connection
superset-worker_1 | raise err
superset-worker_1 | File "/usr/local/lib/python3.6/socket.py", line 713,
in create_connection
superset-worker_1 | sock.connect(sa)
superset-worker_1 | ConnectionRefusedError: [Errno 111] Connection refused
superset-worker_1 |
superset-worker_1 | During handling of the above exception, another
exception occurred:
superset-worker_1 |
superset-worker_1 | Traceback (most recent call last):
superset-worker_1 | File
"/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 385, in
trace_task
superset-worker_1 | R = retval = fun(*args, **kwargs)
superset-worker_1 | File "/app/superset/app.py", line 114, in __call__
superset-worker_1 | return task_base.__call__(self, *args, **kwargs)
superset-worker_1 | File
"/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 650, in
__protected_call__
superset-worker_1 | return self.run(*args, **kwargs)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 374, in
schedule_email_report
superset-worker_1 | deliver_slice(schedule)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 335, in
deliver_slice
superset-worker_1 | email = _get_slice_data(schedule)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 262, in
_get_slice_data
superset-worker_1 | response = opener.open(slice_url)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 526, in open
superset-worker_1 | response = self._open(req, data)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 544, in _open
superset-worker_1 | '_open', req)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 504, in _call_chain
superset-worker_1 | result = func(*args)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 1346, in http_open
superset-worker_1 | return self.do_open(http.client.HTTPConnection, req)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py",
line 1320, in do_open
superset-worker_1 | raise URLError(err)
superset-worker_1 | urllib.error.URLError: <urlopen error [Errno 111]
Connection refused>
```
I thought it was a problem with the data on the smtp server, but I did some
local tests and the credentials are correct, so I imagine it is some blocking
on my local network, some communication failure with the bank, I don't know I
need your help .
Here are the settings I'm using:
`superset_config.py`
```python
MYSQL_USER = get_env_variable("MYSQL_USER")
MYSQL_PASSWORD = get_env_variable("MYSQL_PASSWORD")
MYSQL_HOST = get_env_variable("MYSQL_HOST")
MYSQL_PORT = get_env_variable("MYSQL_PORT")
MYSQL_DATABASE = get_env_variable("MYSQL_DATABASE")
CACHE_CONFIG = {
'CACHE_TYPE': 'redis',
'CACHE_DEFAULT_TIMEOUT': 300,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'redis',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://redis:6379/1'}
SQLALCHEMY_DATABASE_URI = 'mysql://%s:%s@%s:%s/%s' % (
MYSQL_USER,
MYSQL_PASSWORD,
MYSQL_HOST,
MYSQL_PORT,
MYSQL_DATABASE
)
SQLALCHEMY_TRACK_MODIFICATIONS = True
SECRET_KEY = 'xxxxxxxxxxxxxxxxx'
REDIS_HOST = get_env_variable("REDIS_HOST")
REDIS_PORT = get_env_variable("REDIS_PORT")
RESULTS_BACKEND = FileSystemCache('/app/superset_home/sqllab')
# Extras
ENABLE_PROXY_FIX = True
class CeleryConfig(object):
BROKER_URL = 'redis://redis:6379/0'
CELERY_IMPORTS = (
'superset.sql_lab',
'superset.tasks',
)
CELERY_RESULT_BACKEND = 'redis://redis:6379/0'
CELERYD_LOG_LEVEL = 'DEBUG'
CELERYD_PREFETCH_MULTIPLIER = 10
CELERY_ACKS_LATE = True
CELERY_ANNOTATIONS = {
'sql_lab.get_sql_results': {
'rate_limit': '100/s',
},
'email_reports.send': {
'rate_limit': '1/s',
'time_limit': 120,
'soft_time_limit': 150,
'ignore_result': True,
},
}
CELERYBEAT_SCHEDULE = {
'email_reports.schedule_hourly': {
'task': 'email_reports.schedule_hourly',
'schedule': crontab(minute=1, hour='*'),
},
}
CELERY_CONFIG = CeleryConfig
# Email Reports
EMAIL_NOTIFICATIONS = True
SMTP_HOST = "email-smtp.us-east-1.amazonaws.com"
SMTP_STARTTLS = True
SMTP_SSL = True
SMTP_USER = "xxxxxxxxxxxxxxxxxxxxxxxx"
SMTP_PORT = 25
SMTP_PASSWORD = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SMTP_MAIL_FROM = "[email protected]"
```
`docker-compose.yml`
```docker
x-superset-build: &superset-build
args:
NPM_BUILD_CMD: build-dev
context: ./
dockerfile: Dockerfile
target: dev
x-superset-depends-on: &superset-depends-on
- mysql
- redis
x-superset-volumes: &superset-volumes
# /app/pythonpath_docker will be appended to the PYTHONPATH in the final
container
- ./docker/docker-init.sh:/app/docker-init.sh
- ./docker/pythonpath_dev:/app/pythonpath
- ./superset:/app/superset
- ./superset-frontend:/app/superset-frontend
- superset_home:/app/superset_home
version: "3.7"
services:
redis:
image: redis:3.2
restart: unless-stopped
ports:
- "127.0.0.1:6379:6379"
volumes:
- redis:/data
mysql:
command: --character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
env_file: docker/.env
image: mysql:5
restart: unless-stopped
ports:
- "127.0.0.1:3306:3306"
volumes:
- mysql:/var/lib/mysql
superset:
build: *superset-build
command: ["flask", "run", "-p", "8088", "--with-threads", "--reload",
"--debugger", "--host=0.0.0.0"]
env_file: docker/.env
restart: unless-stopped
ports:
- 8088:8088
depends_on: *superset-depends-on
volumes: *superset-volumes
superset-init:
build: *superset-build
command: ["/app/docker-init.sh"]
env_file: docker/.env
depends_on: *superset-depends-on
volumes: *superset-volumes
superset-worker:
user: root
build: *superset-build
command: ["celery", "worker", "--app=superset.tasks.celery_app:app",
"--pool=prefork", "-Ofair", "-c", "4", "--loglevel=DEBUG",
"--max-tasks-per-child=128"]
env_file: docker/.env
restart: unless-stopped
ports:
- 25:25
depends_on: *superset-depends-on
volumes: *superset-volumes
superset-beat:
build: *superset-build
user: root # Just a Test
command: ["celery", "beat", "--app=superset.tasks.celery_app:app",
"--pidfile=", "--loglevel=DEBUG", "-f", "/app/celery_beat.log"]
env_file: docker/.env
restart: unless-stopped
depends_on: *superset-depends-on
volumes: *superset-volumes
volumes:
superset_home:
external: false
mysql:
external: false
redis:
external: false
```
Please, if anyone can help me I would be grateful.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]