Your message dated Sat, 10 Aug 2019 15:15:28 -0700
with message-id 
<CAFHYt55DqDG7cmNeiH-SgJ=j9zoNKiOm6B4=nogkqwppz0u...@mail.gmail.com>
and subject line Lintian no longer hangs but exits gracefully, and provides a 
helpful error message
has caused the Debian Bug report #926799,
regarding lintian: hangs when dpkg-source fails
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
926799: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926799
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
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 ---

Reply via email to