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:
Have a RHEL 8.1 client registered to Satellite 6.6, go to Hosts => Content Hosts => select RHEL 8.1 client => tab Packages, choose Applicable and click on "Update All Packages"
First run: 7 packages out of 25 got updated, foreman task Actions::Katello::Host::Package::Update finished successfully.
Package profile for the client didn't get updated, still see 25 Applicable packages, yum check-update is showing 18 available updates.
Second run: Clicked on "Update All Packages", foreman task Actions::Katello::Host::Package::Update finished successfully again, very quickly, looks like nothing was updated on the client at all. yum check-update returns again 18 available updates.
Checking which message is sent to katello-agent:
while true; do cp /var/lib/gofer/messaging/pending/katello/* tmp; sleep 0.0001; done
And then click on Update All Packages, got following file, during second run:
# cat 1576069770-369455-0000.json | json_reformat
{
"data": {
"consumer_id": "a16dae10-1a86-4feb-95b6-762915d199cb",
"task_id": "7dea4867-54db-4005-8064-3ddfda435680"
},
"pam": null,
"replyto": "pulp.task",
"request": {
"args": [
[
{
"type_id": "rpm",
"unit_key": {
}
}
],
{
"all": true,
"importkeys": true
}
],
"classname": "Content",
"cntr": [
[
],
{
}
],
"kws": {
},
"method": "update"
},
"routing": [
null,
"pulp.agent.a16dae10-1a86-4feb-95b6-762915d199cb"
],
"secret": "5df0cca51ca0521f66db0567",
"sn": "2e5026a8-e8a4-4a78-b812-ebf79c07f5f8",
"version": "2.0"
}
Version-Release number of selected component (if applicable):
# rpm -qa | egrep "katello-agent|dnf"
dnf-data-4.2.7-6.el8.noarch
dnf-plugin-subscription-manager-1.25.17-1.el8.x86_64
python3-libdnf-0.35.1-8.el8.x86_64
python3-dnf-4.2.7-6.el8.noarch
python3-dnf-plugins-core-4.0.8-3.el8.noarch
dnf-plugins-core-4.0.8-3.el8.noarch
libdnf-0.35.1-8.el8.x86_64
dnf-4.2.7-6.el8.noarch
katello-agent-3.5.1-2.el8sat.noarch
How reproducible: 100 %
Steps to Reproduce:
1. Provisioned RHEL 8.1 trough Satellite 6.6
2. Clock on Update All Packages, task finished successfully, however only 7 packages out of 25 got updated and package profile for the client did not get updated on Satellite side, task Actions::Katello::Host::UploadProfiles finished sucessfully
3.
Actual results:
First run of Update All Packages on RHEL 8.1 client updated only 7 packages out of 25, package profile on Satellite didn't get updated. Second run of Update All Packages didn't update any package.
Expected results:
"Update All Packages" updates all packages on RHEL 8.1 :)
I think https://bugzilla.redhat.com/show_bug.cgi?id=1713417 fixed just "errata install" scenario but the bugfix should be extended to cover this call flow as well.
Checking codefix of bz1713417 : https://github.com/Katello/katello-host-tools/pull/98/files makes a different condition to call
lib.upgrade(patterns)
But in case of "Update All Packages", both patterns and advisories are empty lists. Removing the "if patterns:" condition and letting lib.upgrade(patterns) to be executed every time, packages are updated.
But I am not 100% sure if this cant break something - what is the expected behaviour of the "update" method called on empty lists?
- to update nothing? (then katello should enumerate all packages to update in the RMI request / enumerate the unit_keys)
- or update everything? (then my patch proposal is sane)
Requesting review of the author of the original patch.
Tested on Satellite 6.8 Snap 8 using the reproducer from the initial report. Registered a RHEL 8.1 content host and executed "Update All Packages" on the "Packages->Applicable" page. All packages were successfully updated. The "Actions::Katello::Host::UploadProfiles" task was performed successfully, no more packages to update were listed.
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 (Important: Satellite 6.8 release), 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-2020:4366
Description of problem: Have a RHEL 8.1 client registered to Satellite 6.6, go to Hosts => Content Hosts => select RHEL 8.1 client => tab Packages, choose Applicable and click on "Update All Packages" First run: 7 packages out of 25 got updated, foreman task Actions::Katello::Host::Package::Update finished successfully. Package profile for the client didn't get updated, still see 25 Applicable packages, yum check-update is showing 18 available updates. Second run: Clicked on "Update All Packages", foreman task Actions::Katello::Host::Package::Update finished successfully again, very quickly, looks like nothing was updated on the client at all. yum check-update returns again 18 available updates. Checking which message is sent to katello-agent: while true; do cp /var/lib/gofer/messaging/pending/katello/* tmp; sleep 0.0001; done And then click on Update All Packages, got following file, during second run: # cat 1576069770-369455-0000.json | json_reformat { "data": { "consumer_id": "a16dae10-1a86-4feb-95b6-762915d199cb", "task_id": "7dea4867-54db-4005-8064-3ddfda435680" }, "pam": null, "replyto": "pulp.task", "request": { "args": [ [ { "type_id": "rpm", "unit_key": { } } ], { "all": true, "importkeys": true } ], "classname": "Content", "cntr": [ [ ], { } ], "kws": { }, "method": "update" }, "routing": [ null, "pulp.agent.a16dae10-1a86-4feb-95b6-762915d199cb" ], "secret": "5df0cca51ca0521f66db0567", "sn": "2e5026a8-e8a4-4a78-b812-ebf79c07f5f8", "version": "2.0" } Version-Release number of selected component (if applicable): # rpm -qa | egrep "katello-agent|dnf" dnf-data-4.2.7-6.el8.noarch dnf-plugin-subscription-manager-1.25.17-1.el8.x86_64 python3-libdnf-0.35.1-8.el8.x86_64 python3-dnf-4.2.7-6.el8.noarch python3-dnf-plugins-core-4.0.8-3.el8.noarch dnf-plugins-core-4.0.8-3.el8.noarch libdnf-0.35.1-8.el8.x86_64 dnf-4.2.7-6.el8.noarch katello-agent-3.5.1-2.el8sat.noarch How reproducible: 100 % Steps to Reproduce: 1. Provisioned RHEL 8.1 trough Satellite 6.6 2. Clock on Update All Packages, task finished successfully, however only 7 packages out of 25 got updated and package profile for the client did not get updated on Satellite side, task Actions::Katello::Host::UploadProfiles finished sucessfully 3. Actual results: First run of Update All Packages on RHEL 8.1 client updated only 7 packages out of 25, package profile on Satellite didn't get updated. Second run of Update All Packages didn't update any package. Expected results: "Update All Packages" updates all packages on RHEL 8.1 :)