push of locally built snap fails on arm64 device
Metadata
Current evaluation
Fixed in Snapcraft 8.6 by merged PR #5136 (commit 2e7f5c3b), which migrated Snapcraft to core24 and updated bundled unsquashfs to 4.6.1; overlapping PR #5147 was closed.
Resolution: closed resolved
Reason: PR #5136 was merged as commit 2e7f5c3b and delivered the core24 runtime with unsquashfs 4.6.1 in Snapcraft 8.6. PR #5147 independently confirmed the failure and fix, then closed as overlapping work.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Bug Description
When attempting to push a locally built snap to the store with my qualcomm based laptop I get the following stderr:
```
FATAL ERROR: Data queue size is too large
```
### To Reproduce
snapcraft push SOMELOCALLYBUILT.snap
### Environment
snapcraft: 12827
uname: Linux xps13-qc 6.11.0-35-qcom-x1e #35-Ubuntu SMP PREEMPT_DYNAMIC Wed Oct 23 15:18:06 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
### snapcraft.yaml
```yaml
NA
```
### Relevant log output
```shell
2024-10-22 16:18:30.743 Starting snapcraft, version 8.4.3
2024-10-22 16:18:30.743 Log verbosity level set to BRIEF
2024-10-22 16:18:30.743 Preparing application...
2024-10-22 16:18:30.744 Configuring application...
2024-10-22 16:18:30.744 Setting up ConfigService
2024-10-22 16:18:30.758 Build plan: platform=None, build_for=None
2024-10-22 16:18:30.758 Running snapcraft push on host
2024-10-22 16:18:30.819 snapcraft internal error: SnapDataExtractionError('thunderbird_128.3.3esr-1_arm64.snap')
2024-10-22 16:18:30.829 Traceback (most recent call last):
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/snapcraft_legacy/_store.py", line 58, in get_data_from_snap_file
2024-10-22 16:18:30.829 output = subprocess.check_output(
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/usr/lib/python3.10/subprocess.py", line 421, in check_output
2024-10-22 16:18:30.829 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/usr/lib/python3.10/subprocess.py", line 526, in run
2024-10-22 16:18:30.829 raise CalledProcessError(retcode, process.args,
2024-10-22 16:18:30.829 subprocess.CalledProcessError: Command '['/snap/snapcraft/12827/usr/bin/unsquashfs', '-d', '/tmp/tmpoh95i6tt/squashfs-root', PosixPath('thunderbird_128.3.3esr-1_arm64.snap'), 'meta/snap.yaml', 'snap/manifest.yaml']' returned non-zero exit status 1.
2024-10-22 16:18:30.829
2024-10-22 16:18:30.829 During handling of the above exception, another exception occurred:
2024-10-22 16:18:30.829 Traceback (most recent call last):
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/craft_application/application.py", line 568, in run
2024-10-22 16:18:30.829 return_code = self._run_inner()
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/snapcraft/application.py", line 215, in _run_inner
2024-10-22 16:18:30.829 return_code = super()._run_inner()
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/craft_application/application.py", line 549, in _run_inner
2024-10-22 16:18:30.829 return_code = dispatcher.run() or os.EX_OK
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/craft_cli/dispatcher.py", line 487, in run
2024-10-22 16:18:30.829 return self._loaded_command.run(self._parsed_command_args)
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/snapcraft/commands/upload.py", line 116, in run
2024-10-22 16:18:30.829 snap_yaml, manifest_yaml = get_data_from_snap_file(snap_file)
2024-10-22 16:18:30.829 File "/snap/snapcraft/12827/lib/python3.10/site-packages/snapcraft_legacy/_store.py", line 70, in get_data_from_snap_file
2024-10-22 16:18:30.829 raise SnapDataExtractionError(os.path.basename(snap_path))
2024-10-22 16:18:30.829 snapcraft_legacy.internal.errors.SnapDataExtractionError: Cannot read data from snap 'thunderbird_128.3.3esr-1_arm64.snap'. The file may be corrupted.
```
```
### Additional context
_No response_
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Fixed in Snapcraft 8.6 by merged PR #5136 (commit 2e7f5c3b), which migrated Snapcraft to core24 and updated bundled unsquashfs to 4.6.1; overlapping PR #5147 was closed. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merging PR #5136 (commit 2e7f5c3b), which updated Snapcraft’s runtime to core24 and shipped unsquashfs 4.6.1; the fix reached Snapcraft 8.6 after PR #5147 was closed as overlapping. | |
| qwen/qwen3.6-35b-a3b | — | — | Resolved via PR #5147 and merged in #5136. A bug in the bundled unsquashfs 4.5 caused push failures on arm64 and x86_64. The fix is included in Snapcraft 8.6, targeting the candidate release on Jan 20, 2025. | |
| qwen/qwen3.6-35b-a3b | — | — | Resolved by replacing the bundled unsquashfs with the system version, fixing the "Data queue size is too large" error during push. The fix merged via PR #5147 and targets Snapcraft 8.6. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Fixed in Snapcraft 8.6 via PR #5136. The bundled unsquashfs v4.5 failed on large snaps due to a queue size limit. Replacing it with the system version resolves the push failure on arm64 and x86_64. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/snapcraft#5136
(confidence 99%)
Merged commit 2e7f5c3b updated Snapcraft's runtime to core24, providing unsquashfs 4.6.1.
-
Related To:
canonical/snapcraft#5147
(confidence 98%)
Proposed the same unsquashfs failure fix, was confirmed by the reporter, and closed unmerged as overlapping #5136.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #331 feat(snap): build on arm64 | fetch-service | merged | Merged PR #331 via commit 1847b25, adding arm64 to the Snap build platforms. | |
| #1987627 Cannot build snaps in a 32-bit armhf container when running an arm64 kernel | snapcraft (launchpad) | closed | Fixed in Snapcraft 9.1 by PR #6394 (commit e5164048), adding armv8l support so a 32-bit ARM userspace on an ARM64 kernel maps to armhf. | |
| #5638 Snapcraft fails to run on 32bit userspace container on 64bit ARM kernel. | snapcraft | closed | Fixed by merged PR #6394 (commit e51640488): Snapcraft now maps armv8l to armv7l, supporting ARMHF builds in 32-bit ARM userspace on 64-bit ARM kernels. | |
| #6206 snapcraft fails to unsquashfs some snaps | snapcraft | closed | Fixed in canonical/snapcraft#6235 (commit 52bc82495), merged into main and planned for Snapcraft 9. Upload now unsquashes only snap.yaml and manifest.yaml, avoiding device-node errors. | |
| #5147 fix(unsquashfs): fix Fatal Error when using unsquashfs | snapcraft | closed | Closed unmerged as overlapping work: PR #5136 (commit 2e7f5c3b) delivered the same squashfs-tools 4.6.1/Core24 update in Snapcraft 8.6. | |
| #1769551 snapcraft 2.42 not working in trusty armhf | snapcraft (launchpad) | closed | Snapcraft 2.42's armhf startup failure was fixed by merged PR #2126 (commit 5230460c7); the reporter confirmed it in edge rev 1561. | |
| #4627 Cannot build snaps in a 32-bit armhf container when running an arm64 kernel | snapcraft | closed | Fixed in Snapcraft 9.1 by merged PR #6394 (commit e51640488), which maps armv8l to armv7l for armhf container builds on arm64 kernels. | |
| #945 Fix unittests in armhf | snapcraft | merged | Merged PR #945 as commit 073332b9b, making Snapcraft unit tests architecture-agnostic so they pass on armhf. | |
| #2012074 snapcraft cannot build snap by default on aarch64 | snapcraft (launchpad) | open | ARM64 default builds failed on Snapcraft 7.3.1 because core20 selected amd64-only Multipass images; later defaults use core22/LXD on Linux, addressing the reported path. | |
| #1570835 snapcraft 2.8 fails on s390x | snapcraft (launchpad) | closed | Snapcraft 2.8's missing s390x handling was fixed by ubuntu-core/snapcraft PR #461, merged as commit d3c242fa2. |