Uploaded image for project: 'Puppet Server'
  1. Puppet Server
  2. SERVER-1454

JRuby Unit Test jobs failing b/c new json_pure version dropped pre-Ruby 2.0 support

    Details

    • Type: CI Blocker
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: SERVER 2.5.0
    • Component/s: None
    • Labels:
      None
    • CI Pipeline/s:
      platform puppetserver
    • Sub-team:
    • Story Points:
      2
    • Sprint:
      Server Emerald 2016-07-27, Server Emerald 2016-08-10
    • Release Notes:
      Not Needed

      Description

      The recently released json_pure gem, 2.0.2, intentionally dropped support for running under pre-Ruby 2.0. We run with Ruby 1.9.3 for the JRuby Unit Tests in the Puppet Server pipeline and pick up json_pure from the core Puppet repo's Gemfile, which does not pin the version of json_pure that it pulls in (on Hiera's behalf). This is causing the Puppet Server JRuby Unit Tests to fail for all three branches - 1.x, stable, and master.

      A snippet from https://jenkins.puppetlabs.com/job/platform_puppetserver_unit-jruby_stable/JDK=openjdk7,label=unit/135/console:

      00:47:06       PATH='/var/lib/jenkins/workspace/platform_puppetserver_unit-jruby_stable/JDK/openjdk7/label/unit/vendor/test_gems/bin:/usr/lib/jvm/java-7-openjdk-amd64/bin:/usr/local/rvm/gems/ruby-1.9.3-p484/bin:/usr/local/rvm/gems/ruby-1.9.3-p484@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p484/bin:/usr/local/rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/puppetlabs/bin'       BUNDLE_GEMFILE='/var/lib/jenkins/workspace/platform_puppetserver_unit-jruby_stable/JDK/openjdk7/label/unit/ruby/puppet/Gemfile'       GEM_HOME='/var/lib/jenkins/workspace/platform_puppetserver_unit-jruby_stable/JDK/openjdk7/label/unit/vendor/test_gems' GEM_PATH='/var/lib/jenkins/workspace/platform_puppetserver_unit-jruby_stable/JDK/openjdk7/label/unit/vendor/test_gems'       lein run -m org.jruby.Main         -S bundle install --path='/var/lib/jenkins/workspace/platform_puppetserver_unit-jruby_stable/JDK/openjdk7/label/unit/vendor/test_bundle'
      00:47:06 /usr/local/rvm/gems/ruby-1.9.3-p484/gems/rake-11.2.2/lib/rake/file_utils.rb:56 warning: system does not support options in JRuby yet: {}
      00:47:49 Fetching gem metadata from https://rubygems.org/
      00:47:54 Fetching version metadata from https://rubygems.org/
      00:47:57 Resolving dependencies................................................
      00:47:58 Installing rake 10.1.1
      00:47:59 Installing addressable 2.4.0
      00:48:00 Installing builder 3.2.2
      00:48:01 Installing safe_yaml 1.0.4
      00:48:01 Installing diff-lcs 1.2.5
      00:48:02 Installing facter 2.4.6
      00:48:05 Installing hashdiff 0.3.0
      00:48:05 Installing json_pure 2.0.2
      00:48:05 
      00:48:05 Gem::InstallError: json_pure requires Ruby version ~> 2.0.
      00:48:06 Installing json-schema 2.1.1
      00:48:06 Installing metaclass 0.0.4
      00:48:07 Installing msgpack 1.0.0
      00:48:07 Installing multi_json 1.7.7
      00:48:08 Installing net-ssh 2.9.4
      00:48:09 Installing puppet-lint 2.0.0
      00:48:10 Installing rspec-support 3.5.0
      00:48:10 Installing rack 1.6.4
      00:48:11 Installing thread_safe 0.3.5
      00:48:12 Installing vcr 2.9.3
      00:48:13 Using bundler 1.12.5
      00:48:13 Installing puppet-syntax 2.1.0
      00:48:14 Installing crack 0.4.3
      00:48:14 An error occurred while installing json_pure (2.0.2), and Bundler cannot
      00:48:14 continue.
      00:48:14 Make sure that `gem install json_pure -v '2.0.2'` succeeds before bundling.
      00:48:15 rake aborted!
      00:48:15 Command failed with status (5): [      PATH='/var/lib/jenkins/workspace/pla...]
      

      The json_pure change was confirmed by the maintainer as intentional, see: https://github.com/flori/json/issues/298. For this reason, core Puppet's Gemfile will likely be changed to pin the version of json_pure being pulled in when run under Ruby 1.9.3. See PUP-6551 and the associated PR. We should probably just wait until that PR lands and update Puppet submodule pins from Puppet Server to reference the new Gemfile versions.

      We should probably just wait until core Ruby Puppet's Gemfile has been updated to

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                jeremy.barlow Jeremy Barlow
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Zendesk Support