mbox series

[0/1] tests/acceptance/boot_linux: Switch to Fedora 32

Message ID 20210127010946.17370-1-dbuono@linux.vnet.ibm.com (mailing list archive)
Headers show
Series tests/acceptance/boot_linux: Switch to Fedora 32 | expand

Message

Daniele Buono Jan. 27, 2021, 1:09 a.m. UTC
Local acceptance tests run with "make check-acceptance" are now
showing some cases canceled like the following:

(01/39) tests/acceptance/boot_linux.py:BootLinuxX8664.test_pc_i440fx_tcg: CANCEL: Failed to download/prepare boot image (0.25 s)

Turns out, every full-vm test in boot_linux.py is trying to use a
Fedora 31 cloud image and is failing, with Avocado refusing to download
it, presumably because Fedora 31 is EOL.

This patch moves to Fedora 32, which is still supported. And seem to
work fine

The script has the image checksums hardcoded. I downloaded and verified
the checksums with the Fedora 32 GPG key, but I would feel more
confident if someone else wants to verify it too.

The checksum files are here:
https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/ppc64le/images/Fedora-Cloud-32-1.6-ppc64le-CHECKSUM
https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/s390x/images/Fedora-Cloud-32-1.6-s390x-CHECKSUM
https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/aarch64/images/Fedora-Cloud-32-1.6-aarch64-CHECKSUM
https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/x86_64/images/Fedora-Cloud-32-1.6-x86_64-CHECKSUM
and the GPG keys are available here:
https://getfedora.org/en/security/

NOTE: I tried moving to Fedora 33, but the aarch64 VM cannot boot
properly. May be worth investigating but I have no experience with ARM
so I'll leave that to someone else, if interested.

Daniele Buono (1):
  tests/acceptance/boot_linux: Switch to Fedora 32

 tests/acceptance/boot_linux.py | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

Comments

Wainer dos Santos Moschetta Jan. 28, 2021, 8:19 p.m. UTC | #1
Hi,

On 1/26/21 10:09 PM, Daniele Buono wrote:
> Local acceptance tests run with "make check-acceptance" are now
> showing some cases canceled like the following:
>
> (01/39) tests/acceptance/boot_linux.py:BootLinuxX8664.test_pc_i440fx_tcg: CANCEL: Failed to download/prepare boot image (0.25 s)
>
> Turns out, every full-vm test in boot_linux.py is trying to use a
> Fedora 31 cloud image and is failing, with Avocado refusing to download
> it, presumably because Fedora 31 is EOL.
>
> This patch moves to Fedora 32, which is still supported. And seem to
> work fine

While ago it was discussed about updating the Fedora version which, in 
my opinion, ended up without a conclusion. Please see the complete 
thread in:

https://www.mail-archive.com/qemu-devel@nongnu.org/msg763986.html

I'm CC'ing Daniel Berrrangé so that, perhaps, we could resume the 
discussion.

Thanks!

- Wainer

>
> The script has the image checksums hardcoded. I downloaded and verified
> the checksums with the Fedora 32 GPG key, but I would feel more
> confident if someone else wants to verify it too.
>
> The checksum files are here:
> https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/ppc64le/images/Fedora-Cloud-32-1.6-ppc64le-CHECKSUM
> https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/s390x/images/Fedora-Cloud-32-1.6-s390x-CHECKSUM
> https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/aarch64/images/Fedora-Cloud-32-1.6-aarch64-CHECKSUM
> https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/x86_64/images/Fedora-Cloud-32-1.6-x86_64-CHECKSUM
> and the GPG keys are available here:
> https://getfedora.org/en/security/
>
> NOTE: I tried moving to Fedora 33, but the aarch64 VM cannot boot
> properly. May be worth investigating but I have no experience with ARM
> so I'll leave that to someone else, if interested.
>
> Daniele Buono (1):
>    tests/acceptance/boot_linux: Switch to Fedora 32
>
>   tests/acceptance/boot_linux.py | 11 +++++------
>   1 file changed, 5 insertions(+), 6 deletions(-)
>
Daniele Buono Jan. 28, 2021, 10:06 p.m. UTC | #2
On 1/28/2021 3:19 PM, Wainer dos Santos Moschetta wrote:
> Hi,
> 
> On 1/26/21 10:09 PM, Daniele Buono wrote:
>> Local acceptance tests run with "make check-acceptance" are now
>> showing some cases canceled like the following:
>>
>> (01/39) 
>> tests/acceptance/boot_linux.py:BootLinuxX8664.test_pc_i440fx_tcg: 
>> CANCEL: Failed to download/prepare boot image (0.25 s)
>>
>> Turns out, every full-vm test in boot_linux.py is trying to use a
>> Fedora 31 cloud image and is failing, with Avocado refusing to download
>> it, presumably because Fedora 31 is EOL.
>>
>> This patch moves to Fedora 32, which is still supported. And seem to
>> work fine
> 
> While ago it was discussed about updating the Fedora version which, in 
> my opinion, ended up without a conclusion. Please see the complete 
> thread in:
> 
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg763986.html

Oops, didn't notice the previous thread. Apologies for the duplicate!

> 
> I'm CC'ing Daniel Berrrangé so that, perhaps, we could resume the 
> discussion.
> 
> Thanks!
> 
> - Wainer
> 
>>
>> The script has the image checksums hardcoded. I downloaded and verified
>> the checksums with the Fedora 32 GPG key, but I would feel more
>> confident if someone else wants to verify it too.
>>
>> The checksum files are here:
>> https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/ppc64le/images/Fedora-Cloud-32-1.6-ppc64le-CHECKSUM 
>>
>> https://download-ib01.fedoraproject.org/pub/fedora-secondary/releases/32/Cloud/s390x/images/Fedora-Cloud-32-1.6-s390x-CHECKSUM 
>>
>> https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/aarch64/images/Fedora-Cloud-32-1.6-aarch64-CHECKSUM 
>>
>> https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/x86_64/images/Fedora-Cloud-32-1.6-x86_64-CHECKSUM 
>>
>> and the GPG keys are available here:
>> https://getfedora.org/en/security/
>>
>> NOTE: I tried moving to Fedora 33, but the aarch64 VM cannot boot
>> properly. May be worth investigating but I have no experience with ARM
>> so I'll leave that to someone else, if interested.
>>
>> Daniele Buono (1):
>>    tests/acceptance/boot_linux: Switch to Fedora 32
>>
>>   tests/acceptance/boot_linux.py | 11 +++++------
>>   1 file changed, 5 insertions(+), 6 deletions(-)
>>
>
Philippe Mathieu-Daudé Feb. 5, 2021, 4:54 p.m. UTC | #3
Hi Wainer,

On 1/28/21 11:06 PM, Daniele Buono wrote:
> On 1/28/2021 3:19 PM, Wainer dos Santos Moschetta wrote:
>> Hi,
>>
>> On 1/26/21 10:09 PM, Daniele Buono wrote:
>>> Local acceptance tests run with "make check-acceptance" are now
>>> showing some cases canceled like the following:
>>>
>>> (01/39)
>>> tests/acceptance/boot_linux.py:BootLinuxX8664.test_pc_i440fx_tcg:
>>> CANCEL: Failed to download/prepare boot image (0.25 s)
>>>
>>> Turns out, every full-vm test in boot_linux.py is trying to use a
>>> Fedora 31 cloud image and is failing, with Avocado refusing to download
>>> it, presumably because Fedora 31 is EOL.
>>>
>>> This patch moves to Fedora 32, which is still supported. And seem to
>>> work fine
>>
>> While ago it was discussed about updating the Fedora version which, in
>> my opinion, ended up without a conclusion. Please see the complete
>> thread in:
>>
>> https://www.mail-archive.com/qemu-devel@nongnu.org/msg763986.html
> 
> Oops, didn't notice the previous thread. Apologies for the duplicate!
> 
>>
>> I'm CC'ing Daniel Berrrangé so that, perhaps, we could resume the
>> discussion.

The first question I'd like to figure out is how/where can we archive
the artifacts being tested by the project. As we maintain stable tags,
I'm more worried about regressions affecting LTS use rather than
recently added features which get more coverage and activity.
Is this too conservative for acceptance testing?

Regards,

Phil.
Daniel P. Berrangé Feb. 5, 2021, 5:28 p.m. UTC | #4
On Fri, Feb 05, 2021 at 05:54:24PM +0100, Philippe Mathieu-Daudé wrote:
> Hi Wainer,
> 
> On 1/28/21 11:06 PM, Daniele Buono wrote:
> > On 1/28/2021 3:19 PM, Wainer dos Santos Moschetta wrote:
> >> Hi,
> >>
> >> On 1/26/21 10:09 PM, Daniele Buono wrote:
> >>> Local acceptance tests run with "make check-acceptance" are now
> >>> showing some cases canceled like the following:
> >>>
> >>> (01/39)
> >>> tests/acceptance/boot_linux.py:BootLinuxX8664.test_pc_i440fx_tcg:
> >>> CANCEL: Failed to download/prepare boot image (0.25 s)
> >>>
> >>> Turns out, every full-vm test in boot_linux.py is trying to use a
> >>> Fedora 31 cloud image and is failing, with Avocado refusing to download
> >>> it, presumably because Fedora 31 is EOL.
> >>>
> >>> This patch moves to Fedora 32, which is still supported. And seem to
> >>> work fine
> >>
> >> While ago it was discussed about updating the Fedora version which, in
> >> my opinion, ended up without a conclusion. Please see the complete
> >> thread in:
> >>
> >> https://www.mail-archive.com/qemu-devel@nongnu.org/msg763986.html
> > 
> > Oops, didn't notice the previous thread. Apologies for the duplicate!
> > 
> >>
> >> I'm CC'ing Daniel Berrrangé so that, perhaps, we could resume the
> >> discussion.
> 
> The first question I'd like to figure out is how/where can we archive
> the artifacts being tested by the project. As we maintain stable tags,
> I'm more worried about regressions affecting LTS use rather than
> recently added features which get more coverage and activity.
> Is this too conservative for acceptance testing?

I think there's multiple issues to worry about, one short
term, the others long term.

The most immediate issue is that we are pointing to an EOL
Fedora release with broken download URL.

While we could update to F 32, that doesn't solve the problem.
It will burn us again in just a few months when F34 comes out
making F32 EOL. We need a long term solution.


The broader long term question is what our goals are for the
acceptance tests.

I think the primary goal is detect regressions in QEMU where
we break something which used to work.  To achieve this we don't
need to be chasing distro releases. It is fine for us to be
testing an EOL distro. The fact that it is EOL doesn't invalidate
the test behaviour.

The only problem switch EOL distros is the URL breakge. That is
trivially solved in the Fedora case by downloading from the
archive.fedoraproject.org server instead of main server. Problem
solved forever.


The more important long term question is whether the selection of
distros we are testing gives us coverage which exercises all the
scenarios that we care about.

For example, considering virtio devices, we need

 - Guest OS which *only* has virtio legacy mode implemented
     - pc for PCI 
     - q35 for PCI-e
   Proves deices work in legacy mode on both PCI and PCIe
 
 - Guest OS which has both legacy and modern mode implemented
     - pc for PCI 
     - q35 for PCI-e
   Proves devices work in transitional mode (pc) and
   modern-only mode (PCI-e)


So for virtio coverage, we'll need 2 guest OS, each with two
scenarios as a starting point.  RHEL-6 is an example of a
distro that was legacy only. Anything newer does the other
case.

But then we need to expand the axis to non-x86 too, most
especially for ppc64 and s390, which have non-PCI based
options as well as PCI.

Periodically a new virtio device will arrive (eg virtiofs)
and that might mean we need to add another test scenario, or
upgrade the more modern OS in an existing test scenario.
This is reasonably infrequent though, so in general we won't
need to be chasing the bleeding edge distros.


The matrix can grow pretty damn fast, and we need to keep it
under control. One way to deal with that is to have one test
case cover multiple features. eg don't run a separate test
for each of virtio-net, virtio-blk, virtio-scsi. Launch a
single VM in which we can test all of them at once.

Also we don't need to test all of Ubuntu, Fedora, RHEL, SUSE
if all those distros are basically exercising the same set
of QEMU device code paths. ie just becuase the distro is
different, doesn't mean it adds value to the test coverage.

We should be strongly driven by whether the distro exercises
a feature that isn't already covered by an existing test.


So the next question is what needs to be in our matrix ?
Most downstream vendors will say it needs to be all KVM related
features. QEMU as a project though also cares more broadly
about many more devices for emulating older platforms.
There's some balance to be struck here.


On many previous occassions we've talked about classifying
QEMU features into support tiers. If we had a view of what
our support tiers were for each feature, this would in turn
show us where to spend effort in building up testing coverage.

I made an abortive start at trying to define what tiers might
mean but didn't get into really classifying features 

   https://wiki.qemu.org/Support_Tiers

don't pay attention to the host/guest classifications I did
there - I was mostly just playing with how to represent it.

Regards,
Daniel