Bug 1829866

Summary: Unable to update all packages for RHEL 8 clients via katello-agent
Product: Red Hat Satellite Reporter: Hao Chang Yu <hyu>
Component: katello-agentAssignee: Jonathon Turel <jturel>
Status: CLOSED DUPLICATE QA Contact: vijsingh
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.7.0CC: jturel
Target Milestone: UnspecifiedKeywords: Patch, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-14 20:49:06 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:

Description Hao Chang Yu 2020-04-30 13:53:19 UTC
Description of problem:
Getting the following error when trying to upgrade all packages(dnf upgrade) for a RHEL 8 client using katello-agent:

2020-04-30T13:20:14Z DDEBUG timer: sack setup: 2314 ms
2020-04-30T13:20:14Z DEBUG Completion plugin: Generating completion cache...
2020-04-30T13:20:14Z DEBUG Completion plugin: Generating completion cache...
2020-04-30T13:20:14Z DDEBUG Getting group metadata
2020-04-30T13:20:14Z DDEBUG Adding group file from repository: rhel-8-for-x86_64-appstream-rpms
2020-04-30T13:20:14Z DDEBUG Adding group file from repository: rhel-8-for-x86_64-baseos-rpms
2020-04-30T13:20:15Z DDEBUG Adding group file from repository: satellite-tools-6.6-for-rhel-8-x86_64-rpms
2020-04-30T13:20:15Z DDEBUG timer: loading comps: 72 ms
2020-04-30T13:20:15Z DEBUG Completion plugin: Generating completion cache...
2020-04-30T13:20:15Z CRITICAL Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dnf/plugin.py", line 104, in _caller
    getattr(plugin, method)()
  File "/usr/lib/python3.6/site-packages/dnf-plugins/product-id.py", line 59, in transaction
    if len(self.base.transaction) == 0:
TypeError: object of type 'NoneType' has no len()


Seems like there is no transaction ran when calling update without patterns:

In "/usr/lib/python3.6/site-packages/katello/agent/pulp/libdnf.py"

    def update(self, patterns=(), advisories=()):
            <snip>
            if patterns:   <================ This condition is skipping the upgrade when no patterns are provided.
                lib.upgrade(patterns)

            if self.commit:
                lib.do_transaction()


I think it is the regression of the following fix:

https://bugzilla.redhat.com/show_bug.cgi?id=1713417
https://github.com/Katello/katello-host-tools/pull/98


Steps to Reproduce:
1. Go to Web UI -> Hosts -> Content Hosts -> choose a RHEL 8 client -> Packages -> Applicable -> Click "Update All Packages"
2. ssh to the RHEL 8 client, run "tail -f /var/log/dnf.log" to observe the error.


Actual results:
No packages are updated

Expected results:
All packages are updated

Comment 4 Jonathon Turel 2020-05-14 20:49:06 UTC
Closing as a duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=1782352

*** This bug has been marked as a duplicate of bug 1782352 ***