0

Issue : After successful installation of Ruby in AIX 7.2 using YUM, the error below show after running gem search puppet. Google does not provide any details for the error below, but I'm suspecting it is related to OpenSSL.

SERVER DETAILS :

Operating System : AIX
bash-4.4# oslevel
7.2.0.0
bash-4.4# ruby -v
ruby 2.4.4p296 (2018-03-28 revision 63013) [powerpc-aix6.1.0.0]
bash-4.4# gem -v
2.6.14.1

ERROR DETAILS :

bash-4.4# gem search puppet

REMOTE GEMS

/opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': load failed - /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so. Please issue below command for detailed reasons: (LoadError)
        /usr/sbin/execerror ruby "30 /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so" "36 X509_REVOKED_dup 475 /usr/lib/libcrypto.a[libcrypto64.so.1.0.0]" "36 X509_STORE_CTX_get0_store 633 /usr/lib/libcrypto.a[libcrypto64.so.1.0.0]" "36 SSL_is_server 796 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_get0_alpn_selected 837 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_CTX_set_alpn_select_cb 838 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_CTX_set_alpn_protos 839 /usr/lib/libssl.a[libssl64.so.1.0.0]" "2 /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so" "6 8"
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/openssl.rb:13:in `<top (required)>'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/net/https.rb:23:in `<top (required)>'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request.rb:49:in `configure_connection_for_https'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request/https_pool.rb:6:in `setup_connection'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request/http_pool.rb:39:in `make_connection'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request/http_pool.rb:20:in `checkout'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request.rb:132:in `connection_for'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request.rb:187:in `perform_request'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/request.rb:156:in `fetch'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/remote_fetcher.rb:368:in `request'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/remote_fetcher.rb:251:in `fetch_http'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/remote_fetcher.rb:292:in `fetch_path'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/remote_fetcher.rb:327:in `cache_update_path'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/source.rb:190:in `load_specs'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/spec_fetcher.rb:263:in `tuples_for'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/spec_fetcher.rb:227:in `block in available_specs'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/source_list.rb:98:in `each'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/source_list.rb:98:in `each_source'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/spec_fetcher.rb:223:in `available_specs'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/spec_fetcher.rb:148:in `detect'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/commands/query_command.rb:175:in `show_gems'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/commands/query_command.rb:117:in `block in execute'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/commands/query_command.rb:117:in `each'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/commands/query_command.rb:117:in `execute'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/command.rb:310:in `invoke_with_build_args'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/command_manager.rb:169:in `process_args'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/command_manager.rb:139:in `run'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/gem_runner.rb:55:in `run'
        from /usr/bin/gem:21:in `<main>'

Output of ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'

ruby 2.4.4p296 (2018-03-28 revision 63013) [powerpc-aix6.1.0.0]
/opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': load failed - /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so. Please issue below command for detailed reasons: (LoadError)
        /usr/sbin/execerror ruby "30 /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so" "36 X509_REVOKED_dup 475 /usr/lib/libcrypto.a[libcrypto64.so.1.0.0]" "36 X509_STORE_CTX_get0_store 633 /usr/lib/libcrypto.a[libcrypto64.so.1.0.0]" "36 SSL_is_server 796 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_get0_alpn_selected 837 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_CTX_set_alpn_select_cb 838 /usr/lib/libssl.a[libssl64.so.1.0.0]" "36 SSL_CTX_set_alpn_protos 839 /usr/lib/libssl.a[libssl64.so.1.0.0]" "2 /opt/freeware/lib64/ruby/2.4.0/powerpc-aix6.1.0.0/openssl.so" "6 8"
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/openssl.rb:13:in `<top (required)>'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /opt/freeware/lib64/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
BookOfGreg
  • 3,550
  • 2
  • 42
  • 56
adeveas
  • 1
  • 1
  • Do you have OpenSSL Installed? Did your ruby compile with it? What is the output of `ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'` Edit: This may help: https://stackoverflow.com/questions/22993541/how-can-i-ensure-that-ruby-uses-an-openssl-not-vulnerable-to-heartbleed – BookOfGreg Jul 26 '18 at 09:42
  • 1
    Try using the AIO package for Puppet instead. It would remove this issue and others. – Matthew Schuchard Jul 26 '18 at 13:18
  • Sorry for the delayed reply, as I was coming back from work this week. – adeveas Aug 09 '18 at 02:09
  • @BookOfGreg, please see the output above. – adeveas Aug 09 '18 at 08:18
  • @Matt Schuchard, for the meantime, I think I will try to use puppet-agent module from Forge. Unfortunately, all of my agents are running in 3.4 and the module only supports greater than 3.7. I'll keep you updated. – adeveas Aug 09 '18 at 08:23
  • @adeveas Based on the fiddle output, you don't have OpenSSL Installed on the box. Please install it first and you may need to re-install ruby if it compiled without it. – BookOfGreg Aug 09 '18 at 09:10

0 Answers0