Bug#903449: diffoscope: RecursionError with ghc/8.4.3-1
Mattia Rizzolo
mattia at debian.org
Tue Jul 10 09:15:57 BST 2018
Package: diffoscope
Version: 98
Severity: important
As seen with ghc/8.4.3-1 on experimental/amd64:
Thu Jul 5 10:46:13 UTC 2018 I: diffoscope 98 will be used to compare the two builds:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 460, in main
sys.exit(run_diffoscope(parsed_args))
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 432, in run_diffoscope
difference = compare_root_paths(path1, path2)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 68, in compare_root_paths
difference = compare_files(file1, file2)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/debian.py", line 184, in compare
differences = super().compare(other, *args, **kwargs)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details
other.as_container, no_recurse=no_recurse))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair
file1, file2, source=None, diff_content_only=no_recurse)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details
other.as_container, no_recurse=no_recurse))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair
file1, file2, source=None, diff_content_only=no_recurse)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details
other.as_container, no_recurse=no_recurse))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair
file1, file2, source=None, diff_content_only=no_recurse)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details
other.as_container, no_recurse=no_recurse))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair
file1, file2, source=None, diff_content_only=no_recurse)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 321, in _compare_using_details
other.as_container, no_recurse=no_recurse))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 177, in compare_pair
file1, file2, source=None, diff_content_only=no_recurse)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 118, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 366, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 304, in _compare_using_details
details.extend(self.compare_details(other, source))
File "/usr/lib/python3/dist-packages/diffoscope/comparators/json.py", line 73, in compare_details
diff = {repr(x): y for x, y in jsondiff.diff(a, b).items()}
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 597, in diff
return cls(**kwargs).diff(a, b, fp)
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 501, in diff
d, s = self._obj_diff(a, b)
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 488, in _obj_diff
return self._list_diff(a, b)
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 408, in _list_diff
for sign, value, pos, s in self._list_diff_0(C, X, Y, len(X), len(Y)):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
[Previous line repeated 354 more times]
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 379, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i, j-1):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 384, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 374, in _list_diff_0
for annotation in self._list_diff_0(C, X, Y, i-1, j-1):
[Previous line repeated 593 more times]
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 372, in _list_diff_0
d, s = self._obj_diff(X[i-1], Y[j-1])
File "/usr/lib/python3/dist-packages/jsondiff/__init__.py", line 491, in _obj_diff
elif a != b:
RecursionError: maximum recursion depth exceeded in comparison
I don't have artifacts for this, so I didn't try to reproduce it. Also
it doesn't seem very reproducible either, as other suites/architectures
didn't hit this crash in their last run. Nonetheless, I figured I'd
file this for tracking (it sounds easy to check for RecursionError and
give up on the jsondiff comparator…).
--
regards,
Mattia Rizzolo
GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`.
more about me: https://mapreri.org : :' :
Launchpad user: https://launchpad.net/~mapreri `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia `-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20180710/4a2eaf53/attachment.sig>
More information about the Reproducible-builds
mailing list