--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: lintian: hangs when dpkg-source fails
- From: Lucas Nussbaum <lucas@debian.org>
- Date: Wed, 10 Apr 2019 17:02:14 +0200
- Message-id: <155490853420.27813.15922746145745382040.reportbug@groff.loria.fr>
Package: lintian
Version: 2.12.0~bpo9+1
Severity: normal
Hi,
While processing old packages, I noticed that lintian hangs on some of
them when dpkg-source fails to extract them.
Example, using:
http://snapshot.debian.org/archive/debian/20130509T215232Z/pool/main/u/usbredir/usbredir_0.6-2.dsc
$ lintian usbredir_0.6-2.dsc
dpkg-source: error: expected ^--- in line 3 of diff '/tmp/temp-lintian-lab-vcUvBQH1iD/pool/u/usbredir/usbredir_0.6-2_source/unpacked/debian/patches/update-usbredirserver-whatis-entry.diff'
internal error: dpkg-source -x failed with status 2 at /usr/share/perl5/Lintian/Util.pm line 1177.
Lintian::Util::internal_error("dpkg-source -x failed with status ", 2) called at /usr/share/lintian/collection/unpacked line 74
Lintian::coll::unpacked::collect("usbredir", "source", "/tmp/temp-lintian-lab-vcUvBQH1iD/pool/u/usbredir/usbredir_0.6"...) called at /usr/share/perl5/Lintian/CollScript.pm line 242
Lintian::CollScript::collect(Lintian::CollScript=HASH(0x55d35d11c150), "usbredir", "source", "/tmp/temp-lintian-lab-vcUvBQH1iD/pool/u/usbredir/usbredir_0.6"...) called at /usr/share/perl5/Lintian/Unpacker.pm line 412
eval {...} called at /usr/share/perl5/Lintian/Unpacker.pm line 412
Lintian::Unpacker::__ANON__() called at /usr/share/perl5/IO/Async/Loop.pm line 1943
eval {...} called at /usr/share/perl5/IO/Async/Loop.pm line 1943
IO::Async::Loop::fork(IO::Async::Loop::Poll=HASH(0x55d35cb387b0), "code", CODE(0x55d35e922518), "on_exit", CODE(0x55d35e926f20)) called at /usr/share/perl5/Lintian/Unpacker.pm line 461
eval {...} called at /usr/share/perl5/Lintian/Unpacker.pm line 385
Lintian::Unpacker::__ANON__("unpacked-source:usbredir/0.6-2", Lintian::CollScript=HASH(0x55d35d11c150), Lintian::Lab::Entry=HASH(0x55d35c8280b0), Lintian::DepMap::Properties=HASH(0x55d35e8e05d8)) called at /usr/share/perl5/Lintian/Unpacker.pm line 476
Lintian::Unpacker::process_tasks(Lintian::Unpacker=HASH(0x55d35d1108d8), HASH(0x55d35c4e18b0)) called at /usr/share/lintian/commands/lintian.pm line 957
main::unpack_group("usbredir/0.6-2", Lintian::ProcessableGroup=HASH(0x55d35c827f48)) called at /usr/share/lintian/commands/lintian.pm line 730
main::__ANON__() called at /usr/share/lintian/commands/lintian.pm line 1658
main::timed_task(CODE(0x55d35e9003b0)) called at /usr/share/lintian/commands/lintian.pm line 733
main::__ANON__() called at /usr/share/lintian/commands/lintian.pm line 1658
main::timed_task(CODE(0x55d35e8f3fe8)) called at /usr/share/lintian/commands/lintian.pm line 762
main::main() called at /usr/bin/lintian line 46
eval {...} called at /usr/bin/lintian line 46
main::__ANON__("/usr/share/lintian/commands/lintian.pm") called at /usr/bin/lintian line 114
dplint::run_tool("/usr/bin/lintian", "lintian") called at /usr/bin/lintian line 290
dplint::main() called at /usr/bin/lintian line 359
warning: collect info unpacked about package usbredir failed (512)
warning: skipping check of source package usbredir
I would expect lintian to exit with an error instead.
A list of packages for which it hang:
acpica-unix_20140424-1
cb2bib_1.4.4-3
cnews_cr.g7-37
cnews_cr.g7-38
cnews_cr.g7-39
cnews_cr.g7-40
cnews_cr.g7-40.1
cnews_cr.g7-40.2
cnews_cr.g7-40.4
dwm_6.0-3
dwm_6.0-5
dynare_4.2.1-2
flite_1.4-release-8
foremost_1.5.7-4
fslint_2.16-1
getfem++_4.1.1-10
getfem++_4.1.1-9
getfem++_4.1.1+dfsg1-11
getfem++_4.2+dfsg1-1
grpn_1.1.2-3.1
herculesstudio_1.3.0-2
hfsutils_3.2.6-12
icedove_3.0.11-2
katoob_0.5.9.1-3
katoob_0.5.9.1-4
katoob_0.5.9.1-4.1
kvpm_0.8.6-2
kvpm_0.8.6-3
lazarus_1.2~rc2+dfsg-1
lldpad_0.9.43+git20111215.c0498b-1
lldpad_0.9.44-1
lldpad_0.9.46-1
lldpad_0.9.46-2
lurker_2.3-4
lurker_2.3-4.1
lutefisk_1.0.7+dfsg-1
moodle_1.9.9.dfsg2-4
moodle_1.9.9.dfsg2-5
ncmpcpp_0.5.5-1
nsnake_1.5-1
ompl_0.13.0+git20130920.01d0ca4-1
ompl_0.14.1-1
opencryptoki_2.3.1+dfsg-1
openms_1.9.0-4
openms_1.9.0-4.1
openoffice-python_1:0.1+20110129-1
piwigo_2.3.1-1
puppet_2.7.17-1
python-virtualenv_1.7-1
python-webob_1.2.3-4
qemu_1.7.0+dfsg-5
ruby-saml_1.0.0-1
ruby-saml_1.1.2-1
ruby-saml_1.3.0-1
ruby-saml_1.4.1-1
ruby-saml_1.7.2-1
rust-roxmltree_0.4.1-2
samba_2:3.6.16-1
samba_2:3.6.6-2
samba_2:3.6.6-3
samba_2:3.6.6-5
spice_0.12.4-0nocelt1
spice_0.12.4-0nocelt2
spice-vdagent_0.14.0-1
spice-vdagent_0.15.0-1
tac-plus_F4.0.4.alpha-12
tac-plus_F4.0.4.alpha-12.1
u-boot_2014.04+dfsg1-1
u-boot_2014.07+dfsg1-2
u-boot_2014.10+dfsg1-2.1
usbredir_0.4.3-2
usbredir_0.6-2
widelands_build10-1
widelands_build9-6
widelands_build9-7
widelands_build9half-1
widelands_build9half-10
widelands_build9half-9
- Lucas
-- System Information:
Debian Release: 9.8
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable'), (400, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: armhf
Kernel: Linux 4.18.0-0.bpo.1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages lintian depends on:
ii binutils 2.28-5
ii bzip2 1.0.6-8.1
ii diffstat 1.61-1+b1
ii dpkg 1.18.25
ii dpkg-dev 1.18.25
ii file 1:5.30-1+deb9u2
ii gettext 0.19.8.1-2
ii gnupg [gpg] 2.1.18-8~deb9u4
ii intltool-debian 0.35.0+20060710.4
ii libapt-pkg-perl 0.1.32
ii libarchive-zip-perl 1.59-1+deb9u1
ii libcapture-tiny-perl 0.44-1
ii libcgi-pm-perl 4.35-1
ii libclass-accessor-perl 0.34-1
ii libclone-perl 0.38-2+b1
ii libdpkg-perl 1.18.25
ii libemail-valid-perl 1.202-1
ii libfile-basedir-perl 0.07-1
ii libio-async-perl 0.71-1
ii libipc-run-perl 0.94-1+deb9u1
ii liblist-moreutils-perl 0.416-1+b1
ii libparse-debianchangelog-perl 1.2.0-12
ii libpath-tiny-perl 0.100-1
ii libperl5.24 [libdigest-sha-perl] 5.24.1-3+deb9u5
ii libtext-levenshtein-perl 0.13-1
ii libtimedate-perl 2.3000-2
ii libtry-tiny-perl 0.28-1
ii liburi-perl 1.71-1
ii libxml-simple-perl 2.22-1
ii libyaml-libyaml-perl 0.63-2
ii man-db 2.7.6.1-2
ii patchutils 0.3.4-2
ii perl 5.24.1-3+deb9u5
ii t1utils 1.39-2
ii xz-utils 5.2.2-1.2+b1
Versions of packages lintian recommends:
ii libperlio-gzip-perl 0.19-1+b2
Versions of packages lintian suggests:
pn binutils-multiarch <none>
ii libhtml-parser-perl 3.72-3
ii libtext-template-perl 1.46-1
-- no debconf information
--- End Message ---
--- Begin Message ---
Hi Lucas,
We recently made some changes to Lintian's collections code, which
included the unpacking of sources via 'dpkg-source -x'. I think the
relevant commit was:
https://salsa.debian.org/lintian/lintian/commit/0ece177f931c40009374f70b274edae6f6fc6985
Lintian's error handling, which was your primary concern, may have
improved when we switched the process management to IO::Async for that
part of Lintian:
https://salsa.debian.org/lintian/lintian/blob/master/collection/unpacked#L89-93
As the log shows, the problem is now gone:
$ dget http://snapshot.debian.org/archive/debian/20130509T215232Z/pool/main/u/usbredir/usbredir_0.6-2.dsc
$ lintian usbredir_0.6-2.dsc
Non-zero status 2 from dpkg-source:
dpkg-source: error: expected ^--- in line 3 of diff
'/tmp/temp-lintian-lab-qtdC1RlDjw/pool/u/usbredir/usbredir_0.6-2_source/unpacked/debian/patches/update-usbredirserver-whatis-entry.diff'
warning: collect info unpacked about package usbredir failed (512)
warning: skipping check of source package usbredir
$ echo $?
2
$ lintian --version
Lintian v2.17.0
I am no longer able to reproduce your findings and will therefore close the bug.
Kind regards,
Felix Lechner
--- End Message ---