Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-06-25T13:46:59ZPulp
Planio RPM Support - Test #8972 (CLOSED - COMPLETE): Add test for properly reading and writing the metadatahttps://pulp.plan.io/issues/89722021-06-25T13:46:59Zdalleydalley@redhat.com
<p>Verify that package metadata in == package metadata out</p> RPM Support - Test #8301 (CLOSED - COMPLETE): Pulp to Pulp sync test uses sha1 checksum, fails on...https://pulp.plan.io/issues/83012021-02-23T23:44:11Zdalleydalley@redhat.com
<p>I tried to run the tests and got some failures due to SHA1 checksums</p>
<p><a href="https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/tests/functional/api/test_pulp_to_pulp.py#L91" class="external">https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/tests/functional/api/test_pulp_to_pulp.py#L91</a></p>
<p>E HTTP response body: {"non_field_errors":["Checksum must be one of allowed types: ['sha224', 'sha256', 'sha384', 'sha512'].\nYou can adjust these with the 'ALLOWED_CONTENT_CHECKSUMS' setting."]}</p> File Support - Test #5467 (CLOSED - DUPLICATE): Test - sync does not report non-fatal errors prop...https://pulp.plan.io/issues/54672019-09-17T19:41:05Zkersom
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_file/620":<a href="https://github.com/pulp/pulp_file/issues/620" class="external">https://github.com/pulp/pulp_file/issues/620</a></p>
<hr>
<p>If you sync a file repository where one of the files is missing, it seems that the repository syncs as much as it can (as expected), but its reported as a fatal error, with a state of 'failed'.</p>
<p>Steps to reproduce:</p>
<p>1) create a file repository where one of the files is missing<br>
2) create a file remote and repository and sync them</p>
<p>Actual task status (apologies its been yaml-fied):</p>
<pre><code>- _href: "/pulp/api/v3/tasks/b6f9b619-c174-4e43-b546-0bbefdfb11e7/"
_created: '2019-08-15T15:21:37.058+00:00'
state: failed
name: pulp_file.app.tasks.synchronizing.synchronize
started_at: '2019-08-15T15:21:37.177+00:00'
finished_at: '2019-08-15T15:21:37.382+00:00'
non_fatal_errors: "[]"
error:
code: ''
description: 404, message='Not Found'
traceback: |2
File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in perform_job
rv = job.perform()
File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in perform
self._result = self._execute()
File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute
return self.func(*self.args, **self.kwargs)
File "/usr/local/lib/pulp/src/pulp-file/pulp_file/app/tasks/synchronizing.py", line 45, in synchronize
dv.create()
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/declarative_version.py", line 169, in create
loop.run_until_complete(pipeline)
File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete
return future.result()
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py", line 209, in create_pipeline
await asyncio.gather(*futures)
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py", line 43, in __call__
await self.run()
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/artifact_stages.py", line 132, in run
pb.done += task.result() # download_count
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/artifact_stages.py", line 155, in _handle_content_unit
await asyncio.gather(*downloaders_for_content)
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/models.py", line 78, in download
download_result = await downloader.run(extra_data=self.extra_data)
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/base.py", line 212, in run
return await self._run(extra_data=extra_data)
File "/usr/local/lib/pulp/lib64/python3.6/site-packages/backoff/_async.py", line 131, in retry
ret = await target(*args, **kwargs)
File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/http.py", line 183, in _run
response.raise_for_status()
File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client_reqrep.py", line 942, in raise_for_status
headers=self.headers)
worker: "/pulp/api/v3/workers/df7e0085-b0dd-4073-b74d-9ab78ad27a03/"
spawned_tasks: []
progress_reports:
- message: Downloading Metadata
state: completed
total: 1
done: 1
- message: Parsing Metadata Lines
state: completed
total: 2
done: 2
- message: Downloading Artifacts
state: failed
done: 0
- message: Associating Content
state: canceled
done: 0
created_resources: []
reserved_resources_record: []
create_version: true
poll_attempts:
total: 1
failed: 1
</code></pre>
<p>I'd expect this error to be in the 'non-fatal' errors attribute, and the state to not be 'failed'</p> Ansible Plugin - Test #5333 (CLOSED - COMPLETE): As a user, I can sync collections from another P...https://pulp.plan.io/issues/53332019-08-22T17:28:11Zdaviddavis
<p>In lieu of setting up two Pulp servers, I would just use two repositories.</p>
<p>Test steps:</p>
<p>1. Create a collections repo, remote, sync and publish<br>
2. Create a second repository and a remote which points to the distribution in step 1<br>
3. Sync the second repo and confirm it has the same contents as the first.</p> RPM Support - Test #5320 (CLOSED - WONTFIX): Module Streams not copying correctly with recursive ...https://pulp.plan.io/issues/53202019-08-21T12:47:54Zbherring
<ol>
<li>
<p>Create and sync the following yum repo (Source) -> <a href="https://partha.fedorapeople.org/test-repos/pteradactyl/" class="external">https://partha.fedorapeople.org/test-repos/pteradactyl/</a></p>
</li>
<li>
<p>Create another repo Dest which will serve as the destination repo</p>
</li>
<li>
<p>Go to mongo and pick up a uuid for the pteradactly:2 module stream. This stream will be copied from source to dest .</p>
</li>
<li>
<p>run the following command</p>
<pre><code>https://<fqdn>/pulp/api/v2/repositories/Dest/actions/associate/: {"source_repo_id":"Source","criteria":{"type_ids":["modulemd"],"filters":{"association":{"unit_id":{"$in":[<$MODULE UUID>]}}}},"override_config":{"recursive":true}}: {"content_type"=>"application/json", "accept"=>"application/json"}
</code></pre>
</li>
<li>
<p>pulp-admin rpm repo list. Check for the number of module mds copied over by the above call.</p>
</li>
<li>
<p>notice that with recursive set to true all the pteradactyl module streams gets copied over, instead of just pteradactly:2 and packages belonging to that</p>
</li>
<li>
<p>Behavior is similar for recursive conservative</p>
</li>
</ol> Container Support - Test #5267 (CLOSED - WONTFIX): Test - As a user I can filter Manifests and Ma...https://pulp.plan.io/issues/52672019-08-13T18:36:40Zkersom
<p>ManifestTags will need a custom filter to allow the query through tagged_manifest.media_type.</p> Container Support - Test #5260 (CLOSED - WONTFIX): Test - As a user, I can filter Manifests and M...https://pulp.plan.io/issues/52602019-08-13T17:35:25Zkersom
<p>For example, I would like to retrieve all v1 and v2 manifests without any manifest lists.</p> Pulp - Test #5242 (CLOSED - COMPLETE): Test copy using "additional_repos" to provide multiple sou...https://pulp.plan.io/issues/52422019-08-09T09:20:25Zdalleydalley@redhat.com
<p>See: <a href="https://pulp.plan.io/issues/5067" class="external">https://pulp.plan.io/issues/5067</a></p> File Support - Test #5036 (CLOSED - DUPLICATE): Test that syncing protected content workshttps://pulp.plan.io/issues/50362019-06-25T22:15:41Zdkliban@redhat.com
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_file/614":<a href="https://github.com/pulp/pulp_file/issues/614" class="external">https://github.com/pulp/pulp_file/issues/614</a></p>
<hr>
<p>File Remote supports syncing from protected repositories. Users must provide an 'ssl_client_key' and 'ssl_client_certificate' when creating a File Remote[0].</p>
<p>The following should cover this use case.</p>
<p>1) Create repository<br>
2) Create a repository version with some content<br>
3) Create a publication<br>
4) Create a content guard<br>
5) Create distribution that is associated with the publication and the content guard.<br>
6) Create another repository<br>
7) Create a remote that has a URL pointing at the Distribution from step 5 and uses the client certificate for the content guard<br>
8) Create a repository version for the second repository by syncing from the remote<br>
9) Assert that the sync is successful<br>
10) Update the remote with a different client certificate<br>
11) Sync from the remote again<br>
12) Assert a failure occurs.</p>
<p>[0] <a href="https://docs.pulpproject.org/en/3.0/nightly/restapi.html#operation/remotes_file_file_create" class="external">https://docs.pulpproject.org/en/3.0/nightly/restapi.html#operation/remotes_file_file_create</a></p> Pulp - Test #4359 (CLOSED - COMPLETE): 2.18.1 Testinghttps://pulp.plan.io/issues/43592019-01-29T16:02:43Zbherring
<a name="Notes"></a>
<h2 >Notes<a href="#Notes" class="wiki-anchor">¶</a></h2>
<p>Testing Coverage for 2.18.1 will consist of the following</p>
<ul>
<li>Migration/Upgrade Testing
<ul>
<li>2.17.0 --> 2.18.1
<ul>
<li>FIPS</li>
<li>Non-FIPS</li>
</ul>
</li>
</ul>
</li>
<li>2.18.1 Functional Testing Suite
<ul>
<li>FIPS</li>
<li>Non-FIPS</li>
</ul>
</li>
</ul> Pulp - Test #4357 (CLOSED - COMPLETE): Pulp 2.19 master pulled epel django instead of pulp 2 djangohttps://pulp.plan.io/issues/43572019-01-29T12:41:38Zbherring
<a name="Problem"></a>
<h2 >Problem<a href="#Problem" class="wiki-anchor">¶</a></h2>
<p>When running nightly rhel76-fips testing, there were 500 errors [0] on jenkins tests since 1/23 and issues in journalctl with django [1].</p>
<p>After talking with asmacdo and daviddavis, it appears this may be a django being pulled from EPEL and not from our Pulp 2 repos on build [2][3]</p>
<a name="Testing"></a>
<h2 >Testing<a href="#Testing" class="wiki-anchor">¶</a></h2>
<p>It was determined this was the result of EPEL django precedence over the pulp.repo version that was built. This issue has been seen before.</p>
<p>Forced installation of the <strong>python2-django-1.11.17-1</strong> from the fedorapeople repo [3] and restart of services (or with a hammer of <strong>shutdown now -r</strong>) resulted in a functioning pulp install.</p>
<pre><code>[root@rhel76-fips ~]# journalctl -f
-- Logs begin at Mon 2019-01-28 12:33:13 EST. --
Jan 28 12:34:38 rhel76-fips pulp[5046]: kombu.transport.qpid:INFO: Connected to qpid with SASL mechanism ANONYMOUS
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) Internal Server Error: /pulp/api/v2/status/
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) Traceback (most recent call last):
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 131, in get_response
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) response = middleware_method(request, response)
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/middleware/http.py", line 23, in process_response
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) set_response_etag(response)
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/utils/cache.py", line 109, in set_response_etag
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) response['ETag'] = quote_etag(hashlib.md5(response.content).hexdigest())
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) ValueError: error:060800A3:digital envelope routines:EVP_DigestInit_ex:disabled for fips
</code></pre>
<a name="Actions"></a>
<h2 >Actions<a href="#Actions" class="wiki-anchor">¶</a></h2>
<p>Pulp-dev determined this issue as a low priority issue where documentation exercise may happen as a result of this issue.</p>
<p>For QE, this is a critical breakage of CI as the ansible install fails on FIPS installation and puts the box into a non-testable state. QE will be opening a related Urgent test tracker to fix the issue in the pulp-ci installer to fix mission critical work.</p>
<a name="References"></a>
<h2 >References<a href="#References" class="wiki-anchor">¶</a></h2>
<p>[0] - <a href="https://paste.fedoraproject.org/paste/bPRtYPa4ZCLShrZ7VUMqMQ" class="external">https://paste.fedoraproject.org/paste/bPRtYPa4ZCLShrZ7VUMqMQ</a><br>
[1] - <a href="https://pulp-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/Pulp%202%20-%20Master/job/pulp-2-master-dev-rhel7-fips/228/" class="external">https://pulp-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/Pulp%202%20-%20Master/job/pulp-2-master-dev-rhel7-fips/228/</a><br>
[2] - <a href="https://paste.fedoraproject.org/paste/6eHTS1Uc3NkC0hohvKe-TA" class="external">https://paste.fedoraproject.org/paste/6eHTS1Uc3NkC0hohvKe-TA</a> [from the affected 2.19a1-nightly box under test<br>
[3] - 2.11.17-1 <a href="https://repos.fedorapeople.org/repos/pulp/pulp/v2/testing/automation/2.19/stage/7Server/x86_64/" class="external">https://repos.fedorapeople.org/repos/pulp/pulp/v2/testing/automation/2.19/stage/7Server/x86_64/</a><br>
[4] - <a href="https://wiki.centos.org/PackageManagement/Yum/Priorities" class="external">https://wiki.centos.org/PackageManagement/Yum/Priorities</a></p> RPM Support - Test #4351 (CLOSED - COMPLETE): modules.yaml reference in repomd.xml does not use s...https://pulp.plan.io/issues/43512019-01-24T14:13:07Zbherring
<p>A report from upstream katello (<a href="https://projects.theforeman.org/issues/25529" class="external">https://projects.theforeman.org/issues/25529</a>) indicates that pulp generates a repomd.xml file that claims to use the checksum type that has been set on the publisher, but in fact is not using that:</p>
<p>In this example it purports to have used a sha1 checksum, but in fact its actually a sha256 checksum:</p>
<pre><code> <data type="modules">
<location href="repodata/824ffe238f202a0612ecbb2b0c0459dc289a7ef47adb1f26406453d41f476449-modules.yaml.gz"/>
<timestamp>1542811864</timestamp>
<size>33</size>
<checksum type="sha1">824ffe238f202a0612ecbb2b0c0459dc289a7ef47adb1f26406453d41f476449</checksum>
<open-size>0</open-size>
<open-checksum type="sha1">da39a3ee5e6b4b0d3255bfef95601890afd80709</open-checksum>
</data>
</code></pre>
<p>To reproduce:</p>
<p>1. create and sync a yum repository<br>
2. set a checksum type of sha1<br>
3. publish the repository</p> RPM Support - Test #4350 (CLOSED - COMPLETE): modules.yaml file is generated on repository with n...https://pulp.plan.io/issues/43502019-01-24T14:12:25Zbherring
<p>It seems that syncing and publishing a repository without any modularity info, still results in a modules.yaml being generated.</p>
<p>See: <a href="https://projects.theforeman.org/issues/25529" class="external">https://projects.theforeman.org/issues/25529</a> for more information</p> RPM Support - Test #4269 (CLOSED - COMPLETE): Recursive and conservative recursive copyhttps://pulp.plan.io/issues/42692018-12-14T17:36:04Zmilan
<a name="Description"></a>
<h2 >Description<a href="#Description" class="wiki-anchor">¶</a></h2>
<p>With the <a href="https://github.com/pulp/pulp_rpm/pull/1226" class="external">fix</a> for the Issue <a class="issue tracker-1 status-11 priority-6 priority-default closed" title="Issue: Regression Pulp 2.17.1: recursive copy of RPMs does not copy partially resolvable dependencies (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/4152">#4152</a>, the default behaviour of recursive copy changes back to the state before 2.17, rendering the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> broken.<br>
The behaviour specified in the <a href="https://github.com/PulpQE/pulp-smash/issues/1090" class="external">pulp smash issue 1090</a>, as requested in the Issue <a class="issue tracker-3 status-11 priority-6 priority-default closed" title="Story: Support more conservative dependency solving (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/2478">#2478</a>, is now optional and can be triggered by providing the <code>"recursive_conservative": true</code> config override instead of the default <code>"recursive": true</code>.<br>
With that setting, the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> should agin pass as is.</p>
<a name="Proposed-solution"></a>
<h2 >Proposed solution<a href="#Proposed-solution" class="wiki-anchor">¶</a></h2>
<p>Split the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> such that it asserts:</p>
<ul>
<li>a failure in the terms described in <a href="https://github.com/PulpQE/pulp-smash/issues/1090" class="external">pulp smash issue 1090</a> with the default <code>"recursive": true</code> config override setting</li>
<li>a success once the non-default <code>"recursive_conservative": true</code> config override setting is provided</li>
</ul> Pulp - Test #4258 (CLOSED - COMPLETE): Publishing incorrect branch head.https://pulp.plan.io/issues/42582018-12-11T13:33:31Zbherring
<a name="Notes"></a>
<h2 >Notes<a href="#Notes" class="wiki-anchor">¶</a></h2>
<ul>
<li>ostree smash test? ping jeff</li>
</ul>