Error syncing RHEL8 cuda repo

Not sure where to post this - please point me in the right direction.

I am having an error when sync’ing the cuda repo for rhel8.
http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/

The sync is done with Pulp (Red Hat Satellite).

Problem:
Error occours on RHEL8 repo in the modules-section of the repodata, failing with:

“modules”=>
{“state”=>“FAILED”,
“error”=>
“strings in documents must be valid UTF-8: ‘\x8c\x01\x00\x00\x04465-dkms … … …\x00’”}

Problem is described elsewhere:
https://bugzilla.redhat.com/show_bug.cgi?id=1920511
https://access.redhat.com/solutions/5376011

Conclusion from RedHat is

The provider of the repository should be informed that they need to fix the metadata on their repository.

and

Context is a mandatory part of module metadata in a repository.

https://bugzilla.redhat.com/show_bug.cgi?id=1799036

Possible solution, Nvidia take a look please…
Not sure how the nvidia cuda repo is constructed, but I guess the repos modules needs to be modified to include a ‘Context’-field

Below is the bug trace:

{"pulp_tasks"=>
  [{"exception"=>nil,
    "task_type"=>"pulp.server.managers.repo.sync.sync",
    "_href"=>"/pulp/api/v2/tasks/5a44ea00-656e-4fea-8c8d-df587c7720fd/",
    "task_id"=>"5a44ea00-656e-4fea-8c8d-df587c7720fd",
    "tags"=>
     ["pulp:repository:f5ef604a-32c6-4238-be84-d6e21c50507d",
      "pulp:action:sync"],
    "finish_time"=>"2021-04-26T08:03:47Z",
    "_ns"=>"task_status",
    "start_time"=>"2021-04-26T08:03:22Z",
    "traceback"=>
     "Traceback (most recent call last):\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 367, in trace_task\n" +
     "    R = retval = fun(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 688, in __call__\n" +
     "    return super(Task, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 110, in __call__\n" +
     "    return super(PulpTask, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 622, in __protected_call__\n" +
     "    return self.run(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py\", line 860, in sync\n" +
     "    raise pulp_exceptions.PulpExecutionException(_('Importer indicated a failed response'))\n" +
     "PulpExecutionException: Importer indicated a failed response\n",
    "spawned_tasks"=>[],
    "progress_report"=>
     {"yum_importer"=>
       {"content"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "details"=>
           {"rpm_total"=>0, "rpm_done"=>0, "drpm_total"=>0, "drpm_done"=>0},
          "size_total"=>0,
          "size_left"=>0,
          "items_left"=>0},
        "comps"=>{"state"=>"NOT_STARTED"},
        "purge_duplicates"=>{"state"=>"NOT_STARTED"},
        "distribution"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "items_left"=>0},
        "modules"=>
         {"state"=>"FAILED",
          "error"=>
           "strings in documents must be valid UTF-8: '\\x8c\\x01\\x00\\x00\\x04465-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04465\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x00'"},
        "errata"=>{"state"=>"NOT_STARTED"},
        "metadata"=>{"state"=>"FINISHED"}}},
    "queue"=>"reserved_resource_worker-3@satapp01pl.unicph.domain.dq2",
    "state"=>"error",
    "worker_name"=>"reserved_resource_worker-3@satapp01pl.unicph.domain",
    "result"=>nil,
    "error"=>
     {"code"=>"PLP0000",
      "data"=>{},
      "description"=>"Importer indicated a failed response",
      "sub_errors"=>[]},
    "_id"=>{"$oid"=>"608673caadfb7c5da3cecf1b"},
    "id"=>"608673caadfb7c5da3cecf1b"}],
 "contents_changed"=>true,
 "poll_attempts"=>{"total"=>17, "failed"=>1}}

If anyone can point me in a direction it is much appreciated.

Thanks.
/Fred

1 Like

Did you ever get a resolution or workaround ? We are experiencing the same problems.

Unfortunately not - we are still having this issue.
I opened a bug-report linking to this post, but total radio silence from Nvidia.

We are not having the issue on RHEL 7 as the module section of the repo definition only present on RHEL8.

It shouldnt be hard to fix if the right people are looking at it.

Edit: I would recommend you to open a bug report on this as well - more attention to the problem and all that.

Same problem here. Need to sync repos with RedHat Satellite and get the same error.
Really frustrating that NVIDIA is completely ignoring this issue.

Hi there qfz769, stuart4, and sousa.a.guilherme,
Sorry for the delay, this thread just came to my attention.

About 6 months ago, I added the Context key-value https://github.com/NVIDIA/yum-packaging-precompiled-kmod/issues/16 (feel free to file issues with the repository on this GitHub repo) and the user reported the issue was fixed. I checked the YAML file generated by genmodules.py and it’s valid UTF-8 (ran it through a few validators).

Unfortunately I do not have access to RedHat Satellite, so I’m not sure why the tool is failing. I did notice that in the CentOS8 Appstream repository the stream names are wrapped in double-quotes, which seems to maybe line up with the error you are seeing.

Thank you for the response. The syncing was working fine until about a month ago (I can try and dig up the exact date from the logs). The error basically complains that some of the meta data is not UTF8 encoding (if my memory serves me correct)

I can happily send you the sync logs from our satellite if you want ?

Thank you again for your help.

Hello!
Thanks for getting back on this issue.

I just did a fresh sync of the rhel8 cuda repo on satellite 6.9
Mind you, satellite uses upstream ‘pulp’ to sync these, hence the some vague answer from RedHat…

The below, is all output I got when syncing.
I would be happy to test any thing you throw at us. :)

Action:
Actions::Pulp::Repository::Sync
Input:
{"source_url"=>nil,
 "repo_id"=>17302,
 "smart_proxy_id"=>1,
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{"pulp_tasks"=>
  [{"exception"=>nil,
    "task_type"=>"pulp.server.managers.repo.sync.sync",
    "_href"=>"/pulp/api/v2/tasks/09f643c3-255b-411b-aa01-594b2b72799c/",
    "task_id"=>"09f643c3-255b-411b-aa01-594b2b72799c",
    "tags"=>
     ["pulp:repository:0c749c19-6694-476a-b612-2b4902bba817",
      "pulp:action:sync"],
    "finish_time"=>"2021-06-10T15:28:31Z",
    "_ns"=>"task_status",
    "start_time"=>"2021-06-10T15:28:03Z",
    "traceback"=>
     "Traceback (most recent call last):\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 367, in trace_task\n" +
     "    R = retval = fun(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 688, in __call__\n" +
     "    return super(Task, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 110, in __call__\n" +
     "    return super(PulpTask, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 622, in __protected_call__\n" +
     "    return self.run(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py\", line 860, in sync\n" +
     "    raise pulp_exceptions.PulpExecutionException(_('Importer indicated a failed response'))\n" +
     "PulpExecutionException: Importer indicated a failed response\n",
    "spawned_tasks"=>[],
    "progress_report"=>
     {"yum_importer"=>
       {"content"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "details"=>
           {"rpm_total"=>0, "rpm_done"=>0, "drpm_total"=>0, "drpm_done"=>0},
          "size_total"=>0,
          "size_left"=>0,
          "items_left"=>0},
        "comps"=>{"state"=>"NOT_STARTED"},
        "purge_duplicates"=>{"state"=>"NOT_STARTED"},
        "distribution"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "items_left"=>0},
        "modules"=>
         {"state"=>"FAILED",
          "error"=>
           "strings in documents must be valid UTF-8: '\\x8c\\x01\\x00\\x00\\x04465-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04465\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x00'"},
        "errata"=>{"state"=>"NOT_STARTED"},
        "metadata"=>{"state"=>"FINISHED"}}},
    "queue"=>"reserved_resource_worker-3@satapp01pl.unicph.domain.dq2",
    "state"=>"error",
    "worker_name"=>"reserved_resource_worker-3@satapp01pl.unicph.domain",
    "result"=>nil,
    "error"=>
     {"code"=>"PLP0000",
      "data"=>{},
      "description"=>"Importer indicated a failed response",
      "sub_errors"=>[]},
    "_id"=>{"$oid"=>"60c22f8386a9c963de52393d"},
    "id"=>"60c22f8386a9c963de52393d"}],
 "contents_changed"=>true,
 "poll_attempts"=>{"total"=>18, "failed"=>1}}
Exception:
Katello::Errors::PulpError: PLP0000: Importer indicated a failed response
Backtrace:
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/pulp/abstract_async_task.rb:121:in `block in external_task='
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/pulp/abstract_async_task.rb:119:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/pulp/abstract_async_task.rb:119:in `external_task='
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/pulp/repository/sync.rb:29:in `external_task='
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action/polling.rb:100:in `poll_external_task_with_rescue'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action/polling.rb:22:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action/cancellable.rb:14:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/pulp/abstract_async_task.rb:45:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:571:in `block (3 levels) in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:32:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/middleware/remote_action.rb:16:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/middleware/remote_action.rb:40:in `block in as_remote_user'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/models/katello/concerns/user_extensions.rb:21:in `cp_config'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/middleware/remote_action.rb:27:in `as_cp_user'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/middleware/remote_action.rb:39:in `as_remote_user'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.22/app/lib/actions/middleware/remote_action.rb:16:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/rails_executor_wrap.rb:14:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.4/lib/active_support/execution_wrapper.rb:88:in `wrap'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/rails_executor_wrap.rb:13:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action/progress.rb:31:in `with_progress_calculation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action/progress.rb:17:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_request_id.rb:15:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_request_id.rb:49:in `restore_current_request_id'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_request_id.rb:15:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_timezone.rb:15:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_timezone.rb:44:in `restore_curent_timezone'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_timezone.rb:15:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_user.rb:15:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_user.rb:44:in `restore_curent_user'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_user.rb:15:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_taxonomies.rb:45:in `restore_current_taxonomies'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-3.0.5/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:27:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:19:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware.rb:32:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/stack.rb:23:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/middleware/world.rb:31:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:570:in `block (2 levels) in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:569:in `catch'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:569:in `block in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:472:in `block in with_error_handling'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:472:in `catch'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:472:in `with_error_handling'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:564:in `execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/action.rb:285:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:18:in `block (2 levels) in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/execution_plan/steps/abstract.rb:167:in `with_meta_calculation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:32:in `open_action'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/director.rb:93:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:11:in `block (2 levels) in perform'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors.rb:18:in `run_user_code'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:9:in `block in perform'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:25:in `with_telemetry'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:8:in `perform'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.7/lib/dynflow/executors/sidekiq/serialization.rb:27:in `perform'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq.rb:37:in `block in <module:Sidekiq>'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'
/opt/theforeman/tfm/root/usr/share/gems/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
Action:
Actions::Pulp::Repository::Sync
Input:
{"source_url"=>nil,
 "repo_id"=>17302,
 "smart_proxy_id"=>1,
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{"pulp_tasks"=>
  [{"exception"=>nil,
    "task_type"=>"pulp.server.managers.repo.sync.sync",
    "_href"=>"/pulp/api/v2/tasks/09f643c3-255b-411b-aa01-594b2b72799c/",
    "task_id"=>"09f643c3-255b-411b-aa01-594b2b72799c",
    "tags"=>
     ["pulp:repository:0c749c19-6694-476a-b612-2b4902bba817",
      "pulp:action:sync"],
    "finish_time"=>"2021-06-10T15:28:31Z",
    "_ns"=>"task_status",
    "start_time"=>"2021-06-10T15:28:03Z",
    "traceback"=>
     "Traceback (most recent call last):\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 367, in trace_task\n" +
     "    R = retval = fun(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 688, in __call__\n" +
     "    return super(Task, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py\", line 110, in __call__\n" +
     "    return super(PulpTask, self).__call__(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/celery/app/trace.py\", line 622, in __protected_call__\n" +
     "    return self.run(*args, **kwargs)\n" +
     "  File \"/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py\", line 860, in sync\n" +
     "    raise pulp_exceptions.PulpExecutionException(_('Importer indicated a failed response'))\n" +
     "PulpExecutionException: Importer indicated a failed response\n",
    "spawned_tasks"=>[],
    "progress_report"=>
     {"yum_importer"=>
       {"content"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "details"=>
           {"rpm_total"=>0, "rpm_done"=>0, "drpm_total"=>0, "drpm_done"=>0},
          "size_total"=>0,
          "size_left"=>0,
          "items_left"=>0},
        "comps"=>{"state"=>"NOT_STARTED"},
        "purge_duplicates"=>{"state"=>"NOT_STARTED"},
        "distribution"=>
         {"items_total"=>0,
          "state"=>"FINISHED",
          "error_details"=>[],
          "items_left"=>0},
        "modules"=>
         {"state"=>"FAILED",
          "error"=>
           "strings in documents must be valid UTF-8: '\\x8c\\x01\\x00\\x00\\x04465-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04465\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04440-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04455-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04460-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04450-dkms\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04418\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x04latest\\x00\\x14\\x00\\x00\\x00\\x020\\x00\\x08\\x00\\x00\\x00default\\x00\\x00\\x00'"},
        "errata"=>{"state"=>"NOT_STARTED"},
        "metadata"=>{"state"=>"FINISHED"}}},
    "queue"=>"reserved_resource_worker-3@satapp01pl.unicph.domain.dq2",
    "state"=>"error",
    "worker_name"=>"reserved_resource_worker-3@satapp01pl.unicph.domain",
    "result"=>nil,
    "error"=>
     {"code"=>"PLP0000",
      "data"=>{},
      "description"=>"Importer indicated a failed response",
      "sub_errors"=>[]},
    "_id"=>{"$oid"=>"60c22f8386a9c963de52393d"},
    "id"=>"60c22f8386a9c963de52393d"}],
 "contents_changed"=>true,
 "poll_attempts"=>{"total"=>18, "failed"=>1}}
Action:
Actions::Pulp::Orchestration::Repository::Sync
Input:
{"subaction_output"=>Step(4).output,
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::IndexContent
Input:
{"id"=>17302,
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::ErrataMail
Input:
{"repo"=>17302,
 "last_updated"=>"2021-06-10 17:28:03 +0200",
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::ErrataMail
Input:
{"repo"=>17302,
 "last_updated"=>"2021-06-10 17:28:03 +0200",
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Pulp::Repository::RegenerateApplicability
Input:
{"repository_id"=>17302,
 "contents_changed"=>Step(6).output[:contents_changed],
 "remote_user"=>"admin",
 "remote_cp_user"=>"admin",
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::Sync
Input:
{"repository"=>{"id"=>17302, "name"=>"el8_x86_64", "label"=>"el8_x86_64"},
 "product"=>
  {"id"=>147,
   "name"=>"Nvidia Cuda",
   "label"=>"Nvidia_Cuda",
   "cp_id"=>"978461087049"},
 "provider"=>{"id"=>1, "name"=>"Anonymous"},
 "organization"=>{"id"=>1, "name"=>"KU", "label"=>"Default_Organization"},
 "services_checked"=>["pulp", "pulp_auth"],
 "id"=>17302,
 "sync_result"=>Step(6).output,
 "skip_metadata_check"=>false,
 "validate_contents"=>false,
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::Sync
Input:
{"repository"=>{"id"=>17302, "name"=>"el8_x86_64", "label"=>"el8_x86_64"},
 "product"=>
  {"id"=>147,
   "name"=>"Nvidia Cuda",
   "label"=>"Nvidia_Cuda",
   "cp_id"=>"978461087049"},
 "provider"=>{"id"=>1, "name"=>"Anonymous"},
 "organization"=>{"id"=>1, "name"=>"KU", "label"=>"Default_Organization"},
 "services_checked"=>["pulp", "pulp_auth"],
 "id"=>17302,
 "sync_result"=>Step(6).output,
 "skip_metadata_check"=>false,
 "validate_contents"=>false,
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}
Action:
Actions::Katello::Repository::ImportApplicability
Input:
{"repo_id"=>17302,
 "contents_changed"=>Step(6).output[:contents_changed],
 "current_request_id"=>nil,
 "current_timezone"=>"Europe/Copenhagen",
 "current_user_id"=>13,
 "current_organization_id"=>1,
 "current_location_id"=>2}
Output:
{}

I filed a GitHub issue: https://github.com/NVIDIA/yum-packaging-precompiled-kmod/issues/19

Still waiting on access to RH Satellite, in the meantime I tried using pulp (thanks for the tip) but was not able to reproduce the error with:

  • pulp_rpm: 3.12.0
  • pulp_core: 3.13.0
  • pulp-cli: 0.9.0

I installed the pulp-cli dependency

$ pip install "pulp-cli[pygments]"
pulp-cli[pygments] (0.9.0)
toml==0.10.2 (0.10.2)
click-shell~=2.0 (2.0)
requests~=2.25.1 (2.25.1)
click<8.0.0 (7.1.2)
PyYAML~=5.4.1 (5.4.1)
packaging (20.9)
pygments (2.4.2)
certifi>=2017.4.17 (2021.5.30)
chardet<5,>=3.0.2 (3.0.4)
idna<3,>=2.5 (2.8)
urllib3<1.27,>=1.21.1 (1.25.7)
pyparsing>=2.0.2 (2.4.7)

Then followed the setup instructions here: Pulp in One Container | software repository management

$ mkdir pulp
$ cd pulp
$ mkdir settings pulp_storage pgsql container
$ echo "CONTENT_ORIGIN='http://$(hostname):8080'
ANSIBLE_API_HOSTNAME='http://$(hostname):8080'
ANSIBLE_CONTENT_HOSTNAME='http://$(hostname):8080/pulp/content'
TOKEN_AUTH_DISABLED=True" >> settings/settings.py
$ podman run --detach --publish 8080:80 --name pulp --volume "$(pwd)/settings":/etc/pulp:Z \
--volume "$(pwd)/pulp_storage":/var/lib/pulp:Z --volume "$(pwd)/pgsql":/var/lib/pgsql:Z \
--volume "$(pwd)/containers":/var/lib/containers:Z --device /dev/fuse pulp/pulp
$ podman exec -it pulp bash -c 'pulpcore-manager reset-admin-password'
$ pulp config create --username admin --base-url http://localhost:8080 --password xxxxxx

Created a RPM remote and then a local RPM repository to sync to

$ pulp rpm remote create --name cuda-rhel8-x86 --url http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64
$ pulp rpm repository create --name cuda-rhel8-repo
$ pulp rpm repository sync --name cuda-rhel8-repo --remote cuda-rhel8-x86
Started background task /pulp/api/v3/tasks/f56bdb10-4ded-4066-b0b6-c9e9700cfe92/
........................................................................................................................

It seemed to do things in the background

$ pulp task list
[
  {
    "pulp_href": "/pulp/api/v3/tasks/f56bdb10-4ded-4066-b0b6-c9e9700cfe92/",
    "pulp_created": "2021-06-11T00:31:13.765493Z",
    "state": "running",
    "name": "pulp_rpm.app.tasks.synchronizing.synchronize",
    "logging_cid": "619ea9b03c6a43a5b8b8855c2f89b9e8",
    "started_at": "2021-06-11T00:31:13.950392Z",
    "finished_at": null,
    "error": null,
    "worker": "/pulp/api/v3/workers/86259495-8eed-4b75-a792-eb34d3c20fcb/",
    "parent_task": null,
    "child_tasks": [],
    "task_group": null,
    "progress_reports": [
      {
        "message": "Associating Content",
        "code": "associating.content",
        "state": "running",
        "total": null,
        "done": 0,
        "suffix": null
      },
      {
        "message": "Parsed Packages",
        "code": "sync.parsing.packages",
        "state": "completed",
        "total": 1297,
        "done": 1297,
        "suffix": null
      },
      {
        "message": "Parsed Modulemd",
        "code": "sync.parsing.modulemds",
        "state": "completed",
        "total": 14,
        "done": 14,
        "suffix": null
      },
      {
        "message": "Parsed Modulemd-defaults",
        "code": "sync.parsing.modulemd_defaults",
        "state": "completed",
        "total": 1,
        "done": 1,
        "suffix": null
      },
      {
        "message": "Downloading Metadata Files",
        "code": "sync.downloading.metadata",
        "state": "completed",
        "total": null,
        "done": 5,
        "suffix": null
      },
      {
        "message": "Downloading Artifacts",
        "code": "sync.downloading.artifacts",
        "state": "running",
        "total": null,
        "done": 291,
        "suffix": null
      }
    ],
    "created_resources": [
      null
    ],
    "reserved_resources_record": [
      "/pulp/api/v3/remotes/rpm/rpm/9daad119-5ce1-40f5-a1c9-8382cd7556e8/",
      "/pulp/api/v3/repositories/rpm/rpm/7a15c101-0e22-4098-891d-9f9d8c4fca43/"
    ]
  },

Checking the status

$ curl localhost:8080/pulp/api/v3/status/ | jq '.'
{
  "versions": [
    {
      "component": "core",
      "version": "3.13.0"
    },
    {
      "component": "rpm",
      "version": "3.12.0"
    },
...
  "storage": {
    "total": 421663252480,
    "used": 374672592896,
    "free": 25499992064
  }
}

And the local copy of the RPM packages

$ du -sh pulp_storage/
8.8G	pulp_storage/
$ file pulp_storage/media/artifact/00/c9*
pulp_storage/media/artifact/00/c91abec3f18a98c8ed24dd2081e996122c8f35f3e4759ee5c68fe8a42ef7a2: RPM v3.0 bin i386/x86_64 cuda-drivers-fabricmanager-460.27.04-1

It should be around 53 GB though for the 1297 RPMs, seems like a lot of packages are skipped. I see exactly 500 saved and I’m not sure if it is parsing the modularity stream YAML or not.

$ find pulp_storage/media/artifact/ -type f -exec file {} \; | awk '{print $NF}' | sort
cuda-10-1-10.1.243-1
cuda-10.1.243-1
...
cuda-11-3-11.3.1-1
...
cuda-tools-11-2-11.2.1-1
cuda-tools-11-2-11.2.2-1
nsight-systems-2019.3.7-2019.3.7.5_3837e03-0
nsight-systems-2019.5.2-2019.5.2.16_b54ef97-0

Thanks for giving this issue attention. :)

I can see it is also open at Redhat: 1920511 – 3rd party repository sync fails with 'InvalidStringData: strings in documents must be valid UTF-8'

Hello, I am a developer for Pulp / Satellite.

@kmittman For what it’s worth, that is Pulp 3, and Satellite is still (for the next couple of months, anyway) using Pulp 2, so if there was an issue with Satellite I wouldn’t necessarily expect it to have presented on the Pulp 3 installation you tested on.

But even for Satellite / Pulp 2, we have been trying and failing to reproduce this for a while now. And we have gotten reports from users who have said this spontaneously began working for them again, recently. It is very strange. There were no code changes in Pulp 2 / Satellite within the relevant time window, either, to the best of my knowledge.

edit: disregard speculation, I believe I may have figured out what the issue is and its not (directly) related to Nvidia’s metadata.

[0] https://github.com/NVIDIA/yum-packaging-precompiled-kmod/issues/19#issuecomment-859551428

Interesting thing is - what is different for those users where it works as intended?

What is your theory here, dalley? :)

The original bug report was for the ppc64le arch repo, where it can no longer be reproduced, and the current reports are about the x86_64 repo, which worked originally, but is now broken.

As for the actual issue, it looks like the code attempted to store some BSON-encoded data in MongoDB without first telling MongoDB to not treat it as UTF-8, which is the default. And it just so happens that 99.9% of the time the binary data happens to be valid UTF-8 and worked, anyway. But in this particular case, with this specific arrangement of data, it isn’t, and little changes to the repository over time “magically” fixed it and / or broke it again.

Watch the bugzilla for updates, we’ll push a fix as soon as we can.

I’ll be so glad when we’re moved completely off of MongoDB. Not much longer, now…

1 Like

Thank you for looking into this @dalley
Please let me know if there is anything I can do to help.

My understanding from Red Hat, is that this is fixed now, so I am closing the GitHub issue: Unable to sync repository with pulp (RH satellite) · Issue #19 · NVIDIA/yum-packaging-precompiled-kmod · GitHub

@qfz769 and @stuart4 please re-open if you experience this issue again in the future.

Hi, I am still having the same issue. The RHEL7/EL7 repos sync fine, but the RHEL8/EL8 still give the same errors.

To say it is fixed, is a bit too far to go.

Underlying issue in pulp is corrected.
Problem is probably still in forman.
RedHat confirms to me in a ticket that this will be fixed in a minor release (satellite 6.9.z) sometime, and provides a workaround:

# cp /usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/modules.py /usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/modules.py-backup

Edit:

# vim /usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/modules.py


    profile_defaults = {}
    for stream, defaults in module.peek_profile_defaults().items():
        profile_defaults[stream] = defaults.get()
    return bson.BSON.encode(profile_defaults)        <-----

Change to :


    return bson.binary.Binary(bson.BSON.encode(profile_defaults))           <---

Restart the services and try to sync the repo:
# satellite-maintain service restart
or foreman:
# foreman-maintain service restart

The latest version of RH Satellite has the patch fix for this, based on the comments here: Unable to sync repository with pulp (RH satellite) · Issue #19 · NVIDIA/yum-packaging-precompiled-kmod · GitHub