-
Bug
-
Resolution: Unresolved
-
Blocker
-
stream
-
1
-
False
-
Artemis Sprint 158
-
sat-artemis
-
None
-
None
-
None
-
None
Description of problem:
When running a complete sync on a capsule with a container repo in it, there is an error:
undefined method `find' for nil:NilClass --- - "/usr/share/gems/gems/katello-4.20.0.pre.master/app/services/katello/pulp3/task.rb:84:in `task_group_href'" - "/usr/share/gems/gems/katello-4.20.0.pre.master/app/lib/actions/pulp3/abstract_async_task.rb:147:in `block in add_task_groups'" - "/usr/share/gems/gems/katello-4.20.0.pre.master/app/lib/actions/pulp3/abstract_async_task.rb:146:in `each'" - "/usr/share/gems/gems/katello-4.20.0.pre.master/app/lib/actions/pulp3/abstract_async_task.rb:146:in `add_task_groups'" - "/usr/share/gems/gems/katello-4.20.0.pre.master/app/lib/actions/pulp3/abstract_async_task.rb:129:in `external_task='" - "/usr/share/gems/gems/dynflow-1.9.3/lib/dynflow/action/polling.rb:84:in `initiate_external_action'" ...
How reproducible:
Likely 100%
Is this issue a regression from an earlier version:
Yes
Steps to Reproduce:
In my case, I was testing N-2 capsules, which I think should not be necessary. But:
1. Create a Satellite stream with a 6.17 capsule
2. Sync a container repo normally to the capsule (it should pass)
3. Sync the capsule now using "complete sync"
Actual behavior:
Dynflow error
Expected behavior:
Sync passes fine
Business Impact / Additional info:
This relates to https://issues.redhat.com/browse/SAT-39251, but now the Pulp container plugin is the problem.
If you look in Dynflow for the normal container sync, you'll find that the RefreshRepos step has an output like:
--- pulp_tasks: [] task_groups: []
This is because the bindings are incorrectly returning no information for the task:
irb(main):002:0> ::Katello::Repository.find(2).backend_service(SmartProxy.first).refresh_mirror_entities => [#<PulpContainerClient::ContainerContainerRemoteResponse:0x00007f8eec0a2710 @name=nil, @upstream_name=nil, @url=nil>]
The root cause is that Satellite is using Pulp's generated API bindings from rubygems, but they technically only work with the latest version of Pulpcore. To fix this, unless we start generating the bindings ourselves, we'll need to either (a) pin the pulp container bindings indefinitely (bad idea for fixes/security), or (b) patch the bindings ourselves from Katello.