Bug#874582: diffoscope: caughts exception, while handling "no space left on device" exception
Holger Levsen
holger at debian.org
Thu Sep 7 14:55:49 UTC 2017
Package: diffoscope
Version: 78
Severity: minor
hi,
when diffoscope hits ENOSPACE this is excepted, but sadly not really:
$ diffoscope doc/debian-edu-doc_1.923~20170823_amd64.changes debian-edu-doc_1.923~20170823_amd64.changes
Traceback (most recent call last):###########################| 100% ETA: 0:00:00
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/libarchive.py", line 232, in ensure_unpacked
f.write(block)
OSError: [Errno 28] No space left on device
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 285, in main
sys.exit(run_diffoscope(parsed_args))
File "/usr/lib/python3/dist-packages/diffoscope/main.py", line 261, in run_diffoscope
parsed_args.path1, parsed_args.path2)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 64, in compare_root_paths
return compare_files(file1, file2)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 91, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/debian.py", line 185, in compare
differences = super().compare(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 237, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 194, 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 94, in compare_commented_files
difference = compare_files(file1, file2, source=source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 91, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 237, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 194, 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 94, in compare_commented_files
difference = compare_files(file1, file2, source=source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 91, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 237, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 194, 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 94, in compare_commented_files
difference = compare_files(file1, file2, source=source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 91, in compare_files
return file1.compare(file2, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 237, in compare
difference = self._compare_using_details(other, source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 194, 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 94, in compare_commented_files
difference = compare_files(file1, file2, source=source)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/compare.py", line 79, in compare_files
if file1.has_same_content_as(file2):
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 203, in has_same_content_as
if os.path.isdir(self.path) or os.path.isdir(other.path):
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/archive.py", line 88, in path
self._path = self.container.extract(self._name, self._temp_dir.name)
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/libarchive.py", line 176, in extract
self.ensure_unpacked()
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/libarchive.py", line 232, in ensure_unpacked
f.write(block)
OSError: [Errno 28] No space left on device
Please make diffoscope fail more gracefully, that is, without showing all this traceback to the user.
--
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/20170907/e7d23459/attachment.sig>
More information about the Reproducible-builds
mailing list