Project

Profile

Help

Issue #7467

closed

Missing architectures specified in Release should be regarded as empty

Added by mbucher over 3 years ago. Updated over 3 years ago.

Status:
CLOSED - CURRENTRELEASE
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'.
Actions #1

Updated by quba42 over 3 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.

Actions #2

Updated by quba42 over 3 years ago

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

Updated by quba42 over 3 years ago

  • Tags Katello added
Actions #4

Updated by pulpbot over 3 years ago

  • Status changed from NEW to POST

Added by ThikaXer over 3 years ago

Revision 2ef56937 | View on GitHub

Ignore architectures with missing Packages file

fixes #7467

Actions #5

Updated by ThikaXer over 3 years ago

  • Status changed from POST to MODIFIED
Actions #6

Updated by quba42 over 3 years ago

  • Sprint/Milestone changed from Katello to 2.8.0
Actions #7

Updated by pulpbot over 3 years ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Also available in: Atom PDF