snaps have different checksums on repeated mksquashfs runs
Metadata
Current evaluation
Fixed by using mksquashfs -no-fragments in snapcraft PR #1805 (commit 9a131cb5b); snapd PR #4396 applied the option to review tools.
Resolution: closed resolved
Reason: Snapcraft PR #1805 merged commit 9a131cb5b, disabling fragments to eliminate nondeterministic SquashFS output. Snapd PR #4396 later applied the option to review tools, and the bug was marked Fix Released on 2018-02-06.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Reported by josepht:
root@localhost:~# for i in 1 2 3 4 5; do unsquashfs -f -d nmap_unpack_$i nmap_7.12SVN-0.4_armhf.snap; mksquashfs nmap_unpack_$i nmap_$i.snap -fstime 1461597924 -noappend -comp xz -all-root -no-xattrs; done
Parallel unsquashfs: Using 1 processor
725 inodes (845 blocks) to write
[===========================================================================================================================================================================================================================================================/] 845/845 100%
created 725 files
created 41 directories
created 0 symlinks
created 0 devices
created 0 fifos
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on nmap_1.snap, block size 131072.
Setting fs time: Mon Apr 25 15:25:24 2016
[===========================================================================================================================================================================================================================================================|] 845/845 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 5476.70 Kbytes (5.35 Mbytes)
24.01% of uncompressed filesystem size (22806.52 Kbytes)
Inode table size 5532 bytes (5.40 Kbytes)
22.00% of uncompressed inode table size (25147 bytes)
Directory table size 8206 bytes (8.01 Kbytes)
42.65% of uncompressed directory table size (19241 bytes)
Number of duplicate files found 0
Number of inodes 766
Number of files 725
Number of fragments 56
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 41
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Parallel unsquashfs: Using 1 processor
725 inodes (845 blocks) to write
[===========================================================================================================================================================================================================================================================/] 845/845 100%
created 725 files
created 41 directories
created 0 symlinks
created 0 devices
created 0 fifos
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on nmap_2.snap, block size 131072.
Setting fs time: Mon Apr 25 15:25:24 2016
[===========================================================================================================================================================================================================================================================-] 845/845 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 5476.70 Kbytes (5.35 Mbytes)
24.01% of uncompressed filesystem size (22806.52 Kbytes)
Inode table size 5532 bytes (5.40 Kbytes)
22.00% of uncompressed inode table size (25147 bytes)
Directory table size 8206 bytes (8.01 Kbytes)
42.65% of uncompressed directory table size (19241 bytes)
Number of duplicate files found 0
Number of inodes 766
Number of files 725
Number of fragments 56
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 41
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Parallel unsquashfs: Using 1 processor
725 inodes (845 blocks) to write
[===========================================================================================================================================================================================================================================================/] 845/845 100%
created 725 files
created 41 directories
created 0 symlinks
created 0 devices
created 0 fifos
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on nmap_3.snap, block size 131072.
Setting fs time: Mon Apr 25 15:25:24 2016
[===========================================================================================================================================================================================================================================================-] 845/845 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 5476.70 Kbytes (5.35 Mbytes)
24.01% of uncompressed filesystem size (22806.52 Kbytes)
Inode table size 5532 bytes (5.40 Kbytes)
22.00% of uncompressed inode table size (25147 bytes)
Directory table size 8206 bytes (8.01 Kbytes)
42.65% of uncompressed directory table size (19241 bytes)
Number of duplicate files found 0
Number of inodes 766
Number of files 725
Number of fragments 56
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 41
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Parallel unsquashfs: Using 1 processor
725 inodes (845 blocks) to write
[===========================================================================================================================================================================================================================================================/] 845/845 100%
created 725 files
created 41 directories
created 0 symlinks
created 0 devices
created 0 fifos
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on nmap_4.snap, block size 131072.
Setting fs time: Mon Apr 25 15:25:24 2016
[===========================================================================================================================================================================================================================================================\] 845/845 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 5476.70 Kbytes (5.35 Mbytes)
24.01% of uncompressed filesystem size (22806.52 Kbytes)
Inode table size 5532 bytes (5.40 Kbytes)
22.00% of uncompressed inode table size (25147 bytes)
Directory table size 8206 bytes (8.01 Kbytes)
42.65% of uncompressed directory table size (19241 bytes)
Number of duplicate files found 0
Number of inodes 766
Number of files 725
Number of fragments 56
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 41
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Parallel unsquashfs: Using 1 processor
725 inodes (845 blocks) to write
[===========================================================================================================================================================================================================================================================/] 845/845 100%
created 725 files
created 41 directories
created 0 symlinks
created 0 devices
created 0 fifos
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on nmap_5.snap, block size 131072.
Setting fs time: Mon Apr 25 15:25:24 2016
[===========================================================================================================================================================================================================================================================-] 845/845 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 5476.70 Kbytes (5.35 Mbytes)
24.01% of uncompressed filesystem size (22806.52 Kbytes)
Inode table size 5532 bytes (5.40 Kbytes)
22.00% of uncompressed inode table size (25147 bytes)
Directory table size 8206 bytes (8.01 Kbytes)
42.65% of uncompressed directory table size (19241 bytes)
Number of duplicate files found 0
Number of inodes 766
Number of files 725
Number of fragments 56
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 41
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
root@localhost:~# ls
nmap_1.snap nmap_2.snap nmap_3.snap nmap_4.snap nmap_5.snap nmap_7.12SVN-0.4_armhf.snap nmap_unpack_1 nmap_unpack_2 nmap_unpack_3 nmap_unpack_4 nmap_unpack_5
root@localhost:~# sha512sum *.snap
4c9eed209ced0788975dfdbe382fa517d0f9b41dd3afd092792de7f604c708e9dec2fb40215d7d1f8aecf6ef56e9ee1974480a8a39acc40fcc6a02452577fe58 nmap_1.snap
4c9eed209ced0788975dfdbe382fa517d0f9b41dd3afd092792de7f604c708e9dec2fb40215d7d1f8aecf6ef56e9ee1974480a8a39acc40fcc6a02452577fe58 nmap_2.snap
7419b843ce769fbfde31e5f3c37597a841ddb2427a89b54f3850386cef3b08e57e31f1460aef6500fb5cdfecbc676373ad4da48fb56d00906d7f909c132b5165 nmap_3.snap
7419b843ce769fbfde31e5f3c37597a841ddb2427a89b54f3850386cef3b08e57e31f1460aef6500fb5cdfecbc676373ad4da48fb56d00906d7f909c132b5165 nmap_4.snap
4c9eed209ced0788975dfdbe382fa517d0f9b41dd3afd092792de7f604c708e9dec2fb40215d7d1f8aecf6ef56e9ee1974480a8a39acc40fcc6a02452577fe58 nmap_5.snap
4c9eed209ced0788975dfdbe382fa517d0f9b41dd3afd092792de7f604c708e9dec2fb40215d7d1f8aecf6ef56e9ee1974480a8a39acc40fcc6a02452577fe58 nmap_7.12SVN-0.4_armhf.snap
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Fixed by using mksquashfs -no-fragments in snapcraft PR #1805 (commit 9a131cb5b); snapd PR #4396 applied the option to review tools. | |
| stealth/space-bunny-alpha | — | closed resolved | Resolved nondeterministic SquashFS builds by using -no-fragments in snapcraft PR #1805 (9a131cb5b); snapd PR #4396 applied it to review tools. | |
| stealth/space-bunny-alpha | — | closed stale | Report of varying SquashFS checksums despite a fixed timestamp was closed without a documented fix, resolving PR, or maintainer explanation. | |
| qwen/qwen3.6-35b-a3b | — | — | Reported non-deterministic checksums when repeatedly running mksquashfs on extracted snaps despite fixed timestamps. Closed without resolution or follow-up. | |
| qwen/qwen3.6-35b-a3b | — | — | Reported non-deterministic checksums from repeated mksquashfs runs were closed without resolution. No fix or merge occurred. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
snapcore/snapcraft#1805
(confidence 100%)
Merged commit 9a131cb5b changed lifecycle image creation to use mksquashfs -no-fragments.
-
Related To:
snapd#4396
(confidence 99%)
Merged snapd PR applied -no-fragments to snaps built by the review tools.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1805 lifecycle: use the -no-fragments mksquashfs option | snapcraft | merged | Merged in #1805 (commit 9a131cb5b), adding mksquashfs -no-fragments so snap composition is predictable and review tools can validate snaps. | |
| #1546821 please add -all-root and -no-xattrs to mksquashfs options | snapcraft (launchpad) | closed | Fixed by merged snapcraft PR #334 (e93fcc0a8), adding mksquashfs -all-root and -no-xattrs for safer, reproducible SquashFS output. |