pulp / pulp_container

Pulp Container Registry
https://docs.pulpproject.org/pulp_container/
GNU General Public License v2.0
23 stars 45 forks source link

Syncing fedora/fedora-bootc fails #1746

Closed ianballou closed 2 months ago

ianballou commented 3 months ago

Version Container 2.20.2

{
  "versions": [
    {
      "component": "core",
      "version": "3.49.17",
      "package": "pulpcore",
      "module": "pulpcore.app",
      "domain_compatible": true
    },
    {
      "component": "certguard",
      "version": "3.49.17",
      "package": "pulpcore",
      "module": "pulp_certguard.app",
      "domain_compatible": true
    },
    {
      "component": "file",
      "version": "3.49.17",
      "package": "pulpcore",
      "module": "pulp_file.app",
      "domain_compatible": true
    },
    {
      "component": "rpm",
      "version": "3.26.1",
      "package": "pulp-rpm",
      "module": "pulp_rpm.app",
      "domain_compatible": true
    },
    {
      "component": "container",
      "version": "2.20.2",
      "package": "pulp-container",
      "module": "pulp_container.app",
      "domain_compatible": false
    },
    {
      "component": "ansible",
      "version": "0.21.7",
      "package": "pulp-ansible",
      "module": "pulp_ansible.app",
      "domain_compatible": false
    }
  ],

Describe the bug Syncing https://quay.io/repository/fedora/fedora-bootc?tab=info fails with a mediaType error.

---
pulp_tasks:
- pulp_href: "/pulp/api/v3/tasks/01917543-42b0-7481-befc-c5f16041ebdf/"
  pulp_created: '2024-08-21T14:07:07.952+00:00'
  pulp_last_updated: '2024-08-21T14:07:07.952+00:00'
  state: failed
  name: pulp_container.app.tasks.synchronize.synchronize
  logging_cid: 6d0d52e1-5203-4ad6-9bb0-1428cc4286a6
  created_by: "/pulp/api/v3/users/1/"
  unblocked_at: '2024-08-21T14:07:07.963+00:00'
  started_at: '2024-08-21T14:07:07.997+00:00'
  finished_at: '2024-08-21T14:07:08.542+00:00'
  error:
    traceback: |2
        File "/usr/lib/python3.11/site-packages/pulpcore/tasking/tasks.py", line 66, in _execute_task
          result = func(*args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib/python3.11/site-packages/pulp_container/app/tasks/synchronize.py", line 41, in synchronize
          return dv.create()
                 ^^^^^^^^^^^
        File "/usr/lib/python3.11/site-packages/pulpcore/plugin/stages/declarative_version.py", line 161, in create
          loop.run_until_complete(pipeline)
        File "/usr/lib64/python3.11/asyncio/base_events.py", line 653, in run_until_complete
          return future.result()
                 ^^^^^^^^^^^^^^^
        File "/usr/lib/python3.11/site-packages/pulpcore/plugin/stages/api.py", line 220, in create_pipeline
          await asyncio.gather(*futures)
        File "/usr/lib/python3.11/site-packages/pulpcore/plugin/stages/api.py", line 41, in __call__
          await self.run()
        File "/usr/lib/python3.11/site-packages/asgiref/sync.py", line 486, in thread_handler
          raise exc_info[1]
        File "/usr/lib/python3.11/site-packages/pulp_container/app/tasks/sync_stages.py", line 182, in run
          listed_manifest = await listed_manifest_task
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib64/python3.11/asyncio/tasks.py", line 615, in _wait_for_one
          return f.result()  # May raise f.exception().
                 ^^^^^^^^^^
        File "/usr/lib/python3.11/site-packages/pulp_container/app/tasks/sync_stages.py", line 490, in create_listed_manifest
          content_data, manifest = await self._download_and_instantiate_manifest(
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib/python3.11/site-packages/pulp_container/app/tasks/sync_stages.py", line 450, in _download_and_instantiate_manifest
          if content_data["mediaType"] in (MEDIA_TYPE.MANIFEST_V2, MEDIA_TYPE.MANIFEST_OCI)
             ~~~~~~~~~~~~^^^^^^^^^^^^^
    description: "'mediaType'"
  worker: "/pulp/api/v3/workers/0191747b-141b-798d-a9c1-135a91d22366/"
  child_tasks: []
  progress_reports:
  - message: Downloading Artifacts
    code: sync.downloading.artifacts
    state: canceled
    done: 0
  - message: Associating Content
    code: associating.content
    state: canceled
    done: 0
  - message: Downloading tag list
    code: sync.downloading.tag_list
    state: completed
    total: 1
    done: 1
  - message: Processing Tags
    code: sync.processing.tag
    state: failed
    total: 15
    done: 1
  created_resources: []
  reserved_resources_record:
  - "/pulp/api/v3/repositories/container/container/01917540-1179-7a01-b831-5ed01264fcb7/"
  - shared:/pulp/api/v3/remotes/container/container/01917540-0f8d-7f58-8819-f6524b7c1ecc/
  - shared:/pulp/api/v3/domains/01917478-e44f-7090-aa16-4d370859a36c/
create_version: true
task_groups: []
poll_attempts:
  total: 1
  failed: 1

To Reproduce Sync https://quay.io/repository/fedora/fedora-bootc. Used content only mirroring and the on-demand download policy.

Expected behavior Sync completes successfully.

Additional context Syncing a different image from Quay (prometheus/busybox) worked.