Bug 1879127

Summary: a metalink repository can't be added using UI
Product: [Fedora] Fedora Reporter: Kamil Páral <kparal>
Component: anacondaAssignee: Vendula Poncova <vponcova>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 33CC: anaconda-maint-list, awilliam, bcotton, jkonecny, jonathan, kellin, mkolman, robatino, vanmeeuwen+fedora, vponcova, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException AcceptedBlocker
Fixed In Version: anaconda-33.25.2-4 anaconda-33.25.2-4.fc33 anaconda-33.25.4-1.fc33 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-21 20:49:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1766776, 1766777    
Attachments:
Description Flags
repo definition
none
error in the main hub
none
anaconda.log
none
dnf.librepo.log
none
packaging.log
none
program.log
none
syslog none

Description Kamil Páral 2020-09-15 13:47:32 UTC
Description of problem:
It is not possible to define an additional installation repository with a metalink link using Anaconda's GUI. The main hub always says "Error setting up base repository". This seems to be caused by the fact, that anaconda considers the link to be a standard repository link instead of a metalink, even though the "metalink" URL type is correctly selected in the UI.

I added a new repository with this metalink:
https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f33&arch=x86_64

And dnf.librepo.log contains:
2020-09-15T13:35:19Z INFO Downloading: https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64
2020-09-15T13:35:20Z INFO Error during transfer: Status code: 404 for https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64 (IP: 152.19.134.142)
2020-09-15T13:35:20Z INFO Downloading: https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64
2020-09-15T13:35:20Z INFO Error during transfer: Status code: 404 for https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64 (IP: 152.19.134.142)
2020-09-15T13:35:20Z INFO Downloading: https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64
2020-09-15T13:35:20Z INFO Error during transfer: Status code: 404 for https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64 (IP: 152.19.134.142)
2020-09-15T13:35:20Z INFO Downloading: https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64
2020-09-15T13:35:21Z INFO Error during transfer: Status code: 404 for https://mirrors.fedoraproject.org/metalink/repodata/repomd.xml?repo=updates-testing-f33&arch=x86_64 (IP: 152.19.134.142)
2020-09-15T13:35:21Z INFO Error while downloading: Cannot download repodata/repomd.xml: All mirrors were tried

As you can see, the URL was modified and "repodata/repomd.xml" was added into the middle incorrectly.

Version-Release number of selected component (if applicable):
anaconda 33.25.2-3.fc33
Fedora-Everything-netinst-x86_64-33-20200914.n.0.iso

How reproducible:
always

Steps to Reproduce:
1. open Installation Source
2. add a new repository - name "ut", URL "https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f33&arch=x86_64", type "metalink"
3. click Done
4. see error in the main hub

Comment 1 Kamil Páral 2020-09-15 13:48:29 UTC
Created attachment 1714932 [details]
repo definition

Comment 2 Kamil Páral 2020-09-15 13:48:43 UTC
Created attachment 1714933 [details]
error in the main hub

Comment 3 Kamil Páral 2020-09-15 13:49:37 UTC
Created attachment 1714934 [details]
anaconda.log

Comment 4 Kamil Páral 2020-09-15 13:50:28 UTC
Created attachment 1714935 [details]
dnf.librepo.log

Comment 5 Kamil Páral 2020-09-15 13:50:33 UTC
Created attachment 1714936 [details]
packaging.log

Comment 6 Kamil Páral 2020-09-15 13:50:37 UTC
Created attachment 1714937 [details]
program.log

Comment 7 Kamil Páral 2020-09-15 13:50:44 UTC
Created attachment 1714938 [details]
syslog

Comment 8 Kamil Páral 2020-09-15 13:56:05 UTC
I'm proposing this as a blocker. There is this Final criterion, which is quite clear:
"The installer must be able to use all supported local and remote package and installer sources."
https://fedoraproject.org/wiki/Fedora_33_Final_Release_Criteria#Package_and_installer_sources

There is also this Basic criterion:
"When using a release-blocking dedicated installer image, the installer must be able to use either HTTP or FTP repositories (or both) as package sources."
https://fedoraproject.org/wiki/Basic_Release_Criteria#Remote_package_sources
which is also repeated in Beta:
https://fedoraproject.org/wiki/Fedora_33_Beta_Release_Criteria#Remote_package_sources

This falls under HTTP(S), but it's not clear whether all repo types (plain URL, mirrorlist, metalink) are covered under it.

Comment 9 Ben Cotton 2020-09-15 14:25:20 UTC
Two questions:

1. Can you add non-metalink URLs successfully?

2. Can you add metalink URLs using a kickstart instead of the GUI?

Knowing the answers to these would help my vote on Beta blocker status. (Final seems straightforward)

Comment 10 Vendula Poncova 2020-09-15 15:37:15 UTC
Fixed in a pull request: https://github.com/rhinstaller/anaconda/pull/2857

Comment 11 Adam Williamson 2020-09-16 17:11:18 UTC
we don't have the votes to accept as a Beta blocker yet, but we *do* have the votes in the ticket - https://pagure.io/fedora-qa/blocker-review/issue/94 - to accept as a Beta FE at least, so marking accepted so anaconda folks can pull this in for a build/update.

Comment 12 Kamil Páral 2020-09-17 08:30:53 UTC
(In reply to Ben Cotton from comment #9)
> 1. Can you add non-metalink URLs successfully?

A direct repository URL can be added successfully, yes. According to the PR, mirrorlists are probably broken as well.

Comment 13 Fedora Update System 2020-09-17 11:16:03 UTC
FEDORA-2020-e1d834c1ef has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-e1d834c1ef

Comment 14 Adam Williamson 2020-09-17 16:40:09 UTC
Kamil: no, mirrorlists work. At least according to openQA, which tests them. Does seem odd, though.

Comment 15 Fedora Update System 2020-09-17 17:56:37 UTC
FEDORA-2020-e1d834c1ef has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-e1d834c1ef`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-e1d834c1ef

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Adam Williamson 2020-09-18 00:14:45 UTC
You can use https://www.happyassassin.net/temp/00669088-FEDORA-2020-e1d834c1ef-netinst-x86_64.iso to test the fix for this. It's the netinst ISO which openQA built to test the update.

Comment 17 Kamil Páral 2020-09-18 15:22:01 UTC
(In reply to Adam Williamson from comment #16)
> You can use https://www.happyassassin.net/temp/00669088-FEDORA-2020-e1d834c1ef-netinst-x86_64.iso to test the fix for this. 

404 Not Found

Comment 18 Adam Williamson 2020-09-18 18:12:25 UTC
D'oh, sorry, I forgot the bit where I actually copy it to the web server...:)

It's there now.

Comment 19 Kamil Páral 2020-09-21 08:37:29 UTC
The ISO from comment 16 works fine, I can add a metalink repository and it gets used.

Comment 20 Adam Williamson 2020-09-21 18:51:48 UTC
Discussed at 2020-09-21 blocker review meeting: https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2020-09-21/f33-blocker-review.2020-09-21-16.00.html . Rejected as a Beta blocker as there isn't any clear Basic or Beta criterion here. Accepted as a Final blocker as a clear violation of "The installer must be able to use all supported local and remote package and installer sources."

Comment 21 Fedora Update System 2020-09-21 20:49:19 UTC
FEDORA-2020-e1d834c1ef has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Fedora Update System 2020-09-29 17:25:18 UTC
FEDORA-2020-384ff75a01 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-384ff75a01

Comment 23 Fedora Update System 2020-09-30 01:11:46 UTC
FEDORA-2020-384ff75a01 has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-384ff75a01`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-384ff75a01

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 24 Fedora Update System 2020-10-01 16:39:59 UTC
FEDORA-2020-384ff75a01 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-384ff75a01

Comment 25 Fedora Update System 2020-10-02 01:46:28 UTC
FEDORA-2020-384ff75a01 has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-384ff75a01`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-384ff75a01

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 26 Fedora Update System 2020-10-03 00:56:15 UTC
FEDORA-2020-384ff75a01 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.