Problem: Tasks regarding orphan removal are failing. The oldest instance I see of this is from back when I was using Foreman 3.5 and Katello 4.7. Currently this is the error message I get:
("Cannot delete some instances of model 'Content' because they are referenced through protected foreign keys: 'Package.content_ptr'.", {<RepositoryContent: pk=ff32c510-ad1c-4288-918a-442fba668125>})
As mentioned in other posts, I do already have python39-pulp-deb-2.20.2-1.el8.noarch
and rubygem-pulp_deb_client-2.20.2-1.el8.noarch
installed
Expected outcome: successful removal of orphans
Foreman and Proxy versions: 3.7.0
Foreman and Proxy plugin versions:
Name | Description | Author | Version |
---|---|---|---|
foreman-tasks | The goal of this plugin is to unify the way of showing task statuses across the Foreman instance. It defines Task model for keeping the information about the tasks and Lock for assigning the tasks to resources. The locking allows dealing with preventing multiple colliding tasks to be run on the same resource. It also optionally provides Dynflow infrastructure for using it for managing the tasks. | Ivan Nečas | 8.1.1 |
foreman_ansible | Ansible integration with Foreman | Daniel Lobato Garcia | 12.0.4 |
foreman_remote_execution | A plugin bringing remote execution to the Foreman, completing the config management functionality with remote management functionality. | Foreman Remote Execution team | 10.0.1 |
katello | Katello adds Content and Subscription Management to Foreman. For this it relies on Candlepin and Pulp. | N/A | 4.9.0 |
Distribution and version: Rocky Linux 8.8
Other relevant data:
Installed Packages
ansible-collection-theforeman-foreman-3.12.0-1.el8.noarch
candlepin-4.3.1-1.el8.noarch
candlepin-selinux-4.3.1-1.el8.noarch
foreman-3.7.0-1.el8.noarch
foreman-cli-3.7.0-1.el8.noarch
foreman-debug-3.7.0-1.el8.noarch
foreman-dynflow-sidekiq-3.7.0-1.el8.noarch
foreman-installer-3.7.0-1.el8.noarch
foreman-installer-katello-3.7.0-1.el8.noarch
foreman-obsolete-packages-1.5-1.el8.noarch
foreman-postgresql-3.7.0-1.el8.noarch
foreman-proxy-3.7.0-1.el8.noarch
foreman-release-3.7.0-1.el8.noarch
foreman-selinux-3.7.0-1.el8.noarch
foreman-service-3.7.0-1.el8.noarch
foreman-vmware-3.7.0-1.el8.noarch
katello-4.9.0-1.el8.noarch
katello-certs-tools-2.9.0-2.el8.noarch
katello-client-bootstrap-1.7.9-2.el8.noarch
katello-common-4.9.0-1.el8.noarch
katello-debug-4.9.0-1.el8.noarch
katello-repos-4.9.0-1.el8.noarch
katello-selinux-5.0.2-1.el8.noarch
pulpcore-selinux-1.3.2-1.el8.x86_64
python39-pulp-ansible-0.16.0-1.el8.noarch
python39-pulp-certguard-1.5.6-1.el8.noarch
python39-pulp-cli-0.14.0-4.el8.noarch
python39-pulp-cli-deb-0.0.2-4.el8.noarch
python39-pulp-container-2.14.6-1.el8.noarch
python39-pulp-deb-2.20.2-1.el8.noarch
python39-pulp-file-1.12.0-1.el8.noarch
python39-pulp-python-3.8.0-1.el8.noarch
python39-pulp-rpm-3.19.7-1.el8.noarch
python39-pulpcore-3.22.7-1.el8.noarch
qpid-proton-c-0.37.0-1.el8.x86_64
rubygem-foreman-tasks-8.1.1-1.fm3_7.el8.noarch
rubygem-foreman_ansible-12.0.4-1.fm3_7.el8.noarch
rubygem-foreman_maintain-1.3.2-1.el8.noarch
rubygem-foreman_remote_execution-10.0.1-1.fm3_7.el8.noarch
rubygem-hammer_cli-3.7.0-1.el8.noarch
rubygem-hammer_cli_foreman-3.7.0-1.el8.noarch
rubygem-hammer_cli_foreman_remote_execution-0.2.3-1.fm3_7.el8.noarch
rubygem-hammer_cli_foreman_tasks-0.0.19-1.fm3_7.el8.noarch
rubygem-hammer_cli_katello-1.9.0-1.el8.noarch
rubygem-katello-4.9.0-1.el8.noarch
rubygem-pulp_ansible_client-0.16.1-1.el8.noarch
rubygem-pulp_certguard_client-1.6.5-1.el8.noarch
rubygem-pulp_container_client-2.14.5-1.el8.noarch
rubygem-pulp_deb_client-2.20.2-1.el8.noarch
rubygem-pulp_file_client-1.12.0-1.el8.noarch
rubygem-pulp_ostree_client-2.0.0-1.el8.noarch
rubygem-pulp_python_client-3.8.0-1.el8.noarch
rubygem-pulp_rpm_client-3.19.6-1.el8.noarch
rubygem-pulpcore_client-3.22.4-1.el8.noarch
rubygem-qpid_proton-0.37.0-1.el8.x86_64
rubygem-smart_proxy_pulp-3.2.0-3.fm3_3.el8.noarch
journalctl -u pulpcore-worker@*
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: pulp [b3a7bad0-751c-4973-8432-9a7eb92d6452]: pulpcore.tasking.pulpcore_worker:INFO: File "/usr/lib/python3.9/site-packages/pulpcore/tasking/pulpcore_worker.py", line 44>
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: result = func(*args, **kwargs)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulp_rpm/app/tasks/synchronizing.py", line 486, in synchronize
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: remote_url = fetch_remote_url(remote, url)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulp_rpm/app/tasks/synchronizing.py", line 305, in fetch_remote_url
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: remote_url = fetch_mirror(remote)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulp_rpm/app/tasks/synchronizing.py", line 254, in fetch_mirror
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: result = downloader.fetch()
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulpcore/download/base.py", line 186, in fetch
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: return done.pop().result()
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulpcore/download/http.py", line 273, in run
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: return await download_wrapper()
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/backoff/_async.py", line 151, in retry
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: ret = await target(*args, **kwargs)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulpcore/download/http.py", line 258, in download_wrapper
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: return await self._run(extra_data=extra_data)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulp_rpm/app/downloaders.py", line 117, in _run
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: self.raise_for_status(response)
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib/python3.9/site-packages/pulp_rpm/app/downloaders.py", line 102, in raise_for_status
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: response.raise_for_status()
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: File "/usr/lib64/python3.9/site-packages/aiohttp/client_reqrep.py", line 1005, in raise_for_status
Jul 19 00:00:24 foreman.example.com pulpcore-worker-2[152361]: raise ClientResponseError(
PULP_SETTINGS=/etc/pulp/settings.py pulpcore-manager showmigrations rpm
rpm
[X] 0001_initial
[X] 0002_updaterecord_reboot_suggested
[X] 0003_DATA_incorrect_json
[X] 0004_add_metadata_signing_service_fk
[X] 0005_optimize_sync
[X] 0006_opensuse_support
[X] 0007_checksum_types
[X] 0008_advisory_pkg_sumtype_as_int
[X] 0009_revision_null
[X] 0010_revision_null_redo
[X] 0011_rpmremote_sles_auth_token
[X] 0012_remove_pkg_group_env_cat_related_pkgs
[X] 0013_RAW_rpm_evr_extension
[X] 0014_rpmrepository_package_retention_policy
[X] 0015_repo_metadata
[X] 0016_dist_tree_nofk
[X] 0017_merge_advisory_collections
[X] 0018_updatecollection__update_record
[X] 0019_migrate_updatecollection_data
[X] 0020_remove_updatecollection_m2m
[X] 0021_rename_updatecollection_update_record
[X] 0022_add_collections_related_name
[X] 0023_increase_distribution_release_short
[X] 0024_change_subrepo_relation_properties
[X] 0025_remove_orphaned_subrepos
[X] 0026_add_gpgcheck_options
[X] 0027_checksum_null
[X] 0028_rpmrepository_last_sync_repomd_cheksum
[X] 0029_rpmpublication_sqlite_metadata
[X] 0030_DATA_fix_updaterecord
[X] 0031_modulemd_static_context
[X] 0032_ulnremote
[X] 0033_new_distribution_model
[X] 0034_auto_publish
[X] 0035_fix_auto_publish
[X] 0036_checksum_type
[X] 0037_DATA_remove_rpmrepository_sub_repo
[X] 0037_update_json_field
[X] 0038_fix_sync_optimization
[X] 0039_disttree_digest
[X] 0040_rpmalternatecontentsource
[X] 0041_modulemdobsolete
[X] 0042_alter_repometadatafile_data_type
[X] 0043_textfield_conversion
[X] 0044_noartifact_modules
[X] 0045_modulemd_fields
[X] 0046_rbac_perms
[X] 0047_modulemd_datefield
[X] 0048_artifacts_dependencies_fix
[X] 0049_profiles_fix
Task Output:
{"pulp_tasks"=>
[{"pulp_href"=>"/pulp/api/v3/tasks/2996831a-d553-4195-982a-12938f7ee779/",
"pulp_created"=>"2023-07-31T13:10:02.449+00:00",
"state"=>"failed",
"name"=>"pulpcore.app.tasks.orphan.orphan_cleanup",
"logging_cid"=>"5b70908fc43f4d14942561f8319dcc49",
"started_at"=>"2023-07-31T13:10:02.642+00:00",
"finished_at"=>"2023-07-31T13:10:07.675+00:00",
"error"=>
{"traceback"=>
" File \"/usr/lib/python3.9/site-packages/pulpcore/tasking/pulpcore_worker.py\", line 444, in _perform_task\n" +
" result = func(*args, **kwargs)\n" +
" File \"/usr/lib/python3.9/site-packages/pulpcore/app/tasks/orphan.py\", line 66, in orphan_cleanup\n" +
" c.delete()\n" +
" File \"/usr/lib/python3.9/site-packages/django/db/models/query.py\", line 745, in delete\n" +
" collector.collect(del_query)\n" +
" File \"/usr/lib/python3.9/site-packages/django/db/models/deletion.py\", line 302, in collect\n" +
" raise ProtectedError(\n",
"description"=>
"(\"Cannot delete some instances of model 'Content' because they are referenced through protected foreign keys: 'Package.content_ptr'.\", {<RepositoryContent: pk=ff32c510-ad1c-4288-918a-442fba668125>})"},
"worker"=>"/pulp/api/v3/workers/92aeba58-871a-40e8-aac1-042e4a0887c6/",
"child_tasks"=>[],
"progress_reports"=>
[{"message"=>"Clean up orphan Content",
"code"=>"clean-up.content",
"state"=>"running",
"total"=>19089,
"done"=>2000}],
"created_resources"=>[],
"reserved_resources_record"=>["/pulp/api/v3/orphans/cleanup/"]}],
"task_groups"=>[],
"poll_attempts"=>{"total"=>21, "failed"=>1}}