Missing repodata/filelists.xml in yum repo causes repo sync to fail

We are using Red Hat Satellite server to distribute rpm packages to our servers. It synchronizes the Elasticsearch 8.x yum repository (https://artifacts.elastic.co/packages/8.x/yum) only downloading repository metadata and the packages we actually use (download policy "On demand").

Since late January, synchronizing the repository has failed due to the upstream repository metadate missing the file repodata/filelists.xml. Also repodata/repomd.xml should have a reference to this file.

There must have been some change to the metadata generation lately since we had this working earlier in January.

Would it be possible to generate the complete metadata again?

We have the same problem with RH Satellite 6.15.5.2 at RPM Repo Sync " Errors:

XML file(s): filelists not found"

We had an incident related to RPM packages earlier this week, but it should be resolved now: ESS (Public) Status - Ubuntu/Debian and Fedora package repositories disruption. Indeed, I was able to follow Install Elasticsearch with RPM | Elasticsearch Guide [8.17] | Elastic on a Fedora Docker image:

$ docker run -ti fedora:latest bash
[root@90368c78fb2d /]# cat > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
[root@90368c78fb2d /]# sudo dnf install --enablerepo=elasticsearch elasticsearch
Updating and loading repositories
[...]
[1/3] Verify package files
[2/3] Prepare transaction
[3/3] Installing elasticsearch-0:8.17.1-1.aarch64
Complete!

Hi,

we use the Upstream URL: https://artifacts.elastic.co/packages/8.x/yum
We got still " Errors:

XML file(s): filelists not found"

on Upstream Sync, Installtion with attached direct attached Repo works, Upstream sync not!
Thanks.

The issue reported in this thread has not been resolved. I have verifed that today.

Yes, you can install rpms from the repo if you add the repo directly to a host, but the point of using satellite server to distribute software, is to get the same version installed on all our hosts. Satellite is unable to use the repository with the current metadata.

$ wget -q https://artifacts.elastic.co/packages/8.x/yum/repodata/repomd.xml
$ grep 'data type=' repomd.xml
    <data type="other">
    <data type="primary">

We are missing <data type="filelists"> here. We have tried downloading the entire repository manually (outside satellite) and rebuild the metadata ourselves (using createrepo), and then we get:

  <data type="primary">
  <data type="filelists">
  <data type="other">
  <data type="primary_db">
  <data type="filelists_db">
  <data type="other_db">

This method is however impractical as we need to do a complete download of all rpms instead of just the metadata and the rpms we need. It will also cause more load on the upstream servers, in pareticular if a lot of satellite users starts using this method to overcome the issue.

Created a topic as well before I saw this one.

This was my post (will delete the other thread):

Since recently the repository of version 8 cannot be reached from RedHat Satellite (issues reported with 6.11, 6.15 and 6.16). This is already mentioned in this topic:
Apt repo change? "E: Repository 'https://artifacts.elastic.co/packages/8.x/apt stable InRelease' changed its 'Origin' value from 'elastic' to 'Artifactory'" - #16 by Tuckson but since the original question of this topic was solved, and no more reactions were given, I thought it better to open a new topic. Multiple users reported this issue.

RedHat Satellite is widely known with companies as the primairy way to maintain and provision their RedHat systems. It currently is on version 6.16 which is not to be confused with rhel6 . My Satellite 6.16.runs on rhel9 .

Other users reported in the topic mentioned above:

sobjerkeSvein Olav Bjerkeset

2d

It seems to still be a problem with the upstream repositories. We have the same issue from Satellite 6.15 on RHEL8 and Satellite 6.16 on RHEL9. The following URLs all return 404 (Not Found):

https://artifacts.elastic.co/packages/8.x/yum
https://artifacts.elastic.co/packages/oss-8.x/yum
https://artifacts.elastic.co/packages/8.x/apt

Testing the URLs with cURL gives the same 404 error code.

mkadlics

2d

Similar issue with salt/saltstack was solved by enabling the "Enable File List Indexing" option on the upstream Artifactory rpm repo: Unable to create local mirror of saltstack repo, due to filelists.xml not being available · Issue #67032 · saltstack/salt · GitHub
Not sure if it is the issue here, but seems to be very similar.


sobjerke
Svein Olav Bjerkeset

2d

The following URL works via cURL:
https://artifacts.elastic.co/packages/8.x/yum/repodata/repomd.xml

But: The repomd.xml file has no entry for data type="filelists" which seems to be expected by Red Hat Satellite server.

sobjerkeSvein Olav Bjerkeset

2d

Also note that we have had the 8.x yum repo working with Satellite 6.16 until a week or two ago, so there must have been some changes to the upstream repository that causes the repository sync to fail now.

===========================
Please fix this since it blocks us from installing and upgrading on our systems. Also note that I found no problems with the version 7 repo.

As we continue to look into this internally, can I please ask if this is an option for you?

We did indeed roll out a change that stopped providing filelist.xml as a result. While this is something that we have indeed provided in the past, it makes metadata operations slower and is not required for the elastic packaging repositories to function correctly. Our tests pass on all OSes from our support matrix.

Can you help me understand if there is no way to configure a repo in Red Hat Satellite without a filelist ? Is this metadata that Satellite can be configured to create on it's own if your setup requires it for some reason ?

"Republish Repository Metadata" for the ES 8.x repo did not resolve the issue. We still got the same error. Even if it had worked, it would mean we would have to republish before each sync, which would not be practical.

I can see no option in the repository configuration in Satellite which would let us sync it without filelists.xml. I can open a support case with Red Hat and ask to make sure.

It would be great if you could reach out to Red Hat! Thank you! We're open to the idea of addings this metadata back if there's no way at all for Satellite to work without it. I find it strange that the this is the case, but I'm not familiar with this product. I'll keep monitoring this thread.

I strongly suggest you gain some experience on the way Satellite behaviors (you as in Elastic, not you as in atorok per sé :wink: ) . As I stated above, It is widely used in larger environments to manage patching processes on corporate RedHat landscapes.

Satellite hosts repositories itself. Forcefully regenerate metadata is about it's own repositories, not about the upstream package sources. There simply seems to be no option other than creating a local mirror of Elastic's repository structure, then generate the file, and use that as upstream repo for satellite. Not only this seems unlogical, it also beats the purpose of having Satellite being the one-stop-shop on our enviroment for managing package streams from the internet and to our servers.

1 Like

It looks like the yum makecache command requires the filelist.xml.gz file. I was able to reproduce the error on an Amazon Linux 2 OS and centos 7. However, running yum makecache fast will work.

  1. Start up a VM on AWS with Amazon Linux 2 OS.
  2. Follow steps in this guide to add /etc/yum.repos.d/elastic.repo.
  3. Run yum makecache command to trigger the error.
[ec2-user@ip-172-31-29-120 ~]$ uname -a
Linux ip-172-31-29-120.ec2.internal 5.10.233-224.894.amzn2.x86_64 #1 SMP Mon Jan 27 16:52:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
[ec2-user@ip-172-31-29-120 ~]$ sudo rm -rf /var/cache/yum
[ec2-user@ip-172-31-29-120 ~]$ sudo yum makecache
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                                          | 3.6 kB  00:00:00     
amzn2extra-docker                                                                                                                                                   | 2.9 kB  00:00:00     
amzn2extra-kernel-5.10                                                                                                                                              | 3.0 kB  00:00:00     
elastic-8.x                                                                                                                                                         | 1.1 kB  00:00:00     
(1/15): amzn2-core/2/x86_64/group_gz                                                                                                                                | 2.7 kB  00:00:00     
(2/15): amzn2-core/2/x86_64/updateinfo                                                                                                                              | 1.0 MB  00:00:00     
(3/15): amzn2-core/2/x86_64/filelists_db                                                                                                                            |  66 MB  00:00:01     
(4/15): amzn2extra-docker/2/x86_64/filelists_db                                                                                                                     |  41 kB  00:00:00     
(5/15): amzn2extra-docker/2/x86_64/updateinfo                                                                                                                       |  22 kB  00:00:00     
(6/15): amzn2extra-docker/2/x86_64/primary_db                                                                                                                       | 119 kB  00:00:00     
(7/15): amzn2extra-docker/2/x86_64/other_db                                                                                                                         |  39 kB  00:00:00     
(8/15): amzn2extra-kernel-5.10/2/x86_64/updateinfo                                                                                                                  | 104 kB  00:00:00     
(9/15): amzn2-core/2/x86_64/other_db                                                                                                                                |  24 MB  00:00:01     
(10/15): amzn2extra-kernel-5.10/2/x86_64/filelists_db                                                                                                               |  18 MB  00:00:00     
(11/15): amzn2-core/2/x86_64/primary_db                                                                                                                             |  74 MB  00:00:02     
(12/15): amzn2extra-kernel-5.10/2/x86_64/primary_db                                                                                                                 |  33 MB  00:00:01     
(13/15): amzn2extra-kernel-5.10/2/x86_64/other_db                                                                                                                   |  13 MB  00:00:00     
(14/15): elastic-8.x/primary                                                                                                                                        | 682 kB  00:00:00     
(15/15): elastic-8.x/other                                                                                                                                          |  51 kB  00:00:00     
elastic-8.x                                                                                                                                                                      1674/1674
Error: requested datatype filelists not available

but yum makecache fast works fine.

[ec2-user@ip-172-31-29-120 ~]$ sudo yum makecache fast
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                     | 3.6 kB  00:00:00     
amzn2extra-docker                                                                                                              | 2.9 kB  00:00:00     
amzn2extra-kernel-5.10                                                                                                         | 3.0 kB  00:00:00     
elastic-8.x                                                                                                                    | 1.1 kB  00:00:00     
Metadata Cache Created

and, yum intall/update commands are all running fine.

The conclusion we reached is that while packages are installable just fine, yum makecache specifically fails on some older but still supported OSes and there doesn't seem to be a configuration option to make yum work without it. We're looking for solutions.

I got this from Red Hat support regarding the use of filelists.xml in the latest version of Satellite server (6.16):

Satellite, as it's designed today, would not be able to sync any repos missing filelists or other.xml files from their repodata. If you want to do it today, You will have to locally mirror that repo somewhere, if needed on /pub of satellite, generate a metadata of that local mirror and then sync it in satellite.

1 Like

@atorok
Same issue here. Please could you add this metadata back as it's needed by Satellite. Thanks

2 Likes

Rhel 9.5 is definately not 'older'. This issue has nothing to do with the OS, but is related to the product "RedHat Satellite" Red Hat Satellite .

1 Like

same issue here .. we also need a solution to get it work .. will open a support case.

2 Likes

You wrote:

it seems your test did't passed software deployment tools like redhat satellite?

solution is simple. Nightly crontab with
/bin/createrepo_c [patch to artifactory yum directory on disk that contains elastic-8x]

This generates the necessary XML files again.