Skip to content

QNN SDK download: validate archive and retry on all errors#19233

Open
rascani wants to merge 1 commit intopytorch:mainfrom
rascani:fix-qnn-sdk-download-resilience
Open

QNN SDK download: validate archive and retry on all errors#19233
rascani wants to merge 1 commit intopytorch:mainfrom
rascani:fix-qnn-sdk-download-resilience

Conversation

@rascani
Copy link
Copy Markdown
Contributor

@rascani rascani commented Apr 30, 2026

Summary

The QNN backend test workflows have been flaking because the download from softwarecenter.qualcomm.com aborts mid-stream with curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR, or returns a short error body that curl treats as a successful 200 — letting unzip choke on the not-a-zip with exit 9. The previous curl --retry 3 only covered a narrow set of transient errors and never validated the archive, so neither failure was retried. Wrap the download in a five-attempt loop using curl --fail --retry-all-errors and validate each attempt with unzip -t before proceeding, with the on-disk file size logged on failure so a tiny error body is unambiguous in the log.

Authored with Claude Code.

Test plan

CI

The QNN backend test workflows have been flaking because the download
from softwarecenter.qualcomm.com aborts mid-stream with `curl: (92)
HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR`, or returns a
short error body that curl treats as a successful 200 — letting unzip
choke on the not-a-zip with exit 9. The previous `curl --retry 3` only
covered a narrow set of transient errors and never validated the
archive, so neither failure was retried. Wrap the download in a
five-attempt loop using `curl --fail --retry-all-errors` and validate
each attempt with `unzip -t` before proceeding, with the on-disk file
size logged on failure so a tiny error body is unambiguous in the log.

Authored with Claude Code.
@pytorch-bot
Copy link
Copy Markdown

pytorch-bot Bot commented Apr 30, 2026

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/19233

Note: Links to docs will display an error until the docs builds have been completed.

✅ You can merge normally! (2 Unrelated Failures)

As of commit b0c68f6 with merge base e84a418 (image):

BROKEN TRUNK - The following jobs failed but were present on the merge base:

👉 Rebase onto the `viable/strict` branch to avoid these failures

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 30, 2026
@github-actions
Copy link
Copy Markdown

This PR needs a release notes: label

If your change should be included in the release notes (i.e. would users of this library care about this change?), please use a label starting with release notes:. This helps us keep track and include your important work in the next release notes.

To add a label, you can comment to pytorchbot, for example
@pytorchbot label "release notes: none"

For more information, see
https://github.com/pytorch/pytorch/wiki/PyTorch-AutoLabel-Bot#why-categorize-for-release-notes-and-how-does-it-work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant