Issues with syncing aarch64 BaseOS repos

Problem: Getting following error when attempting to sync BaseOS for AlmaLinux or CentOS 8 Stream (both aarch64)

‘DistributionTree’ object has no attribute ‘filename’

Expected outcome:
Successful sync

Foreman and Proxy versions:

foreman-2.5.3-1.el8.noarch
katello-4.1.3-1.el8.noarch

Foreman and Proxy plugin versions:

Distribution and version:
AlmaLinux 8.4 (Electric Cheetah)

Other relevant data:
Error tab from Tasks:

{"pulp_tasks"=>
  [{"pulp_href"=>"/pulp/api/v3/tasks/b0188bca-2934-4e51-8bf2-0bb807b6c4fc/",
    "pulp_created"=>"2021-09-18T22:31:09.307+00:00",
    "state"=>"failed",
    "name"=>"pulp_rpm.app.tasks.synchronizing.synchronize",
    "logging_cid"=>"afe9d07b-5d97-4294-95b2-e509628d03e5",
    "started_at"=>"2021-09-18T22:31:09.374+00:00",
    "finished_at"=>"2021-09-18T22:32:10.281+00:00",
    "error"=>
     {"traceback"=>
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/tasking/pulpcore_worker.py\", line 272, in _perform_task\n" +
       "    result = func(*args, **kwargs)\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulp_rpm/app/tasks/synchronizing.py\", line 489, in synchronize\n" +
       "    version = dv.create()\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/declarative_version.py\", line 151, in create\n" +
       "    loop.run_until_complete(pipeline)\n" +
       "  File \"/usr/lib64/python3.6/asyncio/base_events.py\", line 484, in run_until_complete\n" +
       "    return future.result()\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py\", line 225, in create_pipeline\n" +
       "    await asyncio.gather(*futures)\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py\", line 43, in __call__\n" +
       "    await self.run()\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/artifact_stages.py\", line 270, in run\n" +
       "    RemoteArtifact.objects.bulk_get_or_create(self._needed_remote_artifacts(batch))\n" +
       "  File \"/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/artifact_stages.py\", line 348, in _needed_remote_artifacts\n" +
       "    c=d_content.content.filename,\n",
      "description"=>"'DistributionTree' object has no attribute 'filename'"},
    "worker"=>"/pulp/api/v3/workers/ad850c15-a09e-4edb-a915-dffc6996f239/",
    "child_tasks"=>[],
    "progress_reports"=>
     [{"message"=>"Parsed Comps",
       "code"=>"sync.parsing.comps",
       "state"=>"completed",
       "total"=>55,
       "done"=>55},
      {"message"=>"Parsed Advisories",
       "code"=>"sync.parsing.advisories",
       "state"=>"completed",
       "total"=>504,
       "done"=>504},
      {"message"=>"Downloading Metadata Files",
       "code"=>"sync.downloading.metadata",
       "state"=>"completed",
       "done"=>12},
      {"message"=>"Downloading Artifacts",
       "code"=>"sync.downloading.artifacts",
       "state"=>"completed",
       "done"=>0},
      {"message"=>"Associating Content",
       "code"=>"associating.content",
       "state"=>"completed",
       "done"=>0},
      {"message"=>"Parsed Modulemd",
       "code"=>"sync.parsing.modulemds",
       "state"=>"completed",
       "total"=>107,
       "done"=>107},
      {"message"=>"Parsed Modulemd-defaults",
       "code"=>"sync.parsing.modulemd_defaults",
       "state"=>"completed",
       "total"=>44,
       "done"=>44},
      {"message"=>"Parsed Packages",
       "code"=>"sync.parsing.packages",
       "state"=>"completed",
       "done"=>5187},
      {"message"=>"Parsed Comps",
       "code"=>"sync.parsing.comps",
       "state"=>"completed",
       "total"=>41,
       "done"=>41},
      {"message"=>"Downloading Metadata Files",
       "code"=>"sync.downloading.metadata",
       "state"=>"completed",
       "done"=>11},
      {"message"=>"Downloading Artifacts",
       "code"=>"sync.downloading.artifacts",
       "state"=>"canceled",
       "done"=>1},
      {"message"=>"Associating Content",
       "code"=>"associating.content",
       "state"=>"canceled",
       "done"=>0},
      {"message"=>"Parsed Advisories",
       "code"=>"sync.parsing.advisories",
       "state"=>"completed",
       "total"=>272,
       "done"=>272},
      {"message"=>"Parsed Packages",
       "code"=>"sync.parsing.packages",
       "state"=>"completed",
       "done"=>1622}],
    "created_resources"=>[],
    "reserved_resources_record"=>
     ["/pulp/api/v3/remotes/rpm/rpm/bfd80ef8-6dd3-4c7e-82b4-674899ca8ebb/",
      "/pulp/api/v3/repositories/rpm/rpm/a205ca81-c4eb-4de3-8b0c-d7b270527c3e/"]}],
 "create_version"=>true,
 "task_groups"=>[],
 "poll_attempts"=>{"total"=>23, "failed"=>1}}

Same issue happened on previous CentOS 8 installation, before I did full wipe and reinstall to AlmaLinux.

Another (probably unrelated) thing that happened for aarch64 versions of Alma, CentOS and RockyLinux is that all 3 of them failed with this same message, no matter the mirror:

A file located at the url https://mirror.slu.cz/rocky/8/BaseOS/aarch64/os/images/pxeboot/vmlinuz failed validation due to checksum.

Thank you in advance for shining some light on this mystery.

The issie has been filed upstream in pulp Issue #9427: Sync for BaseOS for AlmaLinux or CentOS 8 Stream fails with 'DistributionTree' object has no attribute 'filename' - Pulp

3 Likes

Wonderful. Thank you very much. :slight_smile:
Going to keep an eye on this one.