Memory error with unsquashfs
Jeremiah C. Foster
jeremiah.foster at puri.sm
Wed Sep 25 18:02:25 BST 2019
Hi,
While this needs a bit more investigation on my end, I thought I would
share this issue with this list since there may be folks who've seen it
before.
When I run this command;
/usr/bin/diffoscope --max-report-size=0 --html /var/www/html/pureos-
9.0-images.html /srv/artifacts/1111/pureos-9.0-oem_20190925-
amd64.hybrid.iso /srv/artifacts/0000/pureos-9.0-oem_20190925-
amd64.hybrid.iso
I get this output;
Traceback (most recent call last):
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 432, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 380, in
_compare_using_details
other.as_container, no_recurse=no_recurse
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/container.py", line 131, in
comparisons
my_members = OrderedDict(self.get_adjusted_members_sizes())
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/container.py", line 123, in
get_adjusted_members_sizes
for name, member in self.get_adjusted_members():
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/container.py", line 79, in
get_filtered_members
for name in filter_excludes(self.get_member_names()):
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/squashfs.py", line 250, in
get_member_names
self.ensure_unpacked()
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/squashfs.py", line 274, in
ensure_unpacked
cwd=self._temp_dir,
File "/usr/lib/python3.7/subprocess.py", line 395, in check_output
**kwargs).stdout
File "/usr/lib/python3.7/subprocess.py", line 487, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('unsquashfs', '-n', '-f', '-
no', '-li', '-d', '.',
'/tmp/diffoscope_p22_7rig/tmpaqdov1d4/0/18.squashfs')' returned non-
zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 732,
in main
sys.exit(run_diffoscope(parsed_args))
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 685,
in run_diffoscope
difference = compare_root_paths(path1, path2)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/compare.py", line 72, in
compare_root_paths
difference = compare_files(file1, file2)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/compare.py", line 124, in
compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 432, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 380, in
_compare_using_details
other.as_container, no_recurse=no_recurse
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/container.py", line 195, in
compare_pair
file1, file2, source=None, diff_content_only=no_recurse
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/compare.py", line 124, in
compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 453, in compare
difference = self.compare_bytes(other, source=source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/file.py", line 331, in
compare_bytes
return compare_binary_files(self, other, source)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/compare.py", line 146, in
compare_binary_files
has_internal_linenos=True,
File "/usr/lib/python3/dist-packages/diffoscope/difference.py", line
255, in from_command
klass, path1, path2, *args, **kwargs
File "/usr/lib/python3/dist-packages/diffoscope/difference.py", line
287, in from_command_exc
feeder1, feeder2, path1, path2, *args, **kwargs
File "/usr/lib/python3/dist-packages/diffoscope/difference.py", line
212, in from_feeder
unified_diff = diff(feeder1, feeder2)
File "/usr/lib/python3/dist-packages/diffoscope/diff.py", line 333,
in diff
return run_diff(fifo1_path, fifo2_path, fifo1.end_nl_q,
fifo2.end_nl_q)
File "/usr/lib/python3/dist-packages/diffoscope/diff.py", line 218,
in __exit__
self.join()
File "/usr/lib/python3/dist-packages/diffoscope/diff.py", line 251,
in join
raise self._exception
File "/usr/lib/python3/dist-packages/diffoscope/diff.py", line 242,
in run
end_nl = self.feeder(fifo)
File "/usr/lib/python3/dist-packages/diffoscope/feeders.py", line 91,
in feeder
feeder = from_raw_reader(command.stdout, command.filter)
File "/usr/lib/python3/dist-
packages/diffoscope/comparators/utils/command.py", line 112, in stdout
return self._process.stdout.splitlines(True)
MemoryError
Running with the debug flat produces;
2019-09-25 12:47:16 D: diffoscope.presenters.formats: Will generate the
following formats: html
2019-09-25 12:47:16 D: diffoscope.main: Starting diffoscope 125
2019-09-25 12:47:16 D: diffoscope.locale: Normalising locale, timezone,
etc.
2019-09-25 16:47:16 D: diffoscope.main: Starting comparison
2019-09-25 16:47:16 D: diffoscope.comparators: Loaded 72 comparator
classes
2019-09-25 16:47:16 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.iso9660.Iso9660File for
/srv/artifacts/1111/pureos-9.0-oem_20190925-amd64.hybrid.iso
2019-09-25 16:47:16 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.iso9660.Iso9660File for
/srv/artifacts/0000/pureos-9.0-oem_20190925-amd64.hybrid.iso
<snip>
2019-09-25 16:47:18 D: diffoscope.comparators.utils.compare:
has_same_content_as returned True; skipping further comparisons
2019-09-25 16:47:18 D: diffoscope.comparators.utils.compare: Comparing
casper/filesystem.size (LibarchiveMember) and casper/filesystem.size
(LibarchiveMember)
2019-09-25 16:47:18 D: diffoscope.comparators.utils.file:
File.has_same_content: <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
casper/filesystem.size> <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
casper/filesystem.size>
2019-09-25 16:47:18 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.text.TextFile for casper/filesystem.size
2019-09-25 16:47:18 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.text.TextFile for casper/filesystem.size
2019-09-25 16:47:18 D: diffoscope.diff: Running diff -aU7
/tmp/diffoscope_c45v90xv/tmpnlp_7oz5/fifo1
/tmp/diffoscope_c45v90xv/tmpnlp_7oz5/fifo2
2019-09-25 16:47:18 D: diffoscope.diff: diff -aU7
/tmp/diffoscope_c45v90xv/tmpnlp_7oz5/fifo1
/tmp/diffoscope_c45v90xv/tmpnlp_7oz5/fifo2: returncode 1, parsed True
2019-09-25 16:47:18 D: diffoscope.comparators.utils.compare: Comparing
casper/filesystem.squashfs (LibarchiveMember) and
casper/filesystem.squashfs (LibarchiveMember)
2019-09-25 16:47:18 D: diffoscope.comparators.utils.file:
File.has_same_content: <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
casper/filesystem.squashfs> <<class
'diffoscope.comparators.utils.libarchive.LibarchiveMember'>
casper/filesystem.squashfs>
2019-09-25 16:47:18 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.squashfs.SquashfsFile for
casper/filesystem.squashfs
2019-09-25 16:47:18 D: diffoscope.comparators.utils.specialize: Using
diffoscope.comparators.squashfs.SquashfsFile for
casper/filesystem.squashfs
2019-09-25 16:47:18 D: diffoscope.comparators.utils.command: Executing
unsquashfs -s /tmp/diffoscope_c45v90xv/tmp5h26j1jy/0/18.squashfs
2019-09-25 16:47:18 D: diffoscope.comparators.utils.command: Executing
unsquashfs -s /tmp/diffoscope_c45v90xv/tmplswrk2b9/0/18.squashfs
2019-09-25 16:47:18 D: diffoscope.diff: Running diff -aU7
/tmp/diffoscope_c45v90xv/tmpkvpi9ewa/fifo1
/tmp/diffoscope_c45v90xv/tmpkvpi9ewa/fifo2
2019-09-25 16:47:18 D: diffoscope.diff: diff -aU7
/tmp/diffoscope_c45v90xv/tmpkvpi9ewa/fifo1
/tmp/diffoscope_c45v90xv/tmpkvpi9ewa/fifo2: returncode 1, parsed True
2019-09-25 16:47:18 D: diffoscope.comparators.utils.command: Executing
unsquashfs -d '' -lls
/tmp/diffoscope_c45v90xv/tmp5h26j1jy/0/18.squashfs
2019-09-25 16:47:18 D: diffoscope.comparators.utils.command: Executing
unsquashfs -d '' -lls
/tmp/diffoscope_c45v90xv/tmplswrk2b9/0/18.squashfs
2019-09-25 16:47:19 D: diffoscope.diff: Running diff -aU7
/tmp/diffoscope_c45v90xv/tmpu0wye3cv/fifo1
/tmp/diffoscope_c45v90xv/tmpu0wye3cv/fifo2
2019-09-25 16:47:19 D: diffoscope.diff: diff -aU7
/tmp/diffoscope_c45v90xv/tmpu0wye3cv/fifo1
/tmp/diffoscope_c45v90xv/tmpu0wye3cv/fifo2: returncode 1, parsed True
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Instantiating
a diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Returning a
diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Returning a
diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Returning a
diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Instantiating
a diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.utils.file: Returning a
diffoscope.comparators.squashfs.SquashfsContainer for
casper/filesystem.squashfs
2019-09-25 16:47:19 D: diffoscope.comparators.squashfs: Extracting
/tmp/diffoscope_c45v90xv/tmp5h26j1jy/0/18.squashfs to
/tmp/diffoscope_c45v90xv/tmpjaqzp36l
2019-09-25 16:47:31 D: diffoscope.comparators.utils.command: Executing
xxd /tmp/diffoscope_c45v90xv/tmp5h26j1jy/0/18.squashfs
2019-09-25 16:47:57 D: diffoscope.comparators.utils.command: Executing
xxd /tmp/diffoscope_c45v90xv/tmplswrk2b9/0/18.squashfs
2019-09-25 16:48:24 D: diffoscope.diff: Running diff -aU7
/tmp/diffoscope_c45v90xv/tmpfcnkfldo/fifo1
/tmp/diffoscope_c45v90xv/tmpfcnkfldo/fifo2
Killed
Running the diff command against the files in tmp, which are two named
pipes (fifo1, fifo2) just hangs.
I think I'm running out of memory? The machine has about 4 gigs.
Regards,
Jeremiah
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20190925/6824386d/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20190925/6824386d/attachment.sig>
More information about the Reproducible-builds
mailing list