You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "jgournet (via GitHub)" <gi...@apache.org> on 2025/08/26 04:56:00 UTC

[I] ARM (linux/arm64) with superset v5 [superset]

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

   ### Bug description
   
   When trying to send screenshots for reports, on ARM64 servers, we're getting this after upgrading to v5:
   ```
   Traceback (most recent call last):
     File "/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/driver_finder.py", line 67, in _binary_paths
       raise WebDriverException(f"Unsupported platform/architecture combination: {sys.platform}/{arch}")
   Traceback (most recent call last):
     File "/app/superset/utils/webdriver.py", line 311, in auth
       driver = self.create()
       return driver_class(**kwargs)
       raise NoSuchDriverException(msg) from err
   selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for firefox; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
       ).run()
     File "/app/superset/utils/decorators.py", line 266, in wrapped
       return on_error(ex)
     File "/app/superset/utils/decorators.py", line 236, in on_error
     File "/app/superset/utils/decorators.py", line 259, in wrapped
       ).run()
     File "/app/superset/utils/decorators.py", line 266, in wrapped
       return on_error(ex)
     File "/app/superset/utils/decorators.py", line 259, in wrapped
     File "/app/superset/commands/report/execute.py", line 858, in run
     File "/app/superset/commands/report/execute.py", line 726, in next
       self.send()
       notification_content = self._get_notification_content()
     File "/app/superset/commands/report/execute.py", line 505, in _get_notification_content
       screenshot_data = self._get_screenshots()
   [2025-08-26 04:20:04,146: ERROR/ForkPoolWorker-8] A downstream exception occurred while generating a report: 33d5ab22-2cdc-4b9a-9707-19ee0e80b24b. Failed taking a screenshot Message: Unable to obtain driver for firefox; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
     File "/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/selenium_manager.py", line 94, in _get_binary
       self.screenshot = driver.get_screenshot(self.url, self.element, user)
     File "/app/superset/utils/webdriver.py", line 387, in get_screenshot
       driver = self.auth(user)
     File "/app/superset/utils/webdriver.py", line 308, in create
       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
     File "/app/.venv/lib/python3.10/site-packages/selenium/webdriver/common/driver_finder.py", line 78, in _binary_paths
   Traceback (most recent call last):
       raise ex
       result = func(*args, **kwargs)
     File "/app/superset/utils/decorators.py", line 236, in on_error
       result = func(*args, **kwargs)
       raise ReportScheduleScreenshotFailedError(
   superset.commands.report.exceptions.ReportScheduleScreenshotFailedError: Failed taking a screenshot Message: Unable to obtain driver for firefox; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
       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
   selenium.common.exceptions.WebDriverException: Message: Unsupported platform/architecture combination: linux/aarch64
   The above exception was the direct cause of the following exception:
     File "/app/superset/commands/report/execute.py", line 357, in _get_screenshots
       if imge := screenshot.get_screenshot(user=user):
     File "/app/superset/utils/screenshots.py", line 176, in get_screenshot
     File "/app/.venv/lib/python3.10/site-packages/selenium/webdriver/firefox/webdriver.py", line 57, in __init__
       return self._binary_paths()["browser_path"]
   The above exception was the direct cause of the following exception:
     File "/app/superset/tasks/scheduler.py", line 99, in execute
     File "/app/superset/commands/report/execute.py", line 896, in run
       raise ex
       ).next()
     File "/app/superset/commands/report/execute.py", line 624, in send
     File "/app/superset/commands/report/execute.py", line 363, in _get_screenshots
   ```
   
   ### Screenshots/recordings
   
   _No response_
   
   ### Superset version
   
   5.0.0
   
   ### Python version
   
   3.10
   
   ### Node version
   
   I don't know
   
   ### Browser
   
   Not applicable
   
   ### Additional context
   
   this was working fine in superset v4, knowing that we had to add this into docker image:
   ```
     # Install geckodriver for reports (ARM/AMD support):
     #ARCH=$(uname -m) && \
     curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest > /tmp/json && \
     if [ "$TARGETARCH" = "amd64" ]; then \
       ARCH="linux64"; \
       #GECKO_URL=$(cat /tmp/json | jq -r '.assets[].browser_download_url | select(endswith("linux64.tar.gz"))'); \
     elif [ "$TARGETARCH" = "arm64" ]; then \
        ARCH="linux-aarch64"; \
       #GECKO_URL=$(cat /tmp/json | jq -r '.assets[].browser_download_url | select(endswith("linux-aarch64.tar.gz"))'); \
     else \
       echo "Unsupported architecture" && exit 1; \
     fi && \
     GECKO_URL=$(jq -r --arg ARCH "$ARCH" '.assets[].browser_download_url | select(endswith("\($ARCH).tar.gz"))' /tmp/json) && \
     rm /tmp/json && \
     curl -s -L "$GECKO_URL" | tar -xz && \
     chmod +x geckodriver && \
     mv geckodriver "/usr/local/bin"
   ```
   
   ### Checklist
   
   - [x] I have searched Superset docs and Slack and didn't find a solution to my problem.
   - [x] I have searched the GitHub issue tracker and didn't find a similar bug report.
   - [x] 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: 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


Re: [I] ARM (linux/arm64) with superset v5 [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
dosubot[bot] commented on issue #34849:
URL: https://github.com/apache/superset/issues/34849#issuecomment-3222724839

   <!-- Answer -->
   For Playwright screenshots to work in Superset v5 on ARM64, make sure you set the environment variable `SUPERSET_FEATURE_PLAYWRIGHT_REPORTS_AND_THUMBNAILS=true` (not just `PLAYWRIGHT_REPORTS_AND_THUMBNAILS`) and add `ENABLE_PLAYWRIGHT=true` in your `docker/.env` if you use Docker [source](https://github.com/apache/superset/discussions/32149#discussioncomment-13115961).
   
   Also, confirm your Docker image was built with `INCLUDE_CHROMIUM=true` so Chromium browser binaries are present—this is required for Playwright to function, and it's not included by default in v5 [source](https://github.com/apache/superset/pull/34258). After installing the Python Playwright package, run `playwright install chromium` inside your container if you didn't build with the flag.
   
   Finally, Pillow must be installed for Playwright tiled screenshots [source](https://github.com/apache/superset/pull/34561).
   
   If you still see errors, check your Superset logs for Playwright-specific messages or failures and share the exact error output—this will help pinpoint if it's a config, dependency, or runtime issue.
   
   
   <!-- Dosu Comment Footer -->
   *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*
   
   ---
   <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/bfee61fa-53cf-47a5-b339-2d50ea0cf96f?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu
 b)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/34849)


-- 
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] ARM (linux/arm64) with superset v5 [superset]

Posted by "jgournet (via GitHub)" <gi...@apache.org>.
jgournet closed issue #34849: ARM (linux/arm64) with superset v5
URL: https://github.com/apache/superset/issues/34849


-- 
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] ARM (linux/arm64) with superset v5 [superset]

Posted by "dosubot[bot] (via GitHub)" <gi...@apache.org>.
dosubot[bot] commented on issue #34849:
URL: https://github.com/apache/superset/issues/34849#issuecomment-3222622451

   <!-- Answer -->
   Superset v5 fails to generate screenshots for reports on ARM64 because the Docker image no longer includes geckodriver, and Selenium Manager (used by Selenium 4.6+) does not support ARM64 for Firefox/geckodriver detection, resulting in the "Unsupported platform/architecture combination: linux/aarch64" error. This is not handled by Superset itself but is an upstream issue with Selenium and packaging [source](https://github.com/apache/superset/issues/34025).
   
   To restore screenshot/report functionality, you have two main options:
   
   1. **Extend your Docker image to manually install geckodriver for ARM64**, as you did in Superset v4. This workaround is still valid for v5, since Superset relies on the driver being present in the container [source](https://github.com/apache/superset/issues/34025).
   
   2. **Switch to the Playwright backend for screenshots**, which is more robust in containerized environments and supports ARM64. Enable the `PLAYWRIGHT_REPORTS_AND_THUMBNAILS` feature flag and install the `playwright` Python package. This uses Chromium instead of Firefox and avoids the Selenium/geckodriver issue [source](https://github.com/apache/superset/issues/34774).
   
   There is no ARM64-specific fallback or configuration in Superset v5 for Selenium/geckodriver, so compatibility depends on the underlying driver binaries and Selenium's detection logic [source](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/utils/webdriver.py).
   
   Let me know if you need details on configuring Playwright or patching your Dockerfile for geckodriver!
   
   
   <!-- Dosu Comment Footer -->
   *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*
   
   ---
   <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/82377fcd-a6bf-483d-8222-4acdfbb17bb9?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu
 b)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/34849)


-- 
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] ARM (linux/arm64) with superset v5 [superset]

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

   So I already have the gecko driver added, as seen above.
   I've tried adding playwright and setting PLAYWRIGHT_REPORTS_AND_THUMBNAILS to "true" and "True", but no luck so far


-- 
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] ARM (linux/arm64) with superset v5 [superset]

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

   Yes, my bad - I tried setting PLAYWRIGHT_REPORTS_AND_THUMBNAILS env var ...
   I've moved it to be set in a config.py file and it's now working 


-- 
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