Bug 2060651

Summary: Cannot upload a package to a repository if the same package already exists in another repository, but is not downloaded
Product: Red Hat Satellite Reporter: Joniel Pasqualetto <jpasqual>
Component: RepositoriesAssignee: Samir Jha <sajha>
Status: CLOSED ERRATA QA Contact: Cole Higgins <chiggins>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.10.2CC: ahumbe, apatel, casl, pmoravec, sajha
Target Milestone: 6.12.0Keywords: Regression, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-16 13:33:45 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 Joniel Pasqualetto 2022-03-03 22:35:22 UTC
Description of problem:

Trying to manually upload a package to a repository (using hammer or directly via API) will fail if the package being uploaded exists in any repository, but it's not downloaded yet.

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

How reproducible:


Steps to Reproduce:
1. Sync a repository with policy "on demand". For example EPEL
2. Create a custom repository (different than EPEL)
3. Manually download any package from EPEL and try to upload it to the custom repository:

~~~
# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/0/0ad-0.0.22-1.el7.x86_64.rpm
# hammer repository upload-content --id 88 --path /root/0ad-0.0.22-1.el7.x86_64.rpm
Could not upload the content:
  Task f97ecff1-9b11-4f76-97a1-0eeea168fc70: Katello::Errors::Pulp3Error: {'non_field_errors': [ErrorDetail(string='There is already a package with: arch=x86_64, checksum_type=sha256, epoch=0, name=0ad, pkgId=d7d709ff104a89b5f0de45688fdc31cef8d0ace274350b489151d035b977834c, release=1.el7, version=0.0.22.', code='invalid')]}
~~~

Actual results:
Upload fails.

Expected results:
Upload would work.

Additional info:

If the package exists and IS DOWNLOADED, the upload works just fine. It's enough to make a request to satellite so pulp will download it, and then try again:

~~~
# curl -o /dev/null -k https://satellite.example.com/pulp/content/DefaultOrganization/Library/custom/EPEL/epel7/Packages/0/0ad-0.0.22-1.el7.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3776k  100 3776k    0     0  5541k      0 --:--:-- --:--:-- --:--:-- 5537k
# hammer repository upload-content --id 88 --path /root/0ad-0.0.22-1.el7.x86_64.rpm
Successfully uploaded file '0ad-0.0.22-1.el7.x86_64.rpm'
~~~

Comment 1 Bryan Kearney 2022-03-22 20:05:08 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/34635 has been resolved.

Comment 4 Pavel Moravec 2022-09-23 20:34:43 UTC
*** Bug 2060328 has been marked as a duplicate of this bug. ***

Comment 8 errata-xmlrpc 2022-11-16 13:33:45 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 (Important: Satellite 6.12 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:8506