[Reproducible-builds] Bug#833697: diffoscope: libarchive.exception.ArchiveError when running on two dmg files

David Fifield david at bamsoftware.com
Sun Aug 7 23:17:33 UTC 2016


Package: diffoscope
Version: 56
Severity: normal

I get a crash when running diffoscope on these two dmg files. They are just byproducts of a development process. The two files are here (about 65 MB each):
https://people.torproject.org/~dcf/pt-bundle/snowflake/20160806-6.5a1-965e0daa7d59/TorBrowser-6.5a1-osx64_en-US.dmg
https://people.torproject.org/~dcf/pt-bundle/snowflake/20160806-6.5a1-965e0daa7d59-2/TorBrowser-6.5a1-osx64_en-US.dmg

Here are their sha256sums:
e67dc5230d66502725a77fde910ec163a0172f893bc06f378e94eb31f755d1b4  20160806-6.5a1-965e0daa7d59/TorBrowser-6.5a1-osx64_en-US.dmg
3c182dc03de369b99c60acbd553f4a3e01b07640302a36f2562cc6b491437284  20160806-6.5a1-965e0daa7d59-2/TorBrowser-6.5a1-osx64_en-US.dmg

This is the crash:

$ diffoscope 20160806-6.5a1-965e0daa7d59/TorBrowser-6.5a1-osx64_en-US.dmg 20160806-6.5a1-965e0daa7d59-2/TorBrowser-6.5a1-osx64_en-US.dmg

bzip2: 20160806-6.5a1-965e0daa7d59/TorBrowser-6.5a1-osx64_en-US.dmg: trailing garbage after EOF ignored

bzip2: 20160806-6.5a1-965e0daa7d59-2/TorBrowser-6.5a1-osx64_en-US.dmg: trailing garbage after EOF ignored
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 199, in main
    sys.exit(run_diffoscope(parsed_args))
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 170, in run_diffoscope
    parsed_args.path1, parsed_args.path2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 99, in compare_root_paths
    return compare_files(file1, file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 115, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 210, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 180, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 118, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 115, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 210, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 180, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 118, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 104, in compare_files
    if file1.has_same_content_as(file2):
  File "/usr/lib/python3/dist-packages/diffoscope/__init__.py", line 162, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 192, in has_same_content_as
    my_size = os.path.getsize(self.path)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils.py", line 242, in path
    self._path = self.container.extract(self._name, self._temp_dir.name)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/libarchive.py", line 180, in extract
    for buf in entry.get_blocks():
  File "/usr/lib/python3/dist-packages/libarchive/entry.py", line 41, in get_blocks
    r = read(archive_p, buf, block_size)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 85, in check_int
    raise archive_error(args[0], retcode)
  File "/usr/lib/python3/dist-packages/libarchive/ffi.py", line 69, in archive_error
    raise ArchiveError(msg, errno(archive_p), retcode, archive_p)
libarchive.exception.ArchiveError: Truncated input file (errno=-1, retcode=-30, archive_p=23628240)


The first time I ran diffoscope, I did not have genisoimage installed. There was no crash then, but the output was just a diff of disk images and recommended to install genisoimage. After installing genisoimage, I got the output above.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (600, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages diffoscope depends on:
ii  python3-libarchive-c   2.1-3
ii  python3-magic          1:5.28-4
ii  python3-pkg-resources  20.10.1-1.1
pn  python3:any            <none>

Versions of packages diffoscope recommends:
ii  acl                     2.2.52-3
pn  binutils-multiarch      <none>
ii  bzip2                   1.0.6-8
pn  caca-utils              <none>
pn  colord                  <none>
ii  cpio                    2.11+dfsg-5
pn  default-jdk | java-sdk  <none>
pn  enjarify                <none>
pn  fontforge-extras        <none>
pn  fp-utils                <none>
ii  genisoimage             9:1.1.11-3
ii  gettext                 0.19.8.1-1
ii  ghc                     7.10.3-9
ii  ghostscript             9.19~dfsg-1+b1
ii  gnupg                   1.4.20-6
pn  mono-utils              <none>
pn  pdftk                   <none>
ii  poppler-utils           0.44.0-3
pn  python3-argcomplete     <none>
pn  python3-debian          <none>
pn  python3-guestfs         <none>
pn  python3-rpm             <none>
pn  python3-tlsh            <none>
pn  rpm2cpio                <none>
pn  sng                     <none>
pn  sqlite3                 <none>
pn  squashfs-tools          <none>
ii  unzip                   6.0-20
ii  vim-common              2:7.4.1829-1
ii  xz-utils                5.1.1alpha+20120614-2.1

Versions of packages diffoscope suggests:
ii  libjs-jquery  1.12.4-1

-- no debconf information



More information about the Reproducible-builds mailing list