Bug 1545364

Summary: Cloned Satellite improperly handles Pulp event_notifier URL and db entries
Product: Red Hat Satellite Reporter: Mike McCune <mmccune>
Component: Satellite CloneAssignee: John Mitsch <jomitsch>
Status: CLOSED ERRATA QA Contact: Peter Ondrejka <pondrejk>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.3.0CC: bkearney, dgross, egolov, fgarciad, lhellebr
Target Milestone: 6.5.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tfm-rubygem-katello-3.7.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-14 12:36:57 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 Mike McCune 2018-02-14 18:08:46 UTC
Summary 2: Cloned Satellites will still make API callbacks into the Source Satellite via the sync_complete API. This causes task errors due to lock contention and should be prevented at all costs.

** First Issue: When cloning a Satellite there is a configuration in  /etc/foreman/plugins/katello.yaml that points to a URL end point:

   :post_sync_url: https://clone.example.com/katello/api/v2/repositories/sync_complete?token=wI7kAQtK87EBdlLbdVp1R1GLpWpsbiHj

this gets properly updated during the clone process. 

The issue is that this change is never properly updated at the Mongo/Pulp level and the old hostname will persist in the event_notifier database entry, note the URL is not that of the new cloned Satellite:

#  echo "db.event_listeners.find()" | mongo pulp_database

{ "_id" : ObjectId("20B3G0ppQ49r9xR00a"), "notifier_config" : { "url" : "https://production-satellite.example.com/katello/api/v2/repositories/sync_complete?token=R27Jp95A1drsJ7oER27Jp95A1drsJ7oE" }, "_ns" : "event_listeners", "event_types" : [ "repo.sync.finish" ], "id" : "3HkpvGemRtq2ISm83411", "notifier_type_id" : "http" }

** Second Issue: The cloned Satellite will often have 2 event_listener rows in the database. This causes *multiple* API calls to be made to either the production source Satellite or if the hostname was correct, the clone itself. 

This can be found by running:

# echo "db.event_listeners.find().count()" | mongo pulp_database
MongoDB shell version: 2.6.11
connecting to: pulp_database
2

If the count is > 1, we have an error condition where there are too many event_listeners

Comment 1 Mike McCune 2018-02-14 18:17:04 UTC
NOTE: The second issue is fixed in Satellite Clone 1.2 which is being released soon. First issue remains.

Comment 3 Stephen Benjamin 2018-02-21 16:28:23 UTC
Created redmine issue http://projects.theforeman.org/issues/22647 from this bug

Comment 4 Satellite Program 2018-03-16 14:12:10 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/22647 has been resolved.

Comment 9 errata-xmlrpc 2019-05-14 12:36:57 UTC
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:1222