Bug 1269334

Summary: client requests katello-package-reload on every checkin, regardless of whether packages have changed.
Product: Red Hat Satellite Reporter: Paul Wayper <pwayper>
Component: katello-agentAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED CURRENTRELEASE QA Contact: Katello QA List <katello-qa-list>
Severity: high Docs Contact:
Priority: high    
Version: 6.1.0CC: bbuckingham, cduryee, jsherril, pwayper, xdmoon
Target Milestone: Unspecified   
Target Release: Unused   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-26 13:50:34 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:
Bug Depends On:    
Bug Blocks: 1115190    

Description Paul Wayper 2015-10-07 03:53:29 UTC
Description of problem:

When a client checks in with Katello, it issues a katello-package upload command with its package list.  This in turn causes Katello to regenerate its list of packages and errata that apply to that client.  If the client has not changed its package list since the last time it checked in, this wastes time and resources.

The client could keep its own snapshot of the packages installed on the system.  If the previous snapshot does not exist, or the current package list differs from that in the previous snapshot, then the client would send its package list and get Katello to update its package lists for that client.  Otherwise - in the majority of cases - the client does not request an update.

For bonus points, the client could simply tell Katello which packages had been added, removed and changed since last time and Katello would be able to then further minimise its effort.

Version-Release number of selected component (if applicable):

katello-2.2.0.15-1
katello-agent-2.2.5-1
qpid-cpp-client-0.30-9
python-gofer-2.6.2-2

How reproducible:

Always

Steps to Reproduce:
1. Register a client with the server
2. Run yum check-update
3. Observe the pulp task queue and see that it is processing the list of packages sent by the client.
4. Wait one minute.
5. Run yum check-update again.

Actual results:

6. The pulp task queue contains another task to process the list of package for the client.

Expected results:

6. If no change was made to the packages installed on the client, pulp should not do any work for it.

Comment 3 Justin Sherrill 2015-12-03 04:49:55 UTC
Hey Paul,

The suggestions you describe are actually exactly how it is intended to work.  I am not able to reproduce this myself either using:

katello-agent-2.2.5-1.el6_6sat.noarch
subscription-manager-1.14.10-1.el6.x86_64


Basically i monitor the apache logs and the foreman/production.log and never saw the package list being uploaded.

The only way to 'force this' is to rm /var/lib/rhsm/packages/packages.json and then run katello-package-upload.  Can you provide more details about your reproducer scenario? (package versions, etc..)

Thanks, 

Justin

Comment 4 Paul Wayper 2016-01-07 23:13:13 UTC
Hi Justin,

I can't remember which system I saw this behaviour on.  If more recent versions don't do this, though, then good.

Thanks,

Paul

Comment 5 Chris Duryee 2016-09-26 13:50:34 UTC
Closing based on #3 and #4, I have not seen this behavior either in recent versions. If this is still an issue in 6.2, feel free to re-open.