Issue #7467
closedMissing architectures specified in Release should be regarded as empty
Description
I am trying to sync release focal-security
with components main universe non-free
from http://security.ubuntu.com/ubuntu/
.
This fails because the Release-file defines some architecture-files that are not present.
According to https://wiki.debian.org/DebianRepository/Format#Architectures , architectures that are defined but not present, should be regarded as present but empty.
However, I am unsure if this also applies here, because here the Architectures are defined and even hashes for the Index files are defined, but are missing in the directory-structure. Persumably Ubuntu does this to not have to re-sign the Release-files.
error:
traceback: |2
File "/usr/lib/python3.6/site-packages/rq/worker.py", line 883, in perform_job
rv = job.perform()
File "/usr/lib/python3.6/site-packages/rq/job.py", line 657, in perform
self._result = self._execute()
File "/usr/lib/python3.6/site-packages/rq/job.py", line 663, in _execute
return self.func(*self.args, **self.kwargs)
File "/usr/local/lib/python3.6/site-packages/pulp_deb/app/tasks/synchronizing.py", line 106, in synchronize
DebDeclarativeVersion(first_stage, repository, mirror=mirror).create()
File "/usr/local/lib/python3.6/site-packages/pulpcore/plugin/stages/declarative_version.py", line 148, 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/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 225, in create_pipeline
await asyncio.gather(*futures)
File "/usr/local/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 43, in __call__
await self.run()
File "/usr/local/lib/python3.6/site-packages/pulp_deb/app/tasks/synchronizing.py", line 286, in run
raise NoPackageIndexFile(relative_dir=relative_dir)
description: No suitable Package index file found in 'dists/focal-security/main/binary-armhf'.
Updated by quba42 over 4 years ago
The combination of declaring a architecture (in the Release files Architectures field), referencing the package index in the Release file, but not actually publishing it, is necessary for providing partial mirrors. It is what our verbatim publisher generally does, so we should certainly support it.
Be that as it may, I am near certain the plugin is currently not adhering to the repo specification, since it loops over the architectures from the release file field, and then expects to find an index for it. This part is definitely a bug.
Updated by quba42 over 4 years ago
- Priority changed from Normal to High
- Sprint/Milestone set to Katello
- Triaged changed from No to Yes
Updated by pulpbot about 4 years ago
- Status changed from NEW to POST
Added by ThikaXer about 4 years ago
Updated by ThikaXer about 4 years ago
- Status changed from POST to MODIFIED
Applied in changeset 2ef5693727435c54f676e1eeefbe38ea8026562a.
Updated by quba42 about 4 years ago
- Sprint/Milestone changed from Katello to 2.8.0
Updated by pulpbot about 4 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Ignore architectures with missing Packages file
fixes #7467