#229 Download website redirect no longer round-robbins mirror sites
Closed: Invalid by bcotton. Opened by cosmos.

Previously, accesses to addresses like:
https://download.fedoraproject.org/pub/fedora/linux/releases/35/
would HTTP redirect to a different download site each time. Recently (< ~2 months), this behavior changed and now it always redirects only to the first one on the mirrors list:
https://iad.mirror.rackspace.com/fedora/releases/35/ .

I've built some automatic installation scripts which use some HTTP/2 features. They start by sending out a few page loads until the releases/ page redirects to a site supporting HTTP/2 and then commence to download the necessary files. This process is now broken because the rackspace address does not offer HTTP/2.

Please either restore the previous behavior, or if you really want to just return a single mirror site, make sure that the returned site is a fast one that offers HTTP/2. Better yet, both restore the round-robbin redirects and place the HTTP/2 sites at the beginning of the mirrors list.


I just got redirected to mirrors.rit.edu. If you're still being redirected to the same site all the time, please file an issue with the infrastructure team, as they manage that infrastructure.

Metadata Update from @bcotton:
- Issue close_status updated to: Invalid
- Issue status updated to: Closed (was: Open)

As it turns out, I can get the information I need by removing the '35/' from the URL.
In any case, you may wish to consider fixing the load-leveling for the distro number included case.
Just FYI:

dnstest:

!/bin/bash

declare -r \
BASE='https://download.fedoraproject.org' \
CURL='/usr/bin/curl'

probe_url()
{
local -r Url="$1"
local -i i Maxprobes=16 Stat
local U

    printf 'Scanning base url: %s\n' "$Url"
    for (( i=0; i<$Maxprobes; i++ )) ; do
            U="$("$CURL" -Isw '%{stderr}%{http_version}\t%{url_effective}\n' \
                    -L "$Url" 2>&1 >/dev/null)"
            Stat="$?"
            if [[ "$Stat" != '0' ]]; then
                    printf 'probe failed, curl status %u\n%s\n' \
                            "$Stat" "$U" >&2
                    return 2
            fi
            printf 'Probe %u: %s\n' "$i" "$U"
    done
    return 0;

}

if [[ -z "$1" ]]; then
probe_url "$BASE/pub/fedora/linux/releases/"
else
probe_url "$BASE/pub/fedora/linux/releases/35/"
fi

$ dnstest
Scanning base url: https://download.fedoraproject.org/pub/fedora/linux/releases/
Probe 0: 1.1 https://ftp-nyc.osuosl.org/pub/fedora/linux/releases/
Probe 1: 1.1 https://ftp-chi.osuosl.org/pub/fedora/linux/releases/
Probe 2: 1.1 https://ftp-nyc.osuosl.org/pub/fedora/linux/releases/
Probe 3: 1.1 https://mirrors.rit.edu/fedora/fedora/linux/releases/
Probe 4: 1.1 https://ftp-osl.osuosl.org/pub/fedora/linux/releases/
Probe 5: 1.1 https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/
Probe 6: 1.1 https://mirror.genesisadaptive.com/fedora/linux/releases/
Probe 7: 1.1 https://ftp-osl.osuosl.org/pub/fedora/linux/releases/
Probe 8: 2 https://mirror.arizona.edu/fedora/linux/releases/
Probe 9: 1.1 https://ord.mirror.rackspace.com/fedora/releases/
Probe 10: 1.1 https://mirrors.rit.edu/fedora/fedora/linux/releases/
Probe 11: 1.1 https://mirrors.rit.edu/fedora/fedora/linux/releases/
Probe 12: 1.1 https://mirrors.xmission.com/fedora/linux/releases/
Probe 13: 2 https://mirror.arizona.edu/fedora/linux/releases/
Probe 14: 1.1 https://mirror.genesisadaptive.com/fedora/linux/releases/
Probe 15: 2 https://d2lzkl7pfhq30w.cloudfront.net/pub/fedora/linux/releases/

$ ./dnstest x
Scanning base url: https://download.fedoraproject.org/pub/fedora/linux/releases/35/
Probe 0: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 1: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 2: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 3: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 4: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 5: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 6: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 7: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 8: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 9: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 10: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 11: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 12: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 13: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 14: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/
Probe 15: 1.1 https://iad.mirror.rackspace.com/fedora/releases/35/

I just created:
https://pagure.io/fedora-infrastructure/issue/10497

It's just a note pointing here.

Metadata