qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] Fedora images: use URLs from stable "archives.f


From: Cleber Rosa
Subject: Re: [Qemu-devel] [PATCH] Fedora images: use URLs from stable "archives.fedoraproject.org"
Date: Tue, 10 Sep 2019 08:29:24 -0400
User-agent: Mutt/1.12.1 (2019-06-15)

On Tue, Sep 10, 2019 at 09:41:20AM +0100, Daniel P. Berrangé wrote:
> On Tue, Sep 03, 2019 at 08:52:18PM -0400, Cleber Rosa wrote:
> > The LinuxInitrd.test_with_2gib_file_should_work_with_linux_v4_16 test,
> > from tests/acceptance/linux_initrd.py, is currently failing to fetch
> > the "vmlinuz" file.  The reason for the failure is that the Fedora
> > project retires older versions from the "dl.fedoraproject.org" URL,
> > and keeps them in "archives.fedoraproject.org".  As an added note,
> > that test uses a Fedora 28 image, because of the specific Linux kernel
> > version requirements of the test.
> > 
> > For the sake of stability, let's use URLs from the archived and
> > supposedely ever stable URLs.  The good news is that the currently
> > supported versions are also hosted on the later.  This change limits
> > itself to change the URLs, while keeping the fetched files the same
> > (as can be evidenced by the unchanged hashes).
> 
> The download.fedoraproject.org site we're (mostly) currently using
> is serviced by the Fedora mirrors which is very desirable as it
> spreads the load.
> 
> The archive.fedoraproject.org site is the master Fedora hosting
> server(s). dl.fedoraproject.org is the same master hosting service
> that is intended for use by the mirror sites to sync their content
> from.  Projects really shouldn't use either of these URLs for getting
> any content which is available via the mirror service as it places
> uncessary load on the Fedora master servers.
> 
> > Documentation and the "vm tests" fedora definition were also updated.
> > 
> > Signed-off-by: Cleber Rosa <address@hidden>
> > ---
> >  qemu-doc.texi                          |  6 +++---
> >  tests/acceptance/boot_linux_console.py | 25 +++++++++++++++----------
> >  tests/acceptance/linux_initrd.py       |  5 +++--
> >  tests/vm/fedora                        |  2 +-
> >  4 files changed, 22 insertions(+), 16 deletions(-)
> > 
> > diff --git a/qemu-doc.texi b/qemu-doc.texi
> > index 577d1e8376..37795f86fb 100644
> > --- a/qemu-doc.texi
> > +++ b/qemu-doc.texi
> > @@ -440,15 +440,15 @@ of <protocol>.
> >  
> >  Example: boot from a remote Fedora 20 live ISO image
> >  @example
> > -qemu-system-x86_64 --drive 
> > media=cdrom,file=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
> > +qemu-system-x86_64 --drive 
> > media=cdrom,file=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
> >  
> > -qemu-system-x86_64 --drive 
> > media=cdrom,file.driver=http,file.url=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
> > +qemu-system-x86_64 --drive 
> > media=cdrom,file.driver=http,file.url=http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
> >  @end example
> >  
> >  Example: boot from a remote Fedora 20 cloud image using a local overlay for
> >  writes, copy-on-read, and a readahead of 64k
> >  @example
> > -qemu-img create -f qcow2 -o backing_file='json:@{"file.driver":"http",, 
> > "file.url":"https://dl.fedoraproject.org/pub/fedora/linux/releases/20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2";,,
> >  "file.readahead":"64k"@}' /tmp/Fedora-x86_64-20-20131211.1-sda.qcow2
> > +qemu-img create -f qcow2 -o backing_file='json:@{"file.driver":"http",, 
> > "file.url":"http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2";,,
> >  "file.readahead":"64k"@}' /tmp/Fedora-x86_64-20-20131211.1-sda.qcow2
> >  
> >  qemu-system-x86_64 -drive 
> > file=/tmp/Fedora-x86_64-20-20131211.1-sda.qcow2,copy-on-read=on
> >  @end example
> 
> Nothing quite says "cutting edge" like examples pointing to 5+ years old
> software. Or to put it another way, we should update this to point to a
> modern OS release. ie Fedora 30.
>

Hi Daniel,

You're right, we should, and that's an obvious next step.  I tried to
keep this patch within the context of fixing the test regressions, and
making the overall experience stable.

> These should also be changed to download instead of dl.
>

I disagree, specially here, and believe that we shouldn't use the
"archive" site.  Having documentation that is accurate and whose
examples can be reproduced without caveats is a nice usability
touch.

I understand your worries about the eventual load on the Fedora
server.  While I'm certainly not qualified to speak for the Fedora
project, it'd be natural that the project would eventually cope
with the additional load, if that's actually significant.

> 
> > diff --git a/tests/acceptance/boot_linux_console.py 
> > b/tests/acceptance/boot_linux_console.py
> > index 2504ef0150..8a9a314ab4 100644
> > --- a/tests/acceptance/boot_linux_console.py
> > +++ b/tests/acceptance/boot_linux_console.py
> > @@ -76,8 +76,9 @@ class BootLinuxConsole(Test):
> >          :avocado: tags=arch:x86_64
> >          :avocado: tags=machine:pc
> >          """
> > -        kernel_url = 
> > ('https://download.fedoraproject.org/pub/fedora/linux/'
> > -                      
> > 'releases/29/Everything/x86_64/os/images/pxeboot/vmlinuz')
> > +        kernel_url = 
> > ('https://archives.fedoraproject.org/pub/archive/fedora'
> > +                      
> > '/linux/releases/29/Everything/x86_64/os/images/pxeboot'
> > +                      '/vmlinuz')
> >          kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> >  
> > @@ -250,8 +251,9 @@ class BootLinuxConsole(Test):
> >          :avocado: tags=arch:aarch64
> >          :avocado: tags=machine:virt
> >          """
> > -        kernel_url = 
> > ('https://download.fedoraproject.org/pub/fedora/linux/'
> > -                      
> > 'releases/29/Everything/aarch64/os/images/pxeboot/vmlinuz')
> > +        kernel_url = 
> > ('https://archives.fedoraproject.org/pub/archive/fedora'
> > +                      
> > '/linux/releases/29/Everything/aarch64/os/images/pxeboot'
> > +                      '/vmlinuz')
> >          kernel_hash = '8c73e469fc6ea06a58dc83a628fc695b693b8493'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> >  
> > @@ -271,8 +273,9 @@ class BootLinuxConsole(Test):
> >          :avocado: tags=arch:arm
> >          :avocado: tags=machine:virt
> >          """
> > -        kernel_url = 
> > ('https://download.fedoraproject.org/pub/fedora/linux/'
> > -                      
> > 'releases/29/Everything/armhfp/os/images/pxeboot/vmlinuz')
> > +        kernel_url = 
> > ('https://archives.fedoraproject.org/pub/archive/fedora'
> > +                      
> > '/linux/releases/29/Everything/armhfp/os/images/pxeboot'
> > +                      '/vmlinuz')
> >          kernel_hash = 'e9826d741b4fb04cadba8d4824d1ed3b7fb8b4d4'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> >  
> > @@ -318,8 +321,9 @@ class BootLinuxConsole(Test):
> >          :avocado: tags=arch:s390x
> >          :avocado: tags=machine:s390_ccw_virtio
> >          """
> > -        kernel_url = 
> > ('https://download.fedoraproject.org/pub/fedora-secondary/'
> > -                      'releases/29/Everything/s390x/os/images/kernel.img')
> > +        kernel_url = ('https://archives.fedoraproject.org/pub/archive'
> > +                      
> > '/fedora-secondary/releases/29/Everything/s390x/os/images'
> > +                      '/kernel.img')
> >          kernel_hash = 'e8e8439103ef8053418ef062644ffd46a7919313'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> >  
> > @@ -360,8 +364,9 @@ class BootLinuxConsole(Test):
> >          :avocado: tags=arch:ppc64
> >          :avocado: tags=machine:pseries
> >          """
> > -        kernel_url = 
> > ('https://download.fedoraproject.org/pub/fedora-secondary/'
> > -                      
> > 'releases/29/Everything/ppc64le/os/ppc/ppc64/vmlinuz')
> > +        kernel_url = ('https://archives.fedoraproject.org/pub/archive'
> > +                      '/fedora-secondary/releases/29/Everything/ppc64le/os'
> > +                      '/ppc/ppc64/vmlinuz')
> >          kernel_hash = '3fe04abfc852b66653b8c3c897a59a689270bc77'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> 
> Don't change these URLs. We can update to Fedora 30 though if you want
> to.
> 

I believe your suggestion to not change the URLs is based solely on your
perspective on the load on the "archives" server, right?

You should know that there's a number of counter points.  One is that
these tests are used on environments, which are maintained for a much
longer time than the lifespan of the currently maintained Fedora
versions.  We really need to make it stable and reliable, and IMO it
should be done upstream, for the benefit of all.

Best,
- Cleber.

> >  
> > diff --git a/tests/acceptance/linux_initrd.py 
> > b/tests/acceptance/linux_initrd.py
> > index 23be5a63aa..c61d9826a4 100644
> > --- a/tests/acceptance/linux_initrd.py
> > +++ b/tests/acceptance/linux_initrd.py
> > @@ -54,8 +54,9 @@ class LinuxInitrd(Test):
> >          QEMU has supported up to 4 GiB initrd for recent kernel
> >          Expect guest can reach 'Unpacking initramfs...'
> >          """
> > -        kernel_url = ('https://mirrors.kernel.org/fedora/releases/28/'
> > -                      'Everything/x86_64/os/images/pxeboot/vmlinuz')
> > +        kernel_url = 
> > ('https://archives.fedoraproject.org/pub/archive/fedora'
> > +                      
> > '/linux/releases/28/Everything/x86_64/os/images/pxeboot/'
> > +                      'vmlinuz')
> >          kernel_hash = '238e083e114c48200f80d889f7e32eeb2793e02a'
> >          kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> >          max_size = 2 * (1024 ** 3) + 1
> > diff --git a/tests/vm/fedora b/tests/vm/fedora
> > index e8fa5bf0d2..7fec1479fb 100755
> > --- a/tests/vm/fedora
> > +++ b/tests/vm/fedora
> > @@ -23,7 +23,7 @@ class FedoraVM(basevm.BaseVM):
> >      name = "fedora"
> >      arch = "x86_64"
> >  
> > -    base = "http://dl.fedoraproject.org/pub/fedora/linux/releases/30/";
> > +    base = 
> > "https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/30/";
> >      link = base + 
> > "Server/x86_64/iso/Fedora-Server-netinst-x86_64-30-1.2.iso"
> >      repo = base + "Server/x86_64/os/"
> >      full = base + "Everything/x86_64/os/"
> 
> This should be changed to download instead of dl.
> 
> > -- 
> > 2.21.0
> > 
> > 
> 
> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



reply via email to

[Prev in Thread] Current Thread [Next in Thread]