Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
When updating the CDN url, Satellite will trigger a foreman task to update the feed url of all the Red Hat repositories to reflect the new base url. If any of the Red Hat repositories is used by any content view, Satellite will update its feed url X(number of CVs used it) + 1 times. Thus, break the feed url. The path of the feed url will be replaced with an empty string.
For example, If I change my CDN repo to "http://satellite.example.com/pub/exports"
Before updating:
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os
After updating, the feed url will become:
http://satellite.example.com/pub/exports
In '/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.10.0.48/app/lib/actions/katello/provider/update.rb'
def update_repository_urls(product, current_base_url, new_base_url)
product.repositories.each do |repository| <=============== "product.repositories" will include "library_instance_id != nil" repos.
next unless repository.url
path = repository.url.split(current_base_url)[1] <========== Path will be ""(empty string) when updating the 2nd times.
url = "#{new_base_url}#{path}"
plan_action(::Actions::Katello::Repository::Update, repository.root, :url => url) <===== Root repository will be updated multiple times
end
end
Due to this issue, it also caused many duplicate RegenerateMetadata for the same repositories. This may cause serious performance impact for large environment.
Version-Release number of selected component (if applicable):
6.5
Steps to Reproduce:
1. Enable any Red Hat Repository
2. Create a CV and add that repository to the CV, publish and promote the CV.
3. Change the CDN url and wait for the task to finish.
4. Check the feed url of the repository in the web ui.
Created attachment 1623131[details]
hotfix tfm-rubygem-katello RPM
A hotfix RPM has been built for this bug. The installation instructions:
1. Download the hotfix RPM from this bug and copy it to satellite server
2. # yum localinstall /path/to/hotfix/RPM
3. # systemctl restart httpd
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHSA-2019:3172
Note that this patch alone won't automatically resolve any previously broken URLs, since the patch fixes a bug with the task that updates the repository URLs when the CDN URL is changed. To fully resolve this issue, affected customers must:
1. Install HF or upgrade to Satellite 6.6
2. Re-trigger the task that updates repo URLs, by changing the CDN URL to something else then changing it back to the desired setting (e.g. https://cdn.redhat.com for Satellites that pull content from the Red Hat CDN)
Additional note for customers who install the Hotfix: restarting httpd alone is insufficient and dynflowd needs to be restarted as well.
UPDATED HF installation instructions:
1. Download the hotfix RPM from this bug and copy it to satellite server
2. # yum localinstall /path/to/hotfix/RPM
3. # systemctl restart httpd dynflowd