Bug#850904: diffoscope crashes with FileExistsError: [Errno 17] File exists

Holger Levsen holger at layer-acht.org
Wed Jan 11 01:40:01 UTC 2017


Package: diffoscope
Version: 67
Severity: normal

Hi,

from
https://jenkins.debian.net/job/reproducible_builder_armhf_8/15471/console
(which should be preserved forever…)

[...]
+timeout 120m nice schroot --directory /srv/reproducible-results/rbuild-debian-t4VQ69oJ -c source:jenkins-reproducible-unstable-diffoscope -- sh -c 'export TMPDIR=/srv/reproducible-results/rbuild-debian-t4VQ69oJ/dbd-tmp-rsSs31f ; diffoscope 			--html /srv/reproducible-results/rbuild-debian-t4VQ69oJ/kmplayer_0.11.3d-3.diffoscope.html 			--text /srv/reproducible-results/rbuild-debian-t4VQ69oJ/kmplayer_0.11.3d-3.diffoscope.txt 			--profile=- 			/srv/reproducible-results/rbuild-debian-t4VQ69oJ/b1/kmplayer_0.11.3d-3_armhf.changes 			/srv/reproducible-results/rbuild-debian-t4VQ69oJ/b2/kmplayer_0.11.3d-3_armhf.changes'
+ RESULT=2
++ grep '^E: 15binfmt: update-binfmts: unable to open' /srv/reproducible-results/rbuild-debian-t4VQ69oJ/tmp.CPhGB3K1C3
++ true
+ LOG_RESULT=
+ '[' '!' -z '' ']'
+ false
+ set +x
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 260, in main
    sys.exit(run_diffoscope(parsed_args))
  File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 236, in run_diffoscope
    parsed_args.path1, parsed_args.path2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 61, in compare_root_paths
    return compare_files(file1, file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 78, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/debian.py", line 153, in compare
    differences = super().compare(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 201, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 162, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 81, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 78, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 201, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 162, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 81, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 78, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 201, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 162, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 81, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 78, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 201, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 162, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 81, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 78, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 201, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 161, in _compare_using_details
    if self.as_container:
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 108, in as_container
    self._as_container = self.__class__.CONTAINER_CLASS(self)
  File "/usr/lib/python3/dist-packages/diffoscope/tools.py", line 50, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 436, in __init__
    self._install_debug_symbols()
  File "/usr/lib/python3/dist-packages/diffoscope/tools.py", line 50, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 488, in _install_debug_symbols
    os.mkdir(os.path.dirname(dest_path))
FileExistsError: [Errno 17] File exists: '/srv/reproducible-results/rbuild-debian-t4VQ69oJ/dbd-tmp-rsSs31f/tmpc7n1jfvr_diffoscope/./usr/bin/.debug'
Profiling output for: /usr/bin/diffoscope --html /srv/reproducible-results/rbuild-debian-t4VQ69oJ/kmplayer_0.11.3d-3.diffoscope.html --text /srv/reproducible-results/rbuild-debian-t4VQ69oJ/kmplayer_0.11.3d-3.diffoscope.txt --profile=- /srv/reproducible-results/rbuild-debian-t4VQ69oJ/b1/kmplayer_0.11.3d-3_armhf.changes /srv/reproducible-results/rbuild-debian-t4VQ69oJ/b2/kmplayer_0.11.3d-3_armhf.changes
====================================================================================================================================================================================================================================================================================================================================================================================================================

close_archive (total time: 0.001s)
----------------------------------

       0.000s    11 calls    diffoscope.comparators.gzip.GzipContainer
       0.000s    11 calls    diffoscope.comparators.tar.TarContainer
       0.000s     2 calls    diffoscope.comparators.deb.DebTarContainer
       0.000s     2 calls    diffoscope.comparators.xz.XzContainer

command (total time: 54.490s)
-----------------------------

      47.471s  3122 calls    readelf
       3.955s   331 calls    diff
       1.020s     7 calls    xz
       0.991s     2 calls    objcopy
       0.835s   264 calls    objdump
       0.115s    12 calls    gzip
       0.101s    12 calls    cmp
       0.002s    15 calls    cmp (internal)

compare_files (cumulative) (total time: 238.829s)
-------------------------------------------------

      58.797s     6 calls    abc.ElfFile
      57.723s     1 call     abc.DebFile
      57.482s     1 call     abc.XzFile
      57.200s     1 call     abc.DebDataTarFile
       4.427s   117 calls    diffoscope.comparators.elf.ElfSection
       1.672s    24 calls    diffoscope.comparators.elf.ElfCodeSection
       1.107s    10 calls    diffoscope.comparators.elf.ElfStringSection
       0.198s     2 calls    abc.GzipFile
       0.126s     2 calls    abc.TarFile
       0.038s     1 call     diffoscope.comparators.elf.MonkeyPatchedElfSection
       0.032s     1 call     abc.TextFile
       0.025s     2 calls    abc.Md5sumsFile
       0.000s    13 calls    diffoscope.comparators.utils.libarchive.LibarchiveDirectory

container_extract (total time: 1.773s)
--------------------------------------

       1.020s     7 calls    diffoscope.comparators.xz.XzContainer
       0.311s    17 calls    diffoscope.comparators.deb.DebTarContainer
       0.246s    23 calls    diffoscope.comparators.deb.DebContainer
       0.179s    12 calls    diffoscope.comparators.gzip.GzipContainer
       0.016s    20 calls    diffoscope.comparators.tar.TarContainer

has_same_content_as (total time: 0.868s)
----------------------------------------

       0.588s     4 calls    diffoscope.comparators.utils.archive.ArchiveMember
       0.259s    19 calls    diffoscope.comparators.utils.libarchive.LibarchiveMember
       0.016s     2 calls    diffoscope.comparators.debian.DebControlMember
       0.002s   117 calls    diffoscope.comparators.elf.ElfSection
       0.001s     1 call     diffoscope.comparators.utils.libarchive.LibarchiveSymlink
       0.001s    24 calls    diffoscope.comparators.elf.ElfCodeSection
       0.000s    10 calls    diffoscope.comparators.elf.ElfStringSection
       0.000s     1 call     abc.DotChangesFile
       0.000s    13 calls    diffoscope.comparators.utils.libarchive.LibarchiveDirectory
       0.000s     1 call     diffoscope.comparators.elf.MonkeyPatchedElfSection

main (total time: 0.098s)
-------------------------

       0.094s     1 call     cleanup
       0.005s     1 call     parse_args

open_archive (total time: 0.001s)
---------------------------------

       0.000s    12 calls    diffoscope.comparators.tar.TarContainer
       0.000s     8 calls    diffoscope.comparators.deb.DebContainer
       0.000s    12 calls    diffoscope.comparators.gzip.GzipContainer
       0.000s     7 calls    diffoscope.comparators.deb.DebTarContainer
       0.000s     7 calls    diffoscope.comparators.xz.XzContainer

recognizes (total time: 1.048s)
-------------------------------

       0.524s  1063 calls    diffoscope.comparators.utils.libarchive.LibarchiveMember
       0.227s    10 calls    abc.DotChangesFile
       0.162s   536 calls    diffoscope.comparators.utils.archive.ArchiveMember
       0.056s   128 calls    diffoscope.comparators.debian.DebControlMember
       0.045s  2106 calls    diffoscope.comparators.elf.ElfSection
       0.009s   432 calls    diffoscope.comparators.elf.ElfCodeSection
       0.004s    17 calls    abc.ElfFile
       0.004s   180 calls    diffoscope.comparators.elf.ElfStringSection
       0.003s    12 calls    abc.TarFile
       0.003s     8 calls    abc.DebFile
       0.002s    12 calls    abc.GzipFile
       0.002s    18 calls    diffoscope.comparators.elf.MonkeyPatchedElfSection
       0.002s     8 calls    abc.Md5sumsFile
       0.002s     7 calls    abc.DebDataTarFile
       0.002s     7 calls    abc.XzFile
       0.001s     6 calls    abc.TextFile
       0.000s     8 calls    diffoscope.comparators.binary.FilesystemFile
Mon Jan  9 14:34:40 UTC 2017  E: kmplayer failed to build reproducibly in unstable on armhf.
Mon Jan  9 14:34:40 UTC 2017  W: diffoscope 67 produced no output (which is strange).
UPDATE 1
INSERT 0 1
DELETE 1
INFO: Starting at 2017-01-09 14:34:41.561176
CRITICAL: https://tests.reproducible-builds.org/debian/unstable/amd64/kmplayer is unreproducible, but without diffoscope output.
CRITICAL: https://tests.reproducible-builds.org/debian/unstable/armhf/kmplayer is unreproducible, but without diffoscope output.


Sideremark 1: I think we might probably want to move the profiling info into seperate logfiles, not sure.
Sideremark 2: "amd64/kmplayer is unreproducible" is not relevant for this build, WTF?!


-- 
cheers,
	Holger
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 811 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20170111/72a3ee6c/attachment.sig>


More information about the Reproducible-builds mailing list