Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-12812

unable to converge state of running jenkins agent nodes due to ruby error

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: Continuous Integration
    • Labels:
      None

      Description

      It appears that the puppet rvm module is throwing errors because the rvm managed ruby install is broken, most likely due to a system package change.

      ==> el7-5: Error: /Stage[main]/Ruby::Dev/Package[bundler]/ensure: change from absent to latest failed: Could not update: Execution of '/usr/local/rvm/rubies/ruby-2.2.7/bin/gem install --no-rdoc --no-ri bundler' returned 1: Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.2.7@global/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb": /lib64/libcrypto.so.10: version `OPENSSL_1.0.2' not found (required by /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so) - /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so (LoadError)
      ==> el7-5: Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.2.7@global/gems/gem-wrappers-1.3.2/lib/rubygems_plugin.rb": /lib64/libcrypto.so.10: version `OPENSSL_1.0.2' not found (required by /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so) - /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so (LoadError)
      ==> el7-5: ERROR:  Loading command: install (LoadError)
      ==> el7-5: 	/lib64/libcrypto.so.10: version `OPENSSL_1.0.2' not found (required by /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so) - /usr/local/rvm/rubies/ruby-2.2.7/lib/ruby/2.2.0/x86_64-linux/openssl.so
      ==> el7-5: ERROR:  While executing gem ... (NoMethodError)
      ==> el7-5:     undefined method `invoke_with_build_args' for nil:NilClass
      
      

        Attachments

          Activity

          Hide
          jhoblitt Joshua Hoblitt added a comment -

          Unsurprisingly, there isn't a parameter on the rvm_system_ruby type to force a rebuild (such an option would be inherently non-idempotent):

          https://github.com/maestrodev/puppet-rvm/blob/master/lib/puppet/type/rvm_system_ruby.rb

          I may be easier to switch to a newer default ruby version rather than trying to fix the puppet rvm module to be able to recover some a broken ruby install.

          Show
          jhoblitt Joshua Hoblitt added a comment - Unsurprisingly, there isn't a parameter on the rvm_system_ruby type to force a rebuild (such an option would be inherently non-idempotent): https://github.com/maestrodev/puppet-rvm/blob/master/lib/puppet/type/rvm_system_ruby.rb I may be easier to switch to a newer default ruby version rather than trying to fix the puppet rvm module to be able to recover some a broken ruby install.
          Hide
          jhoblitt Joshua Hoblitt added a comment -

          The same problem occurs with ruby 2.4.2, the fault seem to be with the binary ruby builds rvm is publishing.

          https://github.com/rvm/rvm/issues/4234

          Show
          jhoblitt Joshua Hoblitt added a comment - The same problem occurs with ruby 2.4.2, the fault seem to be with the binary ruby builds rvm is publishing. https://github.com/rvm/rvm/issues/4234
          Hide
          jhoblitt Joshua Hoblitt added a comment -

          It turns out that the rvm_system_ruby default provider doesn't support the #instances method, which is require to purge unmanaged versions via the resources type. This has been reported upstream: https://github.com/maestrodev/puppet-rvm/issues/138

          Show
          jhoblitt Joshua Hoblitt added a comment - It turns out that the rvm_system_ruby default provider doesn't support the #instances method, which is require to purge unmanaged versions via the resources type. This has been reported upstream: https://github.com/maestrodev/puppet-rvm/issues/138
          Hide
          jhoblitt Joshua Hoblitt added a comment -

          A fix as been tested as working in a sandbox env, merged to master, and verified as working with the production nodes.

          Show
          jhoblitt Joshua Hoblitt added a comment - A fix as been tested as working in a sandbox env, merged to master, and verified as working with the production nodes.
          Hide
          jhoblitt Joshua Hoblitt added a comment - - edited

          I'm reopening this issue as I've noticed some obvious cleanup that can be done with how ruby is handled.

          Show
          jhoblitt Joshua Hoblitt added a comment - - edited I'm reopening this issue as I've noticed some obvious cleanup that can be done with how ruby is handled.
          Hide
          jhoblitt Joshua Hoblitt added a comment -

          A few minor cleanups have been merged, including being able to remove the puppet puppetlabs/ruby module completely.

          Show
          jhoblitt Joshua Hoblitt added a comment - A few minor cleanups have been merged, including being able to remove the puppet puppetlabs/ruby module completely.

            People

            • Assignee:
              jhoblitt Joshua Hoblitt
              Reporter:
              jhoblitt Joshua Hoblitt
              Watchers:
              Joshua Hoblitt
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Summary Panel