[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#896698: autopkgtest: silently fails when 'needs-recommends' can't be installed



Package: autopkgtest
Version: 5.2
User: debian-ci@lists.debian.org
Usertags: issue

autopkgtest doesn't fail when apt can't install recommended packages.
This is caused by APT::Install-Recommends=true, which is what
autopkgtest uses to achieve this) not forcing apt to fail. apt can't be
forced to fail with that setting on missing recommends. Also that option
is transitive. Is that really wanted?

For a more detailed example, see the e-mail below.

-------- Forwarded Message --------
Subject: Re: autopkgtest 'needs-recommends' with testing + unstable
Date: Sun, 22 Apr 2018 17:16:12 +0300
From: Niko Tyni <ntyni@debian.org>
To: debian-ci@lists.debian.org

On Sun, Apr 22, 2018 at 03:46:50PM +0200, Paul Gevers wrote:
> On 22-04-18 14:53, Niko Tyni wrote:
>> So afaics part of the issue is that when the 'needs-recommends'
>> test restriction cannot be fulfilled, autopkgtest doesn't notice
>> and report an error, but rather carries on and runs the test
>> regardless.
> 
> This (not bailing out) sounds like a bug in autopkgtest to me. I'll
> file one soon, based on your message. Although, if you want to file
> it yourself, please do so.

Some details: in


https://ci.debian.net/data/autopkgtest/testing/amd64/libs/libsearch-elasticsearch-perl/189195/log.gz

starting at 'test command3: preparing testbed' we see

  Investigating (0) libjson-xs-perl:amd64 < none -> 3.040-1 @un uN Ib >
  Broken libjson-xs-perl:amd64 Depends on libcommon-sense-perl:amd64 <
none | 3.74-2+b4 @un uH >
    Considering libcommon-sense-perl:amd64 2 as a solution to
libjson-xs-perl:amd64 1
    Holding Back libjson-xs-perl:amd64 rather than change
libcommon-sense-perl:amd64
  Investigating (0) libtypes-serialiser-perl:amd64 < none -> 1.0-1 @un
uN Ib >
  Broken libtypes-serialiser-perl:amd64 Depends on
libcommon-sense-perl:amd64 < none | 3.74-2+b4 @un uH >
    Considering libcommon-sense-perl:amd64 2 as a solution to
libtypes-serialiser-perl:amd64 1
    Holding Back libtypes-serialiser-perl:amd64 rather than change
libcommon-sense-perl:amd64
  Done
   Done

The test dependencies are just '@, pkg-perl-autopkgtest' with
'Restrictions: needs-recommends', so it's supposed to install
libsearch-elasticsearch-perl and its dependencies and recommendations.
The package Recommends libjson-xs-perl, which is uninstallable without
pulling libcommon-sense-perl:amd64 3.74-2+b5 from unstable. This doesn't
happen, so we get a failure:

    #   Failed test '/usr/bin/perl -wc
/usr/share/perl5/Search/Elasticsearch/Serializer/JSON/XS.pm exited
successfully'
    #   at
/usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t
line 121.

[...]

    # Can't locate JSON/XS.pm in @INC (you may need to install the
JSON::XS module) (@INC contains: /etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.26.2 /usr/local/share/perl/5.26.2
/usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26
/usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at
/usr/share/perl5/Search/Elasticsearch/Serializer/JSON/XS.pm line 4.
    # BEGIN failed--compilation aborted at
/usr/share/perl5/Search/Elasticsearch/Serializer/JSON/XS.pm line 4.

Similarly in
https://ci.debian.net/data/autopkgtest/testing/amd64/libp/libppi-perl/184151/log.gz
libppi-perl Recommends: libclass-xsaccessor-perl which is only
installable from unstable but doesn't get pulled in, which leads to a
failure. In this case apt is totally silent about the uninstallability
afaics.


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: