Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

huge amount of error in curl call on RHEL8 when not using metalink #142

Open
UserXYZ opened this issue Nov 24, 2022 · 0 comments
Open

huge amount of error in curl call on RHEL8 when not using metalink #142

UserXYZ opened this issue Nov 24, 2022 · 0 comments

Comments

@UserXYZ
Copy link

UserXYZ commented Nov 24, 2022

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 7
  • Distribution: RHEL8

How to reproduce (e.g Puppet code you use)

epel::epel_metalink : absent
Other params inherited from module defaults.

What are you seeing

On RHEL8, if you disable metalink config option in generated /etc/yum.repos.d/epel.repo but leave only mirrolist, yum/dnf check-update generates huge amount of curl errors in /var/log/dnf.librepo.log.

Update/installation does still work, but logs grow huge pretty fast since for every mirror and method, few of these error log lines are generated - and there are a lot of mirrors...

Puppet generated epel.repo has this:
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch (as defined in this puppet module).

On the other hand, if you disable puppet, and manually change the generated epel.repo to use metalink instead of mirrorlist, everything works as it should, and normal logs are present - no curl errors.

What behaviour did you expect instead

These curl errors should not be present, whatever method you use - mirrorlist, metalink or baseurl.
If repo 'backend' itself is the culprit and this module can not get around it, at least it should clearly state in documentation that on certain OS/release versions we should use one or the other combination to avoid problems.
Also, it should state which combinations should work and which might create issues, with some background info if possible.

Output log

2022-11-24T11:31:12+0100 INFO Librepo version: 1.14.2 with CURL_GLOBAL_ACK_EINTR support (libcurl/7.61.1 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9. 6/openssl/zlib nghttp2/1.33.0) 2022-11-24T11:31:13+0100 INFO Downloading: https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64 2022-11-24T11:31:14+0100 INFO Downloading: <metalink version="3.0" xmlns="http://www.metalinker.org/" type="dynamic" pubdate="Thu, 24 Nov 2022 10:31:13 GMT" generator="mirrormanager" xmlns:mm0="http:// fedorahosted.org/mirrormanager">/repodata/repomd.xml 2022-11-24T11:31:14+0100 INFO Error during transfer: Curl error (3): URL using bad/illegal format or missing URL for http://<url protocol="rsync" type="rsync" location="DK" preference="99">rsync://mirror.netsite.dk/epel/8/Everything/x86_64/repodata/repomd.xml</url>/repodata/repomd.xml [Host name '<url protocol="rsync" type="rsync" location="DK" preference="99">rsync' contains bad letter] 2022-11-24T11:31:14+0100 INFO Downloading: <url protocol="https" type="https" location="DK" preference="99">https://mirror.netsite.dk/epel/8/Everything/x86_64/repodata/repomd.xml</url>/repodata/repomd.xml ...

Any additional information you'd like to impart

Default EPEL RPM creates epel.repo that uses metalink and not mirrorlist, although it's a bit longer;
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdir

For test, I have removed last two parameters from the URL and it still works, thus matching the config in this puppet module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant