Bug 2182861

Summary: Generating SCAP report fails with cannot load such file -- json (LoadError) error on RHEL 9
Product: Red Hat Satellite Reporter: Manu Sunil <msunil>
Component: SCAP PluginAssignee: satellite6-bugs <satellite6-bugs>
Status: NEW --- QA Contact: Satellite QE Team <sat-qe-bz-list>
Severity: low Docs Contact:
Priority: unspecified    
Version: 6.12.0CC: aruzicka, mhulan, nalfassi
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Manu Sunil 2023-03-29 19:39:10 UTC
Description of problem:

- Generating SCAP report fails with the following error on RHEL 9.

  ~~~
  cannot load such file -- json (LoadError)
  ~~~

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

- RHEL 9

How reproducible:

- In scenarios where rubygem-json is not installed. 

Steps to Reproduce:

1. Exclude the package rubygem-json from the repository. A CV filter can be used if the client is registered to a Satellite

2. Install the package `rubygem-foreman_scap_client`

3. Run `/usr/bin/foreman_scap_client`

Actual results:

- foreman_scap_client fails with the following error.

  ~~~
  # /usr/bin/foreman_scap_client 1
  <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- json (LoadError)
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from /usr/share/gems/gems/foreman_scap_client-0.5.0/lib/foreman_scap_client/base_client.rb:9:in `<top (required)>'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from /usr/share/gems/gems/foreman_scap_client-0.5.0/lib/foreman_scap_client/client.rb:1:in `<top (required)>'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from /usr/share/gems/gems/foreman_scap_client-0.5.0/lib/foreman_scap_client.rb:2:in `<top (required)>'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
      from /usr/share/gems/gems/foreman_scap_client-0.5.0/bin/foreman_scap_client:3:in `<top (required)>'
      from /usr/bin/foreman_scap_client:23:in `load'
      from /usr/bin/foreman_scap_client:23:in `<main>'
  ~~~

Expected results:

- Installation of rubygem-foreman_scap_client should fail if rubygem-json is not available for some reason. 

Additional info:

- There seems to be some issue with the dependencies.

- rubygem-foreman_scap_client can be installed with or without the rubygem-json package. See the transactions below. On the second transaction, rubygem-json package was filtered using CV filter.

  ~~~
  # dnf install rubygem-foreman_scap_client        

  Dependencies resolved.
  ==================================================================================================================================================================================
   Package                                        Architecture              Version                              Repository                                                    Size
  ==================================================================================================================================================================================
  Installing:
   rubygem-foreman_scap_client                    noarch                    0.5.0-1.el9sat                       satellite-client-6-for-rhel-9-x86_64-rpms                     25 k
  Installing dependencies:
   bzip2                                          x86_64                    1.0.8-8.el9                          rhel-9-for-x86_64-baseos-rpms                                 60 k
   libtool-ltdl                                   x86_64                    2.4.6-45.el9                         rhel-9-for-x86_64-appstream-rpms                              39 k
   libxslt                                        x86_64                    1.1.34-9.el9                         rhel-9-for-x86_64-appstream-rpms                             247 k
   openscap                                       x86_64                    1:1.3.6-4.el9                        rhel-9-for-x86_64-appstream-rpms                             2.0 M
   openscap-scanner                               x86_64                    1:1.3.6-4.el9                        rhel-9-for-x86_64-appstream-rpms                              61 k
   ruby                                           x86_64                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              45 k
   ruby-libs                                      x86_64                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                             3.3 M
   rubygem-json                                   x86_64                    2.5.1-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              63 k
   rubygem-psych                                  x86_64                    3.3.2-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              64 k
   rubygems                                       noarch                    3.2.33-160.el9_0                     rhel-9-for-x86_64-appstream-rpms                             310 k
   xmlsec1                                        x86_64                    1.2.29-9.el9                         rhel-9-for-x86_64-appstream-rpms                             193 k
   xmlsec1-openssl                                x86_64                    1.2.29-9.el9                         rhel-9-for-x86_64-appstream-rpms                              93 k
  Installing weak dependencies:
   ruby-default-gems                              noarch                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              50 k
   rubygem-bigdecimal                             x86_64                    3.0.0-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              60 k
   rubygem-bundler                                noarch                    2.2.33-160.el9_0                     rhel-9-for-x86_64-appstream-rpms                             460 k
   rubygem-io-console                             x86_64                    0.5.7-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              30 k
   rubygem-rdoc                                   noarch                    6.3.3-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                             444 k
  
  Transaction Summary
  ==================================================================================================================================================================================
  Install  18 Packages
  ~~~


  ~~~
  # dnf install rubygem-foreman_scap_client
  
  Dependencies resolved.
  ==================================================================================================================================================================================
   Package                                        Architecture              Version                              Repository                                                    Size
  ==================================================================================================================================================================================
  Installing:
   rubygem-foreman_scap_client                    noarch                    0.5.0-1.el9sat                       satellite-client-6-for-rhel-9-x86_64-rpms                     25 k
  Installing dependencies:
   bzip2                                          x86_64                    1.0.8-8.el9                          rhel-9-for-x86_64-baseos-rpms                                 60 k
   libtool-ltdl                                   x86_64                    2.4.6-45.el9                         rhel-9-for-x86_64-appstream-rpms                              39 k
   libxslt                                        x86_64                    1.1.34-9.el9                         rhel-9-for-x86_64-appstream-rpms                             247 k
   openscap                                       x86_64                    1:1.3.6-4.el9                        rhel-9-for-x86_64-appstream-rpms                             2.0 M
   openscap-scanner                               x86_64                    1:1.3.6-4.el9                        rhel-9-for-x86_64-appstream-rpms                              61 k
   ruby                                           x86_64                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              45 k
   ruby-libs                                      x86_64                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                             3.3 M
   rubygem-psych                                  x86_64                    3.3.2-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              64 k
   rubygems                                       noarch                    3.2.33-160.el9_0                     rhel-9-for-x86_64-appstream-rpms                             310 k
   xmlsec1                                        x86_64                    1.2.29-9.el9                         rhel-9-for-x86_64-appstream-rpms                             193 k
   xmlsec1-openssl                                x86_64                    1.2.29-9.el9                         rhel-9-for-x86_64-appstream-rpms                              93 k
  Installing weak dependencies:
   ruby-default-gems                              noarch                    3.0.4-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              50 k
   rubygem-bigdecimal                             x86_64                    3.0.0-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              60 k
   rubygem-bundler                                noarch                    2.2.33-160.el9_0                     rhel-9-for-x86_64-appstream-rpms                             460 k
   rubygem-io-console                             x86_64                    0.5.7-160.el9_0                      rhel-9-for-x86_64-appstream-rpms                              30 k
  
  Transaction Summary
  ==================================================================================================================================================================================
  Install  16 Packages
  ~~~

- rubygem-foreman_scap_client installation on RHEL 7 on the other hand fails if rubygem-json is not present.

  ~~~
  # yum install rubygem-foreman_scap_client
  Loaded plugins: product-id, search-disabled-repos, subscription-manager
  Resolving Dependencies
  --> Running transaction check
  ---> Package rubygem-foreman_scap_client.noarch 0:0.5.0-1.el7sat will be installed
  --> Processing Dependency: /usr/bin/ruby for package: rubygem-foreman_scap_client-0.5.0-1.el7sat.noarch
  --> Processing Dependency: bzip2 for package: rubygem-foreman_scap_client-0.5.0-1.el7sat.noarch
  --> Processing Dependency: openscap-scanner for package: rubygem-foreman_scap_client-0.5.0-1.el7sat.noarch
  --> Processing Dependency: ruby(release) for package: rubygem-foreman_scap_client-0.5.0-1.el7sat.noarch
  --> Processing Dependency: ruby(rubygems) for package: rubygem-foreman_scap_client-0.5.0-1.el7sat.noarch
  --> Running transaction check
  ---> Package bzip2.x86_64 0:1.0.6-13.el7 will be installed
  ---> Package openscap-scanner.x86_64 0:1.2.17-15.el7_9 will be installed
  --> Processing Dependency: openscap(x86-64) = 1.2.17-15.el7_9 for package: openscap-scanner-1.2.17-15.el7_9.x86_64
  --> Processing Dependency: libopenscap.so.8()(64bit) for package: openscap-scanner-1.2.17-15.el7_9.x86_64
  ---> Package ruby.x86_64 0:2.0.0.648-39.el7_9 will be installed
  --> Processing Dependency: rubygem(bigdecimal) >= 1.2.0 for package: ruby-2.0.0.648-39.el7_9.x86_64
  ---> Package ruby-libs.x86_64 0:2.0.0.648-39.el7_9 will be installed
  ---> Package rubygems.noarch 0:2.0.14.1-39.el7_9 will be installed
  --> Processing Dependency: rubygem(io-console) >= 0.4.2 for package: rubygems-2.0.14.1-39.el7_9.noarch
  --> Processing Dependency: rubygem(psych) >= 2.0.0 for package: rubygems-2.0.14.1-39.el7_9.noarch
  --> Processing Dependency: rubygem(rdoc) >= 4.0.0 for package: rubygems-2.0.14.1-39.el7_9.noarch
  --> Running transaction check
  ---> Package openscap.x86_64 0:1.2.17-15.el7_9 will be installed
  ---> Package rubygem-bigdecimal.x86_64 0:1.2.0-39.el7_9 will be installed
  ---> Package rubygem-io-console.x86_64 0:0.4.2-39.el7_9 will be installed
  ---> Package rubygem-psych.x86_64 0:2.0.0-39.el7_9 will be installed
  ---> Package rubygem-rdoc.noarch 0:4.0.0-39.el7_9 will be installed
  --> Processing Dependency: ruby(irb) = 2.0.0.648 for package: rubygem-rdoc-4.0.0-39.el7_9.noarch
  --> Processing Dependency: rubygem(json) >= 1.7.7 for package: rubygem-rdoc-4.0.0-39.el7_9.noarch
  --> Running transaction check
  ---> Package ruby-irb.noarch 0:2.0.0.648-39.el7_9 will be installed
  ---> Package rubygem-rdoc.noarch 0:4.0.0-39.el7_9 will be installed
  --> Processing Dependency: rubygem(json) >= 1.7.7 for package: rubygem-rdoc-4.0.0-39.el7_9.noarch
  --> Finished Dependency Resolution
  Error: Package: rubygem-rdoc-4.0.0-39.el7_9.noarch (rhel-7-server-rpms)
             Requires: rubygem(json) >= 1.7.7
   You could try using --skip-broken to work around the problem
   You could try running: rpm -Va --nofiles --nodigest
  ~~~