New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(maint) Pin concurrent-ruby, puppet 6.14 compat, bump rake #69
Conversation
Codecov Report
@@ Coverage Diff @@
## master #69 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 9 9
Lines 366 369 +3
=========================================
+ Hits 366 369 +3
Continue to review full report at Codecov.
|
53ca0d3
to
c5b001a
Compare
This commit addresses some bit rot that has happened in ace. 1. The concurrent-ruby 1.1.6 release triggers a seg fault in MRI ruby 2.5. There is a PR to concurrent ruby ruby-concurrency/concurrent-ruby#856 which I have verified fixes the seg fault but has not been merged/released. For now I pinned to 1.1.5 which does not have the issue. 2. The puppet 6.14.0 release included some changes that were incompatable with ace. First is the code loading for subclassing `Puppet::Configurer`. This was addressed in `ace` by simply loading all of puppet before `puppet/configurer`. The second issue is that previously puppet's logic for figuring out which server to connect to (based on SRV settings, server_list or Puppet[:ca_server] vs Puppet[:server} was spread out all over the place. Puppet switched to using a new http client in 6.14.0 So the logic for resolving which host to connect to is based on a set of resolvers. The change in behavior is that previous ace was pushing `:server` onto the context and puppet would sometimes look that value up when making a connection: https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/connection.rb#L31 3. Rake was bumped due to some CVE that did not really affect our project.
@@ -12,7 +12,7 @@ group :tests do | |||
end | |||
|
|||
group :development do | |||
gem 'bolt', git: 'https://github.com/puppetlabs/bolt', branch: 'master' | |||
# gem 'bolt', git: 'https://github.com/puppetlabs/bolt', branch: 'master' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: revert when bolt 2.x compat is done
concurrent-ruby was locked to 1.1.5 in puppetlabs#69 due to an issue in 1.1.6. A fix for that was released on concurrent-ruby-1.1.7: ruby-concurrency/concurrent-ruby#856 Recently, in puppet-runtime, concurrent-ruby was bumped to 1.1.8 https://github.com/puppetlabs/puppet-runtime/pull/446/files#diff-6393a204a090900f17b88f58f21f2b5c355271b5e8df85328a80accbc2c503e0R2 making ruby pe-ace-server unable to start: ``` -- Unit pe-ace-server.service has begun starting up. May 17 08:15:28 main-wisdom puma[15711]: /opt/puppetlabs/puppet/lib/ruby/2.5.0/rubygems/dependency.rb:312:in `to_specs’: Could not find ‘concurrent-ruby’ (= 1.1.5) - did find: [concurrent-ruby-1.1.8] (Gem::MissingSpecVersionError) ``` This commit removes the lock of concurrent-ruby as the upstream issue was fixed and release.
The concurrent-ruby 1.1.6 release triggers a seg fault in MRI ruby 2.5. There is a PR to concurrent ruby RubyThreadLocalVar: rely on GIL on MRI to avoid problems with thread/mutex/queue in finalizers ruby-concurrency/concurrent-ruby#856 which I have verified fixes the seg fault but has not been merged/released. For now I pinned to 1.1.5 which does not have the issue.
The puppet 6.14.0 release included some changes that were incompatable with ace. First is the code loading for subclassing
Puppet::Configurer
. This was addressed inace
by simply loading all of puppet beforepuppet/configurer
. The second issue is that previously puppet's logic for figuring out which server to connect to (based on SRV settings, server_list or Puppet[:ca_server] vs Puppet[:server} was spread out all over the place. Puppet switched to using a new http client in 6.14.0 So the logic for resolving which host to connect to is based on a set of resolvers.The change in behavior is that previous ace was pushing
:server
onto the context and puppet would sometimes look that value up when making a connection: https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/connection.rb#L31Rake was bumped due to some CVE that did not really affect our project.