"Fatal parser error" when syncing from Epel 8

Problem:
Sometime during beginning of May 2024 I’m having problems syncing Epel 8 repository. No other products are affected. It starts what looks like syncing as usually, but after about 20 minutes it fails with ‘Fatal parser error’ message. I tried syncing to other mirrors, I even created a fresh “epel-test” product and tried syncing from scratch - always same outcome.

I’ve read some segments here and there on Sattelite and EPEL forums that this might be due Epel changing something in their metadata (which even affects reposync / RH Satelite). I still haven’t seen someone reporting this with Katello / Foreman. Then again my version is quite old.

Expected outcome:
Normal / completed sync from upstream.

Foreman and Proxy versions:
foreman 3.1.2

Foreman and Proxy plugin versions:
katello 4.3.1

Distribution and version:
Rocky Linux 8.5

{"repo_id"=>2551,
 "smart_proxy_id"=>1,
 "options"=>{},
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{"pulp_tasks"=>
  [{"pulp_href"=>"/pulp/api/v3/tasks/cff5a75e-5aa4-4c5e-ab0d-af4eb23c216c/",
    "pulp_created"=>"2024-05-18T17:19:31.057+00:00",
    "state"=>"failed",
    "name"=>"pulp_rpm.app.tasks.synchronizing.synchronize",
    "logging_cid"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
    "started_at"=>"2024-05-18T17:19:31.271+00:00",
    "finished_at"=>"2024-05-18T17:34:23.491+00:00",
    "error"=>
     {"traceback"=>
       #<Sequel::SQL::Blob:0xa3624 bytes=106 start="  File \"/u" end="form_task\n"> +
       #<Sequel::SQL::Blob:0xa3638 bytes=35 start="    result" end="**kwargs)\n"> +
       #<Sequel::SQL::Blob:0xa364c bytes=104 start="  File \"/u" end="nchronize\n"> +
       #<Sequel::SQL::Blob:0xa3660 bytes=56 start="    repo_v" end="version()\n"> +
       #<Sequel::SQL::Blob:0xa3674 bytes=109 start="  File \"/u" end="in create\n"> +
       #<Sequel::SQL::Blob:0xa3688 bytes=38 start="    loop.r" end="pipeline)\n"> +
       #<Sequel::SQL::Blob:0xa369c bytes=86 start="  File \"/u" end="_complete\n"> +
       #<Sequel::SQL::Blob:0xa36b0 bytes=27 start="    return" end=".result()\n"> +
       #<Sequel::SQL::Blob:0xa36c4 bytes=102 start="  File \"/u" end="_pipeline\n"> +
       #<Sequel::SQL::Blob:0xa36d8 bytes=35 start="    await " end="*futures)\n"> +
       #<Sequel::SQL::Blob:0xa36ec bytes=94 start="  File \"/u" end=" __call__\n"> +
       #<Sequel::SQL::Blob:0xa3700 bytes=21 start="    await " end="elf.run()\n"> +
       #<Sequel::SQL::Blob:0xa3714 bytes=96 start="  File \"/u" end="4, in run\n"> +
       #<Sequel::SQL::Blob:0xa3728 bytes=79 start="    await " end="xtension)\n"> +
       #<Sequel::SQL::Blob:0xa373c bytes=118 start="  File \"/u" end="_metadata\n"> +
       #<Sequel::SQL::Blob:0xa3750 bytes=69 start="    groups" end="s_result)\n"> +
       #<Sequel::SQL::Blob:0xa3764 bytes=119 start="  File \"/u" end="omponents\n"> +
       #<Sequel::SQL::Blob:0xa3778 bytes=39 start="    comps." end="ult.path)\n">,
      "description"=>"Fatal parser error"},
    "worker"=>"/pulp/api/v3/workers/f04fdff0-9679-4020-96fc-a3a2c44e87ba/",
    "child_tasks"=>[],
    "progress_reports"=>
     [{"message"=>"Downloading Metadata Files",
       "code"=>"sync.downloading.metadata",
       "state"=>"completed",
       "done"=>6},
      {"message"=>"Downloading Artifacts",
       "code"=>"sync.downloading.artifacts",
       "state"=>"canceled",
       "done"=>0},
      {"message"=>"Associating Content",
       "code"=>"associating.content",
       "state"=>"canceled",
       "done"=>9500},
      {"message"=>"Parsed Packages",
       "code"=>"sync.parsing.packages",
       "state"=>"completed",
       "done"=>10100}],
    "created_resources"=>[],
    "reserved_resources_record"=>
     ["/pulp/api/v3/repositories/rpm/rpm/546215e4-e502-4f95-b0ea-f00b314df545/",
      "shared:/pulp/api/v3/remotes/rpm/rpm/d32f87ae-d808-4bd5-8d60-6ba851053540/"]}],
 "create_version"=>true,
 "task_groups"=>[],
 "poll_attempts"=>{"total"=>76, "failed"=>1}}
Exception:
Katello::Errors::Pulp3Error: Fatal parser error
Backtrace:
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/pulp3/abstract_async_task.rb:108:in `block in check_for_errors'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/pulp3/abstract_async_task.rb:106:in `each'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/pulp3/abstract_async_task.rb:106:in `check_for_errors'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/pulp3/abstract_async_task.rb:160:in `poll_external_task'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action/polling.rb:100:in `poll_external_task_with_rescue'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action/polling.rb:22:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action/cancellable.rb:14:in `run'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/pulp3/abstract_async_task.rb:10:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:582:in `block (3 levels) in execute_run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:32:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/middleware/remote_action.rb:16:in `block in run'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/middleware/remote_action.rb:40:in `block in as_remote_user'
/usr/share/gems/gems/katello-4.3.1/app/models/katello/concerns/user_extensions.rb:21:in `cp_config'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/middleware/remote_action.rb:27:in `as_cp_user'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/middleware/remote_action.rb:39:in `as_remote_user'
/usr/share/gems/gems/katello-4.3.1/app/lib/actions/middleware/remote_action.rb:16:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/rails_executor_wrap.rb:14:in `block in run'
/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/execution_wrapper.rb:88:in `wrap'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/rails_executor_wrap.rb:13:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action/progress.rb:31:in `with_progress_calculation'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action/progress.rb:17:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/load_setting_values.rb:20:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_request_id.rb:15:in `block in run'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_request_id.rb:52:in `restore_current_request_id'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_request_id.rb:15:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_timezone.rb:15:in `block in run'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_timezone.rb:44:in `restore_curent_timezone'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_timezone.rb:15:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `block in run'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_taxonomies.rb:45:in `restore_current_taxonomies'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:32:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:27:in `pass'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware.rb:19:in `pass'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_user.rb:15:in `block in run'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_user.rb:54:in `restore_curent_user'
/usr/share/gems/gems/foreman-tasks-5.2.2/app/lib/actions/middleware/keep_current_user.rb:15:in `run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/stack.rb:23:in `call'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/middleware/world.rb:31:in `execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:581:in `block (2 levels) in execute_run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:580:in `catch'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:580:in `block in execute_run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:483:in `block in with_error_handling'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:483:in `catch'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:483:in `with_error_handling'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:575:in `execute_run'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/action.rb:296:in `execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:18:in `block (2 levels) in execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/execution_plan/steps/abstract.rb:167:in `with_meta_calculation'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in `block in execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:32:in `open_action'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in `execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/director.rb:94:in `execute'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors/sidekiq/worker_jobs.rb:11:in `block (2 levels) in perform'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors.rb:18:in `run_user_code'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors/sidekiq/worker_jobs.rb:9:in `block in perform'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors/sidekiq/worker_jobs.rb:25:in `with_telemetry'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors/sidekiq/worker_jobs.rb:8:in `perform'
/usr/share/gems/gems/dynflow-1.6.3/lib/dynflow/executors/sidekiq/serialization.rb:27:in `perform'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq.rb:37:in `block in <module:Sidekiq>'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'
/usr/share/gems/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
Action:
Actions::Pulp3::Repository::Sync
Input:
{"repo_id"=>2551,
 "smart_proxy_id"=>1,
 "options"=>{},
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{"pulp_tasks"=>
  [{"pulp_href"=>"/pulp/api/v3/tasks/cff5a75e-5aa4-4c5e-ab0d-af4eb23c216c/",
    "pulp_created"=>"2024-05-18T17:19:31.057+00:00",
    "state"=>"failed",
    "name"=>"pulp_rpm.app.tasks.synchronizing.synchronize",
    "logging_cid"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
    "started_at"=>"2024-05-18T17:19:31.271+00:00",
    "finished_at"=>"2024-05-18T17:34:23.491+00:00",
    "error"=>
     {"traceback"=>
       #<Sequel::SQL::Blob:0xa378c bytes=106 start="  File \"/u" end="form_task\n"> +
       #<Sequel::SQL::Blob:0xa37a0 bytes=35 start="    result" end="**kwargs)\n"> +
       #<Sequel::SQL::Blob:0xa37b4 bytes=104 start="  File \"/u" end="nchronize\n"> +
       #<Sequel::SQL::Blob:0xa37c8 bytes=56 start="    repo_v" end="version()\n"> +
       #<Sequel::SQL::Blob:0xa37dc bytes=109 start="  File \"/u" end="in create\n"> +
       #<Sequel::SQL::Blob:0xa37f0 bytes=38 start="    loop.r" end="pipeline)\n"> +
       #<Sequel::SQL::Blob:0xa3804 bytes=86 start="  File \"/u" end="_complete\n"> +
       #<Sequel::SQL::Blob:0xa3818 bytes=27 start="    return" end=".result()\n"> +
       #<Sequel::SQL::Blob:0xa382c bytes=102 start="  File \"/u" end="_pipeline\n"> +
       #<Sequel::SQL::Blob:0xa3840 bytes=35 start="    await " end="*futures)\n"> +
       #<Sequel::SQL::Blob:0xa3854 bytes=94 start="  File \"/u" end=" __call__\n"> +
       #<Sequel::SQL::Blob:0xa3868 bytes=21 start="    await " end="elf.run()\n"> +
       #<Sequel::SQL::Blob:0xa387c bytes=96 start="  File \"/u" end="4, in run\n"> +
       #<Sequel::SQL::Blob:0xa3890 bytes=79 start="    await " end="xtension)\n"> +
       #<Sequel::SQL::Blob:0xa38a4 bytes=118 start="  File \"/u" end="_metadata\n"> +
       #<Sequel::SQL::Blob:0xa38b8 bytes=69 start="    groups" end="s_result)\n"> +
       #<Sequel::SQL::Blob:0xa38cc bytes=119 start="  File \"/u" end="omponents\n"> +
       #<Sequel::SQL::Blob:0xa38e0 bytes=39 start="    comps." end="ult.path)\n">,
      "description"=>"Fatal parser error"},
    "worker"=>"/pulp/api/v3/workers/f04fdff0-9679-4020-96fc-a3a2c44e87ba/",
    "child_tasks"=>[],
    "progress_reports"=>
     [{"message"=>"Downloading Metadata Files",
       "code"=>"sync.downloading.metadata",
       "state"=>"completed",
       "done"=>6},
      {"message"=>"Downloading Artifacts",
       "code"=>"sync.downloading.artifacts",
       "state"=>"canceled",
       "done"=>0},
      {"message"=>"Associating Content",
       "code"=>"associating.content",
       "state"=>"canceled",
       "done"=>9500},
      {"message"=>"Parsed Packages",
       "code"=>"sync.parsing.packages",
       "state"=>"completed",
       "done"=>10100}],
    "created_resources"=>[],
    "reserved_resources_record"=>
     ["/pulp/api/v3/repositories/rpm/rpm/546215e4-e502-4f95-b0ea-f00b314df545/",
      "shared:/pulp/api/v3/remotes/rpm/rpm/d32f87ae-d808-4bd5-8d60-6ba851053540/"]}],
 "create_version"=>true,
 "task_groups"=>[],
 "poll_attempts"=>{"total"=>76, "failed"=>1}}
Action:
Actions::Pulp3::Repository::SaveVersion
Input:
{"repository_id"=>2551,
 "tasks"=>Step(6).output[:pulp_tasks],
 "repository_details"=>nil,
 "force_fetch_version"=>nil,
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Pulp3::Repository::CreatePublication
Input:
{"repository_id"=>2551,
 "smart_proxy_id"=>1,
 "contents_changed"=>Step(9).output[:contents_changed],
 "skip_publication_creation"=>Step(9).output[:publication_provided],
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Pulp3::Repository::SavePublication
Input:
{"repository_id"=>2551,
 "tasks"=>Step(12).output,
 "contents_changed"=>Step(9).output[:contents_changed],
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Pulp3::Repository::SaveDistributionReferences
Input:
{"repository_id"=>2551,
 "smart_proxy_id"=>1,
 "tasks"=>Step(16).output,
 "contents_changed"=>Step(9).output[:contents_changed],
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Pulp3::Orchestration::Repository::Sync
Input:
{"subaction_output"=>Step(9).output,
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Katello::Repository::Sync
Input:
{"repository"=>{"id"=>2551, "name"=>"epel-test", "label"=>"epel-test"},
 "product"=>
  {"id"=>58,
   "name"=>"test-for-epel",
   "label"=>"test-for-epel",
   "cp_id"=>"727717362485"},
 "provider"=>{"id"=>1, "name"=>"Anonymous"},
 "organization"=>{"id"=>1, "name"=>"CDN", "label"=>"CDN"},
 "services_checked"=>["pulp3"],
 "id"=>2551,
 "sync_result"=>Step(19).output,
 "skip_metadata_check"=>false,
 "validate_contents"=>false,
 "contents_changed"=>nil,
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}
Output:
{}
Action:
Actions::Katello::Repository::Sync
Input:
{"repository"=>{"id"=>2551, "name"=>"epel-test", "label"=>"epel-test"},
 "product"=>
  {"id"=>58,
   "name"=>"test-for-epel",
   "label"=>"test-for-epel",
   "cp_id"=>"727717362485"},
 "provider"=>{"id"=>1, "name"=>"Anonymous"},
 "organization"=>{"id"=>1, "name"=>"CDN", "label"=>"CDN"},
 "services_checked"=>["pulp3"],
 "id"=>2551,
 "sync_result"=>Step(19).output,
 "skip_metadata_check"=>false,
 "validate_contents"=>false,
 "contents_changed"=>nil,
 "current_request_id"=>"c3a8dd83-8007-4696-a728-9c50afe62642",
 "current_timezone"=>"Europe/Stockholm",
 "current_organization_id"=>1,
 "current_location_id"=>2,
 "current_user_id"=>5}```

Hi there!

That would make sense to see issues in RH Satellite if they appear in Foreman/Katello, because it’s the upstream for said product :+1:

I don’t remember if there was a EPEL syncing issue a while back, but in the current version I don’t see any issues, so maybe Pulp (the application in the whole Stack that does the syncing) already got adjusted to be able to deal with the changes.

That said, you are on a very old version (Foreman 3.1 → 3.10), so it might be done with updating. (if don’t forget to update one version at a time)

1 Like

Hi,

I’ve found a patch suggestion on Red Hat forums that supposedly solve the problem on older versions. A tiny patch of pulp code. Aparently Epel changed the metadata type from “comps” to “group” , which older Pulp versions do not understand. I’ll see if it solves my problem.

But, yeah, it’s time to update this old workhorse. Sounds like a summer project - 8 sequential minor versions update … urk :slight_smile:

2 Likes

Good if you could apply the patch :slight_smile:

Tbh 8 patches can be done pretty fast, as long as there occur no db migration issues. All it’s a apply new release rpms, update all packages, run foreman-installer and repeat.

1 Like

@ShejtanVrbaski nice find on the KCS there. Here’s a link to the pulp-rpm 3.17 patch for people who haven’t made a RH developer account yet: Allow "group" aka comps metadata to be compressed · pulp/pulp_rpm@3d41102 · GitHub

I’d recommend getting up to at least Katello 4.11 if you can, we’re soon going to be releasing Katello 4.13. We take backport requests for the two latest Foreman/Katello versions, which could help the next time you hit a bug :slight_smile:

Hello again,
I’m not sure if I understand - how far up do I have to go from my current old version to reach that patch level and eliminate the bug?