← Back to issue list

snaps have different checksums on repeated mksquashfs runs

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1576763
Type
issue
State
closed
Author
~tyhicks
Labels
—
Created
Updated
Closed

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.
75%
#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.
72%