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
signature.asc
Description: Digital signature