Bug 2077850 - Puppet purge fails on an upgraded Satellite
Summary: Puppet purge fails on an upgraded Satellite
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Puppet
Version: 6.11.0
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: 6.11.0
Assignee: satellite6-bugs
QA Contact: Vladimír Sedmík
URL:
Whiteboard:
Depends On:
Blocks: 1809769
TreeView+ depends on / blocked
 
Reported: 2022-04-22 12:38 UTC by Vladimír Sedmík
Modified: 2022-07-05 14:35 UTC (History)
3 users (show)

Fixed In Version: rubygem-foreman_puppet-2.0.6
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-07-05 14:35:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github theforeman foreman_puppet issues 270 0 None open Plugin uninstall fails on Host having an Environment set 2022-04-25 13:35:01 UTC
Red Hat Product Errata RHSA-2022:5498 0 None None None 2022-07-05 14:35:34 UTC

Description Vladimír Sedmík 2022-04-22 12:38:57 UTC
Description of problem:
Puppet purge fails on an upgraded setup (while on fresh setup it works well).


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


How reproducible:
always


Steps to Reproduce:
1. Have a 6.10 Satellite with registered external Capsule.
2. Upgrade the Satellite to 6.11
3. Upgrade the Capsule to 6.11
4. Disable puppet on Capsule - it succeeds.
5. Try to disable puppet on Satellite - it fails.


Actual results:
[root@satellite ~]# foreman-maintain plugin purge-puppet
Running Remove Puppet feature
================================================================================
Check for Puppet capsules from the database:                          [OK]
--------------------------------------------------------------------------------
Remove Puppet feature:                                                [FAIL]
Failed executing foreman-rake db:migrate VERSION=0 SCOPE=foreman_puppet, exit status 1:
 'ErbParser' is ignored.
'RubyParser' is ignored.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::DependentObjectsStillExist: ERROR:  cannot drop table environments because other objects depend on it
DETAIL:  constraint hostgroups_environment_id_fk on table hostgroups depends on table environments
constraint hosts_environment_id_fk on table hosts depends on table environments
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
/opt/theforeman/tfm/root/usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `async_exec'
/opt/theforeman/tfm/root/usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `block (2 levels) in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
...


Expected results:
No errors and successful purge.

Comment 2 Ondřej Ezr 2022-04-25 13:37:52 UTC
In the upstream investigation, we found out that the down migration repopulates the core data structures with data (specifically we repopulate Host table with environment_id) and thus the migration fails to drop Puppet owned tables.

Bit more detail is in a https://github.com/theforeman/foreman_puppet/pull/271 and discussion there. Also the PR would fix the issue, we are just thinking if it is the best way.

Comment 3 Ondřej Ezr 2022-04-27 15:10:16 UTC
This is merged upstream, but not yet released

Comment 10 errata-xmlrpc 2022-07-05 14:35:13 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 (Moderate: Satellite 6.11 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-2022:5498


Note You need to log in before you can comment on or make changes to this bug.