shalom-t opened a new issue, #36448:
URL: https://github.com/apache/superset/issues/36448

   ### Bug description
   
   When running Apache Superset on ARM64 (AWS Graviton / linux/aarch64), all 
Alerts & Reports that require screenshot generation fail with the following 
Selenium error:
   ```
   selenium.common.exceptions.WebDriverException: Message: Unsupported 
platform/architecture combination: linux/aarch64
   ```
   Superset attempts to use Selenium Manager to automatically download a Chrome 
or Firefox WebDriver. Selenium Manager does not ship drivers for ARM64, which 
results in:
        •       Unable to obtain driver for chrome
        •       Unable to obtain driver for firefox
        •       Reports failing with ReportScheduleScreenshotFailedError
   
   This makes Alerts & Reports completely non-functional on ARM environments, 
even when Chromium + Chromedriver are installed manually inside the container.
   I can just sent it to a Slack channel as a CSV , not PNG not no other.
   
   
   Environment
        •       Architecture: ARM64 (aarch64) — AWS Graviton worker nodes
        •       Superset version: 3.x / latest Docker image
        •       Python: 3.10
        •       Selenium: bundled with official Superset image
        •       Chromium + chromedriver manually installed in /usr/bin
        •       Reports & Alerts enabled and Celery working
        •       Error occurs in both superset-worker and superset-celerybeat
   
   ### Screenshots/recordings
   
   ```
   [2025-12-07 15:53:00,352: WARNING/ForkPoolWorker-1] 
/app/.venv/lib/python3.10/site-packages/snowflake/sqlalchemy/base.py:1068: 
SAWarning: The GenericFunction 'flatten' is already registered and is going to 
be overridden.
     functions.register_function("flatten", flatten)
   
   [2025-12-07 15:53:00,416: ERROR/ForkPoolWorker-1] A downstream exception 
occurred while generating a report: 3f764eef-245a-41e8-ae06-544bbaededd0. 
Failed taking a screenshot Message: Unable to obtain driver for chrome; For 
documentation on this error, please visit: 
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
   Traceback (most recent call last):
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/driver_finder.py",
 line 67, in _binary_paths
       output = SeleniumManager().binary_paths(self._to_args())
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/selenium_manager.py",
 line 47, in binary_paths
       args = [str(self._get_binary())] + args
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/selenium_manager.py",
 line 94, in _get_binary
       raise WebDriverException(f"Unsupported platform/architecture 
combination: {sys.platform}/{arch}")
   selenium.common.exceptions.WebDriverException: Message: Unsupported 
platform/architecture combination: linux/aarch64
   
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/app/superset/commands/report/execute.py", line 375, in 
_get_screenshots
       if imge := screenshot.get_screenshot(user=user):
     File "/app/superset/utils/screenshots.py", line 179, in get_screenshot
       self.screenshot = driver.get_screenshot(self.url, self.element, user)
     File "/app/superset/utils/webdriver.py", line 463, in get_screenshot
       driver = self.auth(user)
     File "/app/superset/utils/webdriver.py", line 387, in auth
       driver = self.create()
     File "/app/superset/utils/webdriver.py", line 384, in create
       return driver_class(**kwargs)
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py",
 line 45, in __init__
       super().__init__(
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py",
 line 51, in __init__
       if finder.get_browser_path():
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/driver_finder.py",
 line 47, in get_browser_path
       return self._binary_paths()["browser_path"]
     File 
"/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/driver_finder.py",
 line 78, in _binary_paths
       raise NoSuchDriverException(msg) from err
   selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain 
driver for chrome; For documentation on this error, please visit: 
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
   
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/app/superset/tasks/scheduler.py", line 125, in execute
       ).run()
     File "/app/superset/utils/decorators.py", line 267, in wrapped
       return on_error(ex)
     File "/app/superset/utils/decorators.py", line 232, in on_error
       raise ex
     File "/app/superset/utils/decorators.py", line 260, in wrapped
       result = func(*args, **kwargs)
     File "/app/superset/commands/report/execute.py", line 956, in run
       ).run()
     File "/app/superset/utils/decorators.py", line 256, in wrapped
       return func(*args, **kwargs)
     File "/app/superset/commands/report/execute.py", line 917, in run
       ).next()
     File "/app/superset/commands/report/execute.py", line 746, in next
       self.send()
     File "/app/superset/commands/report/execute.py", line 644, in send
       notification_content = self._get_notification_content()
     File "/app/superset/commands/report/execute.py", line 529, in 
_get_notification_content
       pdf_data = self._get_pdf()
     File "/app/superset/commands/report/execute.py", line 393, in _get_pdf
       screenshots = self._get_screenshots()
     File "/app/superset/commands/report/execute.py", line 381, in 
_get_screenshots
       raise ReportScheduleScreenshotFailedError(
   superset.commands.report.exceptions.ReportScheduleScreenshotFailedError: 
Failed taking a screenshot Message: Unable to obtain driver for chrome; For 
documentation on this error, please visit: 
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
   ```
   
   ### Superset version
   
   master / latest-dev
   
   ### Python version
   
   3.9
   
   ### Node version
   
   16
   
   ### Browser
   
   Chrome
   
   ### Additional context
   
   _No response_
   
   ### Checklist
   
   - [ ] I have searched Superset docs and Slack and didn't find a solution to 
my problem.
   - [ ] I have searched the GitHub issue tracker and didn't find a similar bug 
report.
   - [ ] I have checked Superset's logs for errors and if I found a relevant 
Python stacktrace, I included it here as text in the "additional context" 
section.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to