From b859743694e448cbae759b3f2d506478f4480917 Mon Sep 17 00:00:00 2001 From: Samuel Beaulieu Date: Mon, 25 Jul 2022 11:00:59 -0500 Subject: [PATCH] (maint) Bump version to 2.4.0 Upgrade to jruby 9.3.6.0 Remove workaround for jruby 9.2 using JRUBY_OPTS=-Xinvokedynamic.yield=false Removed unused dependency nokogiri? --- .github/workflows/release.yml | 4 +- .github/workflows/testing.yml | 6 +-- Gemfile.lock | 82 +++++++++++++---------------------- README.md | 4 -- docker/Dockerfile | 4 +- docker/docker-compose.yml | 1 - docker/update-gemfile-lock.sh | 2 +- lib/vmpooler/version.rb | 2 +- update-gemfile-lock.sh | 2 +- vmpooler.gemspec | 2 - 10 files changed, 38 insertions(+), 71 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d01a8b..752771e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,10 +20,10 @@ jobs: draft: false prerelease: false generateReleaseNotes: true - - name: Install Ruby jruby-9.2.12.0 + - name: Install Ruby jruby-9.3.6.0 uses: ruby/setup-ruby@v1 with: - ruby-version: 'jruby-9.2.12.0' + ruby-version: 'jruby-9.3.6.0' - name: Build gem run: gem build *.gemspec - name: Publish gem diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index ec96927..068495e 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -18,8 +18,7 @@ jobs: strategy: matrix: ruby-version: - # - '2.5.8' - - 'jruby-9.2.12.0' + - 'jruby-9.3.6.0' steps: - uses: actions/checkout@v2 - name: Set up Ruby @@ -35,8 +34,7 @@ jobs: strategy: matrix: ruby-version: - # - '2.5.8' - - 'jruby-9.2.12.0' + - 'jruby-9.3.6.0' steps: - uses: actions/checkout@v2 - name: Set up Ruby diff --git a/Gemfile.lock b/Gemfile.lock index 3ad22c0..82f27b9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,12 +1,11 @@ PATH remote: . specs: - vmpooler (2.3.0) + vmpooler (2.4.0) concurrent-ruby (~> 1.1) connection_pool (~> 2.2) deep_merge (~> 1.2) net-ldap (~> 0.16) - nokogiri (~> 1.10) opentelemetry-exporter-jaeger (= 0.20.1) opentelemetry-instrumentation-concurrent_ruby (= 0.19.2) opentelemetry-instrumentation-http_client (= 0.19.4) @@ -30,54 +29,30 @@ GEM ast (2.4.2) bindata (2.4.10) builder (3.2.4) - climate_control (1.0.1) + climate_control (1.2.0) coderay (1.1.3) concurrent-ruby (1.1.10) connection_pool (2.2.5) deep_merge (1.2.2) diff-lcs (1.5.0) docile (1.4.0) - faraday (1.10.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) + faraday (2.3.0) + faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.3) - multipart-post (>= 1.2, < 3) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) + faraday-net_http (2.0.3) ffi (1.15.5-java) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) method_source (1.0.0) - mock_redis (0.31.0) + mock_redis (0.32.0) ruby2_keywords - multipart-post (2.1.1) - mustermann (1.1.1) + mustermann (2.0.2) ruby2_keywords (~> 0.0.1) - net-ldap (0.17.0) + net-ldap (0.17.1) nio4r (2.5.8) nio4r (2.5.8-java) - nokogiri (1.12.5-java) - racc (~> 1.4) - nokogiri (1.12.5-x86_64-linux) - racc (~> 1.4) - opentelemetry-api (1.0.1) - opentelemetry-common (0.19.3) + opentelemetry-api (1.0.2) + opentelemetry-common (0.19.6) opentelemetry-api (~> 1.0) opentelemetry-exporter-jaeger (0.20.1) opentelemetry-api (~> 1.0) @@ -101,13 +76,15 @@ GEM opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.19.3) opentelemetry-instrumentation-base (~> 0.19.0) + opentelemetry-registry (0.1.0) + opentelemetry-api (~> 1.0.1) opentelemetry-resource_detectors (0.19.1) google-cloud-env opentelemetry-sdk - opentelemetry-sdk (1.0.2) + opentelemetry-sdk (1.1.0) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) + opentelemetry-registry (~> 0.1) opentelemetry-semantic_conventions opentelemetry-semantic_conventions (1.8.0) opentelemetry-api (~> 1.0) @@ -127,17 +104,15 @@ GEM nio4r (~> 2.0) puma (5.6.4-java) nio4r (~> 2.0) - racc (1.6.0) - racc (1.6.0-java) - rack (2.2.3) - rack-protection (2.2.0) + rack (2.2.4) + rack-protection (2.2.2) rack - rack-test (1.1.0) - rack (>= 1.0, < 3) + rack-test (2.0.2) + rack (>= 1.3) rainbow (3.1.1) rake (13.0.6) - redis (4.6.0) - regexp_parser (2.3.1) + redis (4.7.1) + regexp_parser (2.5.0) rexml (3.2.5) rspec (3.11.0) rspec-core (~> 3.11.0) @@ -148,7 +123,7 @@ GEM rspec-expectations (3.11.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-mocks (3.11.0) + rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) rspec-support (3.11.0) @@ -161,7 +136,7 @@ GEM rubocop-ast (>= 1.17.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.17.0) + rubocop-ast (1.19.1) parser (>= 3.1.1.0) ruby-progressbar (1.11.0) ruby2_keywords (0.0.5) @@ -171,10 +146,10 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - sinatra (2.2.0) - mustermann (~> 1.0) + sinatra (2.2.2) + mustermann (~> 2.0) rack (~> 2.2) - rack-protection (= 2.2.0) + rack-protection (= 2.2.2) tilt (~> 2.0) spicy-proton (2.1.14) bindata (~> 2.3) @@ -183,14 +158,15 @@ GEM statsd-ruby (1.5.0) thor (1.2.1) thrift (0.16.0) - tilt (2.0.10) - unicode-display_width (2.1.0) + tilt (2.0.11) + unicode-display_width (2.2.0) yarjuf (2.0.0) builder rspec (~> 3) PLATFORMS universal-java-1.8 + universal-java-11 x86_64-linux DEPENDENCIES @@ -206,4 +182,4 @@ DEPENDENCIES yarjuf (>= 2.0) BUNDLED WITH - 2.3.10 + 2.3.18 diff --git a/README.md b/README.md index ece9e84..578547d 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,6 @@ VMPooler itself and the dev environment talked about below require additional Ru Configuration for VMPooler may be provided via environment variables, or a configuration file. -### Note on JRuby 9.2.11.x - -We have found when running VMPooler on JRuby 9.2.11.x we occasionally encounter a stack overflow error that causes the pool\_manager application component to fail and stop doing work. To address this issue on JRuby 9.2.11.x we recommend setting the JRuby option `invokedynamic.yield=false`. To set this with JRuby 9.2.11.1 you can specify the environment variable `JRUBY_OPTS` with the value `-Xinvokedynamic.yield=false`. - The provided configuration defaults are reasonable for small VMPooler instances with a few pools. If you plan to run a large VMPooler instance it is important to consider configuration values appropriate for the instance of your size in order to avoid starving the provider, or Redis, of connections. VMPooler uses a connection pool for Redis to improve efficiency and ensure thread safe usage. At Puppet, we run an instance with about 100 pools at any given time. We have to provide it with 200 Redis connections to the Redis connection pool, and a timeout for connections of 40 seconds, to avoid timeouts. Because metrics are generated for connection available and waited, your metrics provider will need to be able to cope with this volume. Prometheus or StatsD is recommended to ensure metrics get delivered reliably. diff --git a/docker/Dockerfile b/docker/Dockerfile index 856f8fd..9e18dfd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,12 @@ # This Dockerfile is intended to be used with the # docker-compose file in the same directory. -FROM jruby:9.2-jdk +FROM jruby:9.3-jdk ENV RACK_ENV=production RUN apt-get update -qq && \ - apt-get install -y --no-install-recommends make && \ + apt-get install -y --no-install-recommends make git && \ apt-get clean autoclean && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 917eb4a..af102bd 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -18,7 +18,6 @@ services: - VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml - REDIS_SERVER=redislocal - LOGFILE=/dev/null - - JRUBY_OPTS=-Xinvokedynamic.yield=false - VMPOOLER_TRACING_ENABLED=true - VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces image: vmpooler-local diff --git a/docker/update-gemfile-lock.sh b/docker/update-gemfile-lock.sh index 6fc8163..e756f73 100755 --- a/docker/update-gemfile-lock.sh +++ b/docker/update-gemfile-lock.sh @@ -4,5 +4,5 @@ docker run -it --rm \ -v $(pwd)/docker:/app \ -v $(pwd):/app/vmpooler-source \ $(grep ^FROM docker/Dockerfile |cut -d ' ' -f2) \ - /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' + /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make git && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' rmdir docker/vmpooler-source diff --git a/lib/vmpooler/version.rb b/lib/vmpooler/version.rb index 53179fc..e07a4ef 100644 --- a/lib/vmpooler/version.rb +++ b/lib/vmpooler/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Vmpooler - VERSION = '2.3.0' + VERSION = '2.4.0' end diff --git a/update-gemfile-lock.sh b/update-gemfile-lock.sh index 528add0..18c4000 100755 --- a/update-gemfile-lock.sh +++ b/update-gemfile-lock.sh @@ -3,4 +3,4 @@ docker run -it --rm \ -v $(pwd):/app \ $(grep ^FROM docker/Dockerfile |cut -d ' ' -f2) \ - /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' + /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make git && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' diff --git a/vmpooler.gemspec b/vmpooler.gemspec index e71df5b..9e3fb3a 100644 --- a/vmpooler.gemspec +++ b/vmpooler.gemspec @@ -11,7 +11,6 @@ Gem::Specification.new do |s| s.summary = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' s.homepage = 'https://github.com/puppetlabs/vmpooler' s.license = 'Apache-2.0' - s.required_ruby_version = Gem::Requirement.new('>= 2.3.0') s.files = Dir[ "bin/*", "lib/**/*" ] s.bindir = 'bin' @@ -21,7 +20,6 @@ Gem::Specification.new do |s| s.add_dependency 'connection_pool', '~> 2.2' s.add_dependency 'deep_merge', '~> 1.2' s.add_dependency 'net-ldap', '~> 0.16' - s.add_dependency 'nokogiri', '~> 1.10' s.add_dependency 'opentelemetry-exporter-jaeger', '= 0.20.1' s.add_dependency 'opentelemetry-instrumentation-concurrent_ruby', '= 0.19.2' s.add_dependency 'opentelemetry-instrumentation-http_client', '= 0.19.4'