Bug 2225534

Summary: katello:reimport fails with "TypeError: no implicit conversion of String into Integer" when there are product contents to move
Product: Red Hat Satellite Reporter: Sayan Das <saydas>
Component: Hosts - ContentAssignee: Samir Jha <sajha>
Status: CLOSED ERRATA QA Contact: visawant
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.13.1CC: ahumbe, avnkumar, dhjoshi, jlenz, momran, pcreech, rlavi, visawant
Target Milestone: 6.15.0Keywords: Triaged
Target Release: Unused   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2266146 (view as bug list) Environment:
Last Closed: 2024-04-23 17:11:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sayan Das 2023-07-25 13:42:26 UTC
Description of problem:

foreman-rake katello:reimport would fail while importing "Katello::Content" and the failure is only observed when there are product contents to move and https://github.com/Katello/katello/blob/KATELLO-4.8/app/services/katello/product_content_importer.rb#L37-L44 code is triggered. 


Version-Release number of selected component (if applicable):

Satellite 6.13.1 


How reproducible:

Only on Customer's environment


Steps to Reproduce:
NA

Actual results:

# foreman-rake katello:reimport  --trace


** Invoke katello:reimport (first_time)
** Invoke dynflow:client (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute dynflow:client
** Invoke katello:check_ping (first_time)
** Invoke environment
** Invoke dynflow:client
** Execute katello:check_ping
** Execute katello:reimport
Importing Katello::Subscription
Importing Katello::Pool
Importing Katello::Content
rake aborted!
TypeError: no implicit conversion of String into Integer
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:39:in `[]'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:39:in `block in find_product_for_content'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `find'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:38:in `find_product_for_content'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:66:in `block in handle_product_moves'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:63:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:63:in `handle_product_moves'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:84:in `block in import'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:83:in `each'
/usr/share/gems/gems/katello-4.7.0.25/app/services/katello/product_content_importer.rb:83:in `import'
/usr/share/gems/gems/katello-4.7.0.25/app/models/katello/content.rb:55:in `block in import_all'


Expected results:

No such errors


Additional info:

For this specific user, following change fixed the issue:

diff --git a/app/services/katello/product_content_importer.rb b/app/services/katello/product_content_importer.rb
index b5e345e..6757768 100644
--- a/app/services/katello/product_content_importer.rb
+++ b/app/services/katello/product_content_importer.rb
@@ -36,7 +36,7 @@ module Katello
 
     def find_product_for_content(content_id)
       prod = @cp_products.find do |prod_json|
-        prod_json['productContent'].any? do |product_content_json|
+        prod_json.first&.[]('productContent')&.any? do |product_content_json|
           product_content_json["content"]["id"] == content_id
         end
       end


See next comments for more information.

Comment 4 Brad Buckingham 2023-10-30 11:29:29 UTC
Bulk setting Target Milestone = 6.15.0 where sat-6.15.0+ is set.

Comment 5 Samir Jha 2023-11-14 19:40:21 UTC
Created redmine issue https://projects.theforeman.org/issues/36920 from this bug

Comment 6 Bryan Kearney 2023-11-18 00:02:37 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/36920 has been resolved.

Comment 10 errata-xmlrpc 2024-04-23 17:11:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: Satellite 6.15.0 release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2024:2010