Send emails does not work -official documentation wrong? CHROME=>version incompatible ChromeDriver/Chrome FIREFOX=> 'geckodriver' executable needs to be in PATH
Sending emails does not work - does not mind if firefox or chrome is used
How to reproduce the bug
create custom dockerfile with adding firefox or chrome (same issue if you only add one of them) and config having redis active and reachable from docker start docker init image, load example and add a job for sending a report every minute
superset fab create-admin --username admin --firstname Superset --lastname Admin --email [email protected] --password admin
superset db upgrade
superset load_examples
superset init
start celery
celery --app=superset.tasks.celery_app:app worker --pool=prefork -O fair -c 4
HINT: featureflag alert_reports is active

Expected results
email is sent
Actual results
error is shown in logfile, no email is sent
Official Documentation: https://superset.apache.org/docs/installation/alerts-reports/
HINT CHROME: the chromedriver version is using V88 (LATEST_RELEASE_88) and the chrome stable is using currently 103 => I already changed this and updated "LATEST_RELEASE_88" to "LATEST_RELEASE"
=> if I use it without "_88" the error with version incompatibility is not there anymore and it works
firefox
dockerfile
FROM apache/superset:2.0.0
USER superset:superset
COPY custom_sso_security_manager.py /app/pythonpath/custom_sso_security_manager.py
COPY superset_config.py /app/pythonpath/superset_config.py
USER root:root
RUN chown superset:superset /app/pythonpath/custom_sso_security_manager.py
RUN chown superset:superset /app/pythonpath/superset_config.py
RUN chmod +x /app/pythonpath/custom_sso_security_manager.py
RUN chmod +x /app/pythonpath/superset_config.py
RUN apt-get update && \
apt-get install --no-install-recommends -y firefox-esr
ENV GECKODRIVER_VERSION=0.29.0
RUN wget -q https://github.com/mozilla/geckodriver/releases/download/v${GECKODRIVER_VERSION}/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz && \
tar -x geckodriver -zf geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz -O > /usr/bin/geckodriver && \
chmod 777 /usr/bin/geckodriver && \
rm geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz
RUN pip install --no-cache authlib gevent psycopg2 redis
USER superset:superset
error
logging was configured successfully
2022-07-25 09:25:43,392:INFO:superset.utils.logging_configurator:logging was configured successfully
2022-07-25 09:25:43,399:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
-------------- celery@7db8236e4201 v5.2.2 (dawn-chorus)
--- ***** -----
-- ******* ---- Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-with-glibc2.2.5 2022-07-25 09:25:45
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: __main__:0x7ff39e8a2040
- ** ---------- .> transport: redis://redis:6379/5
- ** ---------- .> results: redis://redis:6379/5
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
SQLite Database support for metadata databases will be removed in a future version of Superset.
[2022-07-25 09:25:47,477: WARNING/ForkPoolWorker-4] SQLite Database support for metadata databases will be removed in a future version of Superset.
Init selenium driver
[2022-07-25 09:25:47,565: INFO/ForkPoolWorker-4] Init selenium driver
A downstream exception occurred while generating a report: f7372ee4-3c4d-4b6a-8b78-930926d4ba4f
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 72, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "/usr/local/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/superset/reports/commands/execute.py", line 234, in _get_screenshots
image = screenshot.get_screenshot(user=user)
File "/app/superset/utils/screenshots.py", line 74, in get_screenshot
self.screenshot = driver.get_screenshot(self.url, self.element, user)
File "/app/superset/utils/webdriver.py", line 109, in get_screenshot
driver = self.auth(user)
File "/app/superset/utils/webdriver.py", line 87, in auth
driver = self.create()
File "/app/superset/utils/webdriver.py", line 84, in create
return driver_class(**kwargs)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 81, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/superset/tasks/scheduler.py", line 79, in execute
AsyncExecuteReportScheduleCommand(
File "/app/superset/reports/commands/execute.py", line 659, in run
raise ex
File "/app/superset/reports/commands/execute.py", line 655, in run
ReportScheduleStateMachine(
File "/app/superset/reports/commands/execute.py", line 624, in run
state_cls(
File "/app/superset/reports/commands/execute.py", line 525, in next
raise first_ex
File "/app/superset/reports/commands/execute.py", line 503, in next
self.send()
File "/app/superset/reports/commands/execute.py", line 408, in send
notification_content = self._get_notification_content()
File "/app/superset/reports/commands/execute.py", line 334, in _get_notification_content
screenshot_data = self._get_screenshots()
File "/app/superset/reports/commands/execute.py", line 239, in _get_screenshots
raise ReportScheduleScreenshotFailedError(
superset.reports.commands.exceptions.ReportScheduleScreenshotFailedError: Failed taking a screenshot Message: 'geckodriver' executable needs to be in PATH.
[2022-07-25 09:25:47,881: ERROR/ForkPoolWorker-4] A downstream exception occurred while generating a report: f7372ee4-3c4d-4b6a-8b78-930926d4ba4f
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 72, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "/usr/local/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/superset/reports/commands/execute.py", line 234, in _get_screenshots
image = screenshot.get_screenshot(user=user)
File "/app/superset/utils/screenshots.py", line 74, in get_screenshot
self.screenshot = driver.get_screenshot(self.url, self.element, user)
File "/app/superset/utils/webdriver.py", line 109, in get_screenshot
driver = self.auth(user)
File "/app/superset/utils/webdriver.py", line 87, in auth
driver = self.create()
File "/app/superset/utils/webdriver.py", line 84, in create
return driver_class(**kwargs)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 81, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/superset/tasks/scheduler.py", line 79, in execute
AsyncExecuteReportScheduleCommand(
File "/app/superset/reports/commands/execute.py", line 659, in run
raise ex
File "/app/superset/reports/commands/execute.py", line 655, in run
ReportScheduleStateMachine(
File "/app/superset/reports/commands/execute.py", line 624, in run
state_cls(
File "/app/superset/reports/commands/execute.py", line 525, in next
raise first_ex
File "/app/superset/reports/commands/execute.py", line 503, in next
self.send()
File "/app/superset/reports/commands/execute.py", line 408, in send
notification_content = self._get_notification_content()
File "/app/superset/reports/commands/execute.py", line 334, in _get_notification_content
screenshot_data = self._get_screenshots()
File "/app/superset/reports/commands/execute.py", line 239, in _get_screenshots
raise ReportScheduleScreenshotFailedError(
superset.reports.commands.exceptions.ReportScheduleScreenshotFailedError: Failed taking a screenshot Message: 'geckodriver' executable needs to be in PATH.
chrome LATEST_RELEASE_88 (from docu page, unchanged)
dockerfile
FROM apache/superset:2.0.0
USER superset:superset
COPY custom_sso_security_manager.py /app/pythonpath/custom_sso_security_manager.py
COPY superset_config.py /app/pythonpath/superset_config.py
USER root:root
RUN chown superset:superset /app/pythonpath/custom_sso_security_manager.py
RUN chown superset:superset /app/pythonpath/superset_config.py
RUN chmod +x /app/pythonpath/custom_sso_security_manager.py
RUN chmod +x /app/pythonpath/superset_config.py
RUN apt-get update && \
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb && \
rm -f google-chrome-stable_current_amd64.deb
RUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_88) && \
wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip && \
unzip chromedriver_linux64.zip -d /usr/bin && \
chmod 755 /usr/bin/chromedriver && \
rm -f chromedriver_linux64.zip
RUN pip install --no-cache authlib gevent psycopg2 redis
USER superset:superset
error
Init selenium driver
[2022-07-25 09:54:00,174: INFO/ForkPoolWorker-4] Init selenium driver
A downstream exception occurred while generating a report: 1d59d5b2-f620-480b-9a89-a6a15ef9917b
Traceback (most recent call last):
File "/app/superset/reports/commands/execute.py", line 234, in _get_screenshots
image = screenshot.get_screenshot(user=user)
File "/app/superset/utils/screenshots.py", line 74, in get_screenshot
self.screenshot = driver.get_screenshot(self.url, self.element, user)
File "/app/superset/utils/webdriver.py", line 109, in get_screenshot
driver = self.auth(user)
File "/app/superset/utils/webdriver.py", line 87, in auth
driver = self.create()
File "/app/superset/utils/webdriver.py", line 84, in create
return driver_class(**kwargs)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
RemoteWebDriver.__init__(
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 103.0.5060.134 with binary path /usr/bin/google-chrome
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/superset/tasks/scheduler.py", line 79, in execute
AsyncExecuteReportScheduleCommand(
File "/app/superset/reports/commands/execute.py", line 659, in run
raise ex
File "/app/superset/reports/commands/execute.py", line 655, in run
ReportScheduleStateMachine(
File "/app/superset/reports/commands/execute.py", line 624, in run
state_cls(
File "/app/superset/reports/commands/execute.py", line 525, in next
raise first_ex
File "/app/superset/reports/commands/execute.py", line 503, in next
self.send()
File "/app/superset/reports/commands/execute.py", line 408, in send
notification_content = self._get_notification_content()
File "/app/superset/reports/commands/execute.py", line 334, in _get_notification_content
screenshot_data = self._get_screenshots()
File "/app/superset/reports/commands/execute.py", line 239, in _get_screenshots
raise ReportScheduleScreenshotFailedError(
superset.reports.commands.exceptions.ReportScheduleScreenshotFailedError: Failed taking a screenshot Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 103.0.5060.134 with binary path /usr/bin/google-chrome
[2022-07-25 09:54:01,631: ERROR/ForkPoolWorker-4] A downstream exception occurred while generating a report: 1d59d5b2-f620-480b-9a89-a6a15ef9917b
Traceback (most recent call last):
File "/app/superset/reports/commands/execute.py", line 234, in _get_screenshots
image = screenshot.get_screenshot(user=user)
File "/app/superset/utils/screenshots.py", line 74, in get_screenshot
self.screenshot = driver.get_screenshot(self.url, self.element, user)
File "/app/superset/utils/webdriver.py", line 109, in get_screenshot
driver = self.auth(user)
File "/app/superset/utils/webdriver.py", line 87, in auth
driver = self.create()
File "/app/superset/utils/webdriver.py", line 84, in create
return driver_class(**kwargs)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
RemoteWebDriver.__init__(
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 103.0.5060.134 with binary path /usr/bin/google-chrome
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/superset/tasks/scheduler.py", line 79, in execute
AsyncExecuteReportScheduleCommand(
File "/app/superset/reports/commands/execute.py", line 659, in run
raise ex
File "/app/superset/reports/commands/execute.py", line 655, in run
ReportScheduleStateMachine(
File "/app/superset/reports/commands/execute.py", line 624, in run
state_cls(
File "/app/superset/reports/commands/execute.py", line 525, in next
raise first_ex
File "/app/superset/reports/commands/execute.py", line 503, in next
self.send()
File "/app/superset/reports/commands/execute.py", line 408, in send
notification_content = self._get_notification_content()
File "/app/superset/reports/commands/execute.py", line 334, in _get_notification_content
screenshot_data = self._get_screenshots()
File "/app/superset/reports/commands/execute.py", line 239, in _get_screenshots
raise ReportScheduleScreenshotFailedError(
superset.reports.commands.exceptions.ReportScheduleScreenshotFailedError: Failed taking a screenshot Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 103.0.5060.134 with binary path /usr/bin/google-chrome
Environment
(please complete the following information):
- browser type and version: Chrome latest
- superset version: 2.0.0
- any feature flags active: "ALERT_REPORTS": True
Checklist
Make sure to follow these steps before submitting your issue - thank you!
- [x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
- [x] I have reproduced the issue with at least the latest released version of superset.
- [x] I have checked the issue tracker for the same issue and I haven't found one similar.
Additional context
superset_config firefox
from flask_appbuilder.security.manager import AUTH_OID,AUTH_REMOTE_USER,AUTH_DB, AUTH_LDAP, AUTH_OAUTH
from celery.schedules import crontab
import os
from custom_sso_security_manager import CustomSsoSecurityManager
CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
basedir = os.path.abspath(os.path.dirname(__file__))
SUPERSET_WORKERS = 1
# AUTHENTIFICATION STUFF ---------------------------------------------------------------------------
OIDCCID="REMOVED"
OIDCCS="REMOVED"
CSRF_ENABLED = True
AUTH_TYPE = AUTH_OAUTH
AUTH_USER_REGISTRATION = True
AUTH_ROLES_MAPPING = {
"REMOVED": ["Admin"]
}
AUTH_ROLES_SYNC_AT_LOGIN = True
PERMANENT_SESSION_LIFETIME = 600
OAUTH_PROVIDERS = [
{
REMOVED
}
]
ENABLE_PROXY_FIX = True
PREFERRED_URL_SCHEME = 'https'
# Console Log Settings
DATA_DIR = os.path.join(os.path.expanduser('~'), '.superset')
if not os.path.exists(DATA_DIR):
os.makedirs(DATA_DIR)
LOG_FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
LOG_LEVEL = 'DEBUG'
# ---------------------------------------------------
# Enable Time Rotate Log Handler
# ---------------------------------------------------
# LOG_LEVEL = DEBUG, INFO, WARNING, ERROR, CRITICAL
ENABLE_TIME_ROTATE = False
TIME_ROTATE_LOG_LEVEL = 'DEBUG'
FILENAME = os.path.join(DATA_DIR, 'superset.log')
ROLLOVER = 'midnight'
INTERVAL = 1
BACKUP_COUNT = 30
## REDIS/CELERY/ALERTS ------------------------------------
from celery.schedules import crontab
FEATURE_FLAGS = {
"ALERT_REPORTS": True
}
REDIS_HOST = "redis"
REDIS_PORT = "6379"
CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'redis',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://redis:6379/1'
}
FILTER_STATE_CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_filter_',
'CACHE_REDIS_URL': 'redis://redis:6379/2'
}
EXPLORE_FORM_DATA_CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_filter_',
'CACHE_REDIS_URL': 'redis://redis:6379/3'
}
class CeleryConfig:
broker_url = 'redis://redis:6379/5'
imports = ('superset.sql_lab', "superset.tasks", "superset.tasks.thumbnails", )
result_backend = 'redis://redis:6379/5'
worker_prefetch_multiplier = 10
worker_log_level = 'DEBUG'
task_acks_late = True
task_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,
},
}
beat_schedule = {
'reports.scheduler': {
'task': 'reports.scheduler',
'schedule': crontab(minute='*', hour='*'),
},
}
CELERY_CONFIG = CeleryConfig
SCREENSHOT_LOCATE_WAIT = 100
SCREENSHOT_LOAD_WAIT = 600
# Email configuration
SMTP_HOST = "REMOVED"
SMTP_STARTTLS = True
SMTP_SSL = True
SMTP_USER = "REMOVED"
SMTP_PORT = 25
SMTP_PASSWORD = "REMOVED"
SMTP_MAIL_FROM = "REMOVED"
## https://superset.apache.org/docs/installation/alerts-reports/ webdriver cfg
# This is for internal use, you can keep http
WEBDRIVER_BASEURL="http://superset:8088"
# This is the link sent to the recipient, change to your domain eg. https://superset.mydomain.com
WEBDRIVER_BASEURL_USER_FRIENDLY="https://superset.localhost/"
superset_config chrome
from flask_appbuilder.security.manager import AUTH_OID,AUTH_REMOTE_USER,AUTH_DB, AUTH_LDAP, AUTH_OAUTH
from celery.schedules import crontab
import os
from custom_sso_security_manager import CustomSsoSecurityManager
CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
basedir = os.path.abspath(os.path.dirname(__file__))
SUPERSET_WORKERS = 1
# AUTHENTIFICATION STUFF ---------------------------------------------------------------------------
OIDCCID="REMOVED"
OIDCCS="REMOVED"
CSRF_ENABLED = True
AUTH_TYPE = AUTH_OAUTH
AUTH_USER_REGISTRATION = True
AUTH_ROLES_MAPPING = {
"REMOVED": ["Admin"]
}
AUTH_ROLES_SYNC_AT_LOGIN = True
PERMANENT_SESSION_LIFETIME = 600
OAUTH_PROVIDERS = [
{
REMOVED
}
]
ENABLE_PROXY_FIX = True
PREFERRED_URL_SCHEME = 'https'
# Console Log Settings
DATA_DIR = os.path.join(os.path.expanduser('~'), '.superset')
if not os.path.exists(DATA_DIR):
os.makedirs(DATA_DIR)
LOG_FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
LOG_LEVEL = 'DEBUG'
# ---------------------------------------------------
# Enable Time Rotate Log Handler
# ---------------------------------------------------
# LOG_LEVEL = DEBUG, INFO, WARNING, ERROR, CRITICAL
ENABLE_TIME_ROTATE = False
TIME_ROTATE_LOG_LEVEL = 'DEBUG'
FILENAME = os.path.join(DATA_DIR, 'superset.log')
ROLLOVER = 'midnight'
INTERVAL = 1
BACKUP_COUNT = 30
## REDIS/CELERY/ALERTS ------------------------------------
from celery.schedules import crontab
FEATURE_FLAGS = {
"ALERT_REPORTS": True
}
REDIS_HOST = "redis"
REDIS_PORT = "6379"
CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'redis',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://redis:6379/1'
}
FILTER_STATE_CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_filter_',
'CACHE_REDIS_URL': 'redis://redis:6379/2'
}
EXPLORE_FORM_DATA_CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_filter_',
'CACHE_REDIS_URL': 'redis://redis:6379/3'
}
class CeleryConfig:
broker_url = 'redis://redis:6379/5'
imports = ('superset.sql_lab', "superset.tasks", "superset.tasks.thumbnails", )
result_backend = 'redis://redis:6379/5'
worker_prefetch_multiplier = 10
worker_log_level = 'DEBUG'
task_acks_late = True
task_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,
},
}
beat_schedule = {
'reports.scheduler': {
'task': 'reports.scheduler',
'schedule': crontab(minute='*', hour='*'),
},
}
CELERY_CONFIG = CeleryConfig
SCREENSHOT_LOCATE_WAIT = 100
SCREENSHOT_LOAD_WAIT = 600
# Email configuration
SMTP_HOST = "REMOVED"
SMTP_STARTTLS = True
SMTP_SSL = True
SMTP_USER = "REMOVED"
SMTP_PORT = 25
SMTP_PASSWORD = "REMOVED"
SMTP_MAIL_FROM = "REMOVED"
## https://superset.apache.org/docs/installation/alerts-reports/ webdriver cfg
# WebDriver configuration
# If you use Firefox, you can stick with default values
# If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS
WEBDRIVER_TYPE = "chrome"
WEBDRIVER_OPTION_ARGS = [
"--force-device-scale-factor=2.0",
"--high-dpi-support=2.0",
"--headless",
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-extensions",
]
# This is for internal use, you can keep http
WEBDRIVER_BASEURL="http://superset:8088"
# This is the link sent to the recipient, change to your domain eg. https://superset.mydomain.com
WEBDRIVER_BASEURL_USER_FRIENDLY="https://superset.localhost/"
@nigzak thanks for all the effort you put into filing this issue, and sorry it slipped through the cracks for so long. A lot of updates have been made in this area. Can you confirm whether or not this is still an issue? If it is, we'll do our best to repro/triage accordingly (CC @yousoph - happy to help track this with you as needed)
Hi @rusackas
I have added both driver in my container (still like this :)) and I am using currently CHROME variant. I have shortly checked the official documentation again on page - and its still buggy. This should be at least fixed; if you use it like this it will not work
Official Documentation => https://superset.apache.org/docs/installation/alerts-reports/

This walk-through is not working because the versions are not matching and the use will fail.
Minimum suggested fix: remove "_88" to use latest version of chromedriver. With this you install the latest chrome with the _88 chromdriver - they are not compatible /// from up
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 103.0.5060.134 with binary path /usr/bin/google-chrome
exact code lines where are not matching on docu page:
https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
// downloads latest chrome (currently seems to be in linux at the moment V 108.0.5359.124)
...
export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_88) && \
wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip
// downloads CHROMEDRIVER V88
==> V88 and V108 are not compatible
///// possible fix for this on docu page (without the _88) => also uses the latest (=compatible) chromedriver 108.0.5359.71
export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE) && \
wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip
With this fix currently chromedriver version works. If Gecko works I currently don't know sorry ... I am happy that I found at least one working config :)
Just opened a teensy PR with your suggestion. If that merges, it should close this issue. Thanks for the report and the update!