Description of problem: Removing the latest content view version doesn't delete the Katello::DockerMetaTag records. This will cause duplicated/orphaned Katello::DockerMetaTag records after publishing a new version. If a tag has both schema v1 manifest and schema v2 manifest then the CV or CCV will fail to publish with the following error: ------------------------------------- ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_katello_docker_meta_tags_on_schema1_id_and_schema2_id" DETAIL: Key (schema1_id, schema2_id)=(340545, 340570) already exists. : INSERT INTO "katello_docker_meta_tags" ("schema1_id", "schema2_id", "name") VALUES ($1, $2, $3) RETURNING "id" Steps to Reproduce: 1. Create a CCV and add a CV that contains a docker repo. 2. Publish the CCV which will create version 1. 3. Run the following commands to get all orphaned Katello::DockerMetaTag records. foreman-rake console Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size exit 4. It should return 0 records. 5. Remove the CCV version 1 and wait until the task is finished. 6. Repeat step 3, and you will see some orphaned Katello::DockerMetaTag records. Additional info: To fix the "ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint" error, we can run the following commands to remove the orphaned Katello::DockerMetaTag records NOTE: For security, please make a snapshot of the Satellite before proceeding. foreman-rake console Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).delete_all exit
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/30322 has been resolved.
Satellite 6.8.1 is due out soon and we are offering a hotfix that is applicable to Satellite 6.8.1. *** Satellite 6.8.1 Hotfix Available *** 1) Download tfm-rubygem-katello-3.16.0.13-2.HOTFIXRHBZ1854026.el7sat.noarch.rpm from this bugzilla to your Satellite 2) stop services: satellite-maintain service stop 3) Install: rpm -Uvh tfm-rubygem-katello-3.16.0.13-2.HOTFIXRHBZ1854026.el7sat.noarch.rpm 4) restart: satellite-maintain service start 5) resume operations
Created attachment 1729216 [details] tfm-rubygem-katello-3.16.0.13-2.HOTFIXRHBZ1854026.el7sat.noarch.rpm
Steps to retest: 1. Create a CCV and add a CV that contains a docker repo. 2. Publish the CCV which will create version 1. 3. Run the following commands to get all orphaned Katello::DockerMetaTag records. foreman-rake console Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size exit 4. Verify that the record returns 0 5. Remove the CCV version 1 and wait until the task is finished. 6. Repeat step 3 7. Verify that the record returns 0 Expected: 4 & 7) # foreman-rake console Loading production environment (Rails 6.0.3.4) irb(main):001:0> Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size => 0 # foreman-rake console irb(main):002:0> Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size => 0 Actual: 4 & 7) # foreman-rake console Loading production environment (Rails 6.0.3.4) irb(main):001:0> Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size => 0 # foreman-rake console irb(main):002:0> Katello::DockerMetaTag.where("id not in (?)", Katello::RepositoryDockerMetaTag.pluck(:docker_meta_tag_id)).size => 0 Verified on 6.9.0_07 with tfm-rubygem-katello-3.18.0-1.el7sat.noarch
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.9 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-2021:1313