Project

Profile

Help

Issue #7467

Missing architectures specified in Release should be regarded as empty

Added by mbucher about 2 months ago. Updated about 1 month ago.

Status:
NEW
Priority:
High
Assignee:
-
Sprint/Milestone:
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version - Debian:
Platform Release:
Target Release - Debian:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Katello
Sprint:
Quarter:

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'.

History

#1 Updated by quba42 about 2 months 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.

#2 Updated by quba42 about 1 month ago

  • Priority changed from Normal to High
  • Sprint/Milestone set to Katello
  • Triaged changed from No to Yes

#3 Updated by quba42 about 1 month ago

  • Tags Katello added

Please register to edit this issue

Also available in: Atom PDF