Bug#861286: diffoscope: crash: TypeError: object of type 'LibarchiveMember' has no len()
Paul Wise
pabs at debian.org
Thu Apr 27 00:52:41 UTC 2017
Package: diffoscope
Version: 82
Severity: normal
Control: found -1 78
Usertags: crash
diffoscope 78 and 82 crash when comparing the libmapi0 deb from my
openchange upload to proposed-updates with the libmapi0 deb already
available in Debian stable. When I remove the --new-file option from
the command-lines below, the traceback doesn't happen.
These are the files that I was comparing:
https://deb.debian.org/debian/pool/main/o/openchange/libmapi0_2.2-5+b1_amd64.deb
https://deb.debian.org/debian/pool/main/o/openchange/libmapi0_2.2-6+deb8u1_amd64.deb
This is the diffoscope 78 traceback:
$ diffoscope --new-file --max-diff-block-lines=0 --max-diff-input-lines=0 --max-report-size=0 libmapi0_*
Traceback (most recent call last):#####################################################################################################| 100% ETA: 0:00:00
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/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/container.py", line 123, in comparisons
p.step(msg=my_member)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 99, in step
ProgressManager().step(delta, msg)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 69, in step
x.notify(self.current, self.total, msg)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 140, in notify
self.bar.update()
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 283, in update
self.fd.write(self._format_line() + '\r')
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 243, in _format_line
widgets = ''.join(self._format_widgets())
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 223, in _format_widgets
widget = format_updatable(widget, self)
File "/usr/lib/python3/dist-packages/progressbar/widgets.py", line 38, in format_updatable
if hasattr(updatable, 'update'): return updatable.update(pbar)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 112, in update
if len(msg) <= width:
TypeError: object of type 'TextFile' has no len()
This is the diffoscope 82 traceback:
$ diffoscope --new-file --max-diff-block-lines=0 --max-diff-input-lines=0 --max-report-size=0 libmapi0_*
Traceback (most recent call last):#####################################################################################################| 100% ETA: 0:00:00
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/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/deb.py", line 157, in comparisons
for my_member, other_member, comment in super().comparisons(other):
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/container.py", line 123, in comparisons
p.step(msg=my_member)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 107, in step
ProgressManager().step(delta, msg)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 77, in step
x.notify(self.current, self.total, msg)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 148, in notify
self.bar.update()
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 283, in update
self.fd.write(self._format_line() + '\r')
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 243, in _format_line
widgets = ''.join(self._format_widgets())
File "/usr/lib/python3/dist-packages/progressbar/__init__.py", line 223, in _format_widgets
widget = format_updatable(widget, self)
File "/usr/lib/python3/dist-packages/progressbar/widgets.py", line 38, in format_updatable
if hasattr(updatable, 'update'): return updatable.update(pbar)
File "/usr/lib/python3/dist-packages/diffoscope/progress.py", line 120, in update
if len(msg) <= width:
TypeError: object of type 'LibarchiveMember' has no len()
Exception ignored in: <bound method File.__del__ of <<class 'diffoscope.comparators.utils.libarchive.LibarchiveSymlink'> ./usr/lib/x86_64-linux-gnu/libmapi.so.0>>
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 92, in __del__
self.cleanup()
File "/usr/lib/python3/dist-packages/diffoscope/comparators/symlink.py", line 54, in cleanup
os.remove(self._placeholder)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/user/1000/tmp3m_okx3d_diffoscope'
Exception ignored in: <bound method File.__del__ of <<class 'diffoscope.comparators.utils.libarchive.LibarchiveSymlink'> ./usr/lib/x86_64-linux-gnu/libmapi.so.0>>
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils/file.py", line 92, in __del__
self.cleanup()
File "/usr/lib/python3/dist-packages/diffoscope/comparators/symlink.py", line 54, in cleanup
os.remove(self._placeholder)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/user/1000/tmpb7mf68vd_diffoscope'
-- System Information:
Debian Release: 9.0
APT prefers testing-debug
APT policy: (900, 'testing-debug'), (900, 'testing'), (860, 'testing-proposed-updates'), (800, 'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages diffoscope depends on:
ii python3-libarchive-c 2.1-3.1
ii python3-magic 1:5.29-3
ii python3-pkg-resources 33.1.1-1
pn python3:any <none>
Versions of packages diffoscope recommends:
ii acl 2.2.52-3+b1
ii apktool 2.2.1+dfsg-2
ii binutils-multiarch 2.28-4
ii bzip2 1.0.6-8.1
ii caca-utils 0.99.beta19-2+b2
ii colord 1.3.3-2
pn default-jdk-headless | default-jdk | java-sdk <none>
ii enjarify 1:1.0.3-3
ii fontforge-extras 0.3-4
pn fp-utils <none>
ii genisoimage 9:1.1.11-3+b2
ii gettext 0.19.8.1-2
ii ghc 8.0.1-17+b1
ii ghostscript 9.20~dfsg-3
ii giflib-tools 5.1.4-0.4
ii gnupg 2.1.18-6
ii imagemagick 8:6.9.7.4+dfsg-6
ii imagemagick-6.q16 [imagemagick] 8:6.9.7.4+dfsg-6
ii jsbeautifier 1.6.4-6
ii llvm 1:3.8-34+nmu1
pn mono-utils <none>
ii openssh-client 1:7.4p1-10
ii pdftk 2.02-4+b2
ii poppler-utils 0.48.0-2
ii python3-argcomplete 1.8.1-1
ii python3-debian 0.1.30
pn python3-guestfs <none>
ii python3-progressbar 2.3-4
ii python3-rpm 4.12.0.2+dfsg1-2
ii python3-tlsh 3.4.4+20151206-1+b2
ii rpm2cpio 4.12.0.2+dfsg1-2
ii sng 1.1.0-1+b1
ii sqlite3 3.16.2-3
ii squashfs-tools 1:4.3-3+b1
ii unzip 6.0-21
ii vim-common 2:8.0.0197-3
ii xxd 2:8.0.0197-3
ii xz-utils 5.2.2-1.2+b1
Versions of packages diffoscope suggests:
ii libjs-jquery 3.1.1-2
-- no debconf information
--
bye,
pabs
https://wiki.debian.org/PaulWise
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20170427/4a51711f/attachment.sig>
More information about the Reproducible-builds
mailing list