Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
RubyThreadLocalVar: rely on GIL on MRI to avoid problems with thread/mutex/queue in finalizers #856
I can confirm this patch avoids the segfault I was seeing. I was using ruby version:
Thank you so much @pitr-ch !
Example seg fault without this patch. With the patch there is no seg fault
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.
@pitr-ch is there anything I can do or testing that I can do to help get this merged? If not, does anyone have a smallish workaround while we wait for this patch to land? Thanks for your time and energy spent on this project!