Skip to content
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

RubyThreadLocalVar: rely on GIL on MRI to avoid problems with thread/mutex/queue in finalizers #856

Merged
merged 1 commit into from Jul 20, 2020

Conversation

@pitr-ch
Copy link
Member

@pitr-ch pitr-ch commented Mar 1, 2020

fix #849
related to #808

…mutex/queue in finalizers
@fzakaria
Copy link
Collaborator

@fzakaria fzakaria commented Mar 2, 2020

Could you have reproduced it ?
i was not able to write a reproduction which made validating changes tougher.

@pitr-ch
Copy link
Member Author

@pitr-ch pitr-ch commented Mar 4, 2020

No, I do not have a reproducer. I will have to look up the people who had the original problem and ask them to try it.

@donoghuc
Copy link

@donoghuc donoghuc commented Mar 25, 2020

I can confirm this patch avoids the segfault I was seeing. I was using ruby version:

ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Thank you so much @pitr-ch !

Example seg fault without this patch. With the patch there is no seg fault

/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113: [BUG] Segmentation fault at 0x0000000000000050
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0128 p:---- s:0709 e:000708 CFUNC  :push
c:0127 p:0017 s:0704 e:000703 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_threa [FINISH]
c:0126 p:0012 s:0701 e:000700 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:155
c:0125 p:0021 s:0696 e:000695 TOP    /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/provider/group/ldap.rb:3 [FINISH]
c:0124 p:---- s:0693 e:000692 CFUNC  :load
c:0123 p:0041 s:0688 e:000687 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66
c:0122 p:0028 s:0679 e:000678 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:81 [FINISH]
c:0121 p:---- s:0674 e:000673 CFUNC  :each
c:0120 p:0012 s:0670 e:000669 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:79
c:0119 p:0012 s:0664 e:000663 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:215
c:0118 p:0282 s:0659 E:0021b0 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:127
c:0117 p:0013 s:0647 E:001ec0 CLASS  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type/group.rb:7
c:0116 p:0035 s:0644 e:000643 TOP    /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type/group.rb:6 [FINISH]
c:0115 p:---- s:0641 e:000640 CFUNC  :load
c:0114 p:0041 s:0636 e:000635 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66
c:0113 p:0015 s:0627 e:000626 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:201
c:0112 p:0118 s:0621 e:000620 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:172
c:0111 p:0015 s:0616 e:000615 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2183
c:0110 p:0007 s:0610 e:000609 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2125 [FINISH]
c:0109 p:---- s:0605 e:000604 CFUNC  :each
c:0108 p:0028 s:0601 e:000600 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2124
c:0107 p:0075 s:0597 e:000596 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2181
c:0106 p:0011 s:0589 e:000588 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2212
c:0105 p:0027 s:0584 e:000583 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:173 [FINISH]
c:0104 p:---- s:0580 e:000579 CFUNC  :each
c:0103 p:0007 s:0576 e:000575 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:172 [FINISH]
c:0102 p:---- s:0572 e:000571 CFUNC  :each
c:0101 p:0008 s:0568 e:000567 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:171
c:0100 p:0018 s:0563 e:000562 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:25
c:0099 p:0045 s:0558 e:000557 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:266
c:0098 p:0010 s:0553 e:000552 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction.rb:226
c:0097 p:0174 s:0549 E:001b38 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction.rb:176
c:0096 p:0007 s:0533 e:000532 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:240
c:0095 p:0003 s:0530 e:000529 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util.rb:521
c:0094 p:0023 s:0527 e:000526 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/2.5.0/benchmark.rb:308
c:0093 p:0011 s:0522 e:000521 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util.rb:520
c:0092 p:0014 s:0517 e:000516 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:239
c:0091 p:0022 s:0513 e:000512 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/log.rb:165
c:0090 p:0018 s:0507 e:000506 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction/report.rb:146
c:0089 p:0042 s:0502 e:000501 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:238
c:0088 p:0086 s:0496 e:000495 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/settings.rb:1070
c:0087 p:0348 s:0489 e:000488 METHOD /home/cas/working_dir/ace/lib/ace/puppet_util.rb:79
c:0086 p:0025 s:0480 e:000479 BLOCK  /home/cas/working_dir/ace/lib/ace/plugin_cache.rb:41
c:0085 p:0007 s:0477 e:000476 BLOCK  /home/cas/working_dir/ace/lib/ace/fork_util.rb:19 [FINISH]
c:0084 p:---- s:0471 e:000470 CFUNC  :fork
c:0083 p:0022 s:0467 e:000466 METHOD /home/cas/working_dir/ace/lib/ace/fork_util.rb:15
c:0082 p:0011 s:0458 e:000457 METHOD /home/cas/working_dir/ace/lib/ace/plugin_cache.rb:40
c:0081 p:0176 s:0450 e:000449 BLOCK  /home/cas/working_dir/ace/lib/ace/transport_app.rb:336 [FINISH]
c:0080 p:---- s:0436 e:000435 CFUNC  :call
c:0079 p:0011 s:0432 e:000431 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1636 [FINISH]
c:0078 p:0011 s:0427 e:000426 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:987
c:0077 p:0005 s:0424 e:000421 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1006
c:0076 p:0047 s:0418 e:000417 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:987
c:0075 p:0026 s:0414 e:000413 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1035 [FINISH]
c:0074 p:---- s:0411 e:000410 CFUNC  :catch
c:0073 p:0277 s:0406 e:000405 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1033
c:0072 p:0010 s:0394 e:000393 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:985 [FINISH]
c:0071 p:---- s:0387 e:000386 CFUNC  :each
c:0070 p:0034 s:0383 e:000382 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:984
c:0069 p:0044 s:0376 e:000375 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1098
c:0068 p:0003 s:0373 e:000372 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072 [FINISH]
c:0067 p:---- s:0370 e:000369 CFUNC  :catch
c:0066 p:0007 s:0365 e:000364 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072
c:0065 p:0022 s:0360 e:000359 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1095
c:0064 p:0005 s:0355 e:000354 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:919
c:0063 p:0003 s:0352 e:000351 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072 [FINISH]
c:0062 p:---- s:0349 e:000348 CFUNC  :catch
c:0061 p:0007 s:0344 e:000343 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072
c:0060 p:0077 s:0339 e:000338 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:919
c:0059 p:0009 s:0334 e:000333 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:908
c:0058 p:0008 s:0329 e:000328 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/xss_header.rb:18
c:0057 p:0044 s:0321 e:000320 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/path_traversal.rb:16
c:0056 p:0023 s:0315 e:000314 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/json_csrf.rb:26
c:0055 p:0038 s:0306 e:000305 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/base.rb:50
c:0054 p:0038 s:0300 e:000299 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/base.rb:50
c:0053 p:0008 s:0294 e:000293 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/frame_options.rb:31
c:0052 p:0022 s:0286 e:000285 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.2.2/lib/rack/null_logger.rb:11
c:0051 p:0008 s:0281 e:000280 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.2.2/lib/rack/head.rb:12
c:0050 p:0008 s:0273 e:000272 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/show_exceptions.rb:22
c:0049 p:0009 s:0264 e:000263 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:194
c:0048 p:0008 s:0257 e:000256 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1951
c:0047 p:0059 s:0252 e:000251 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/mock_session.rb:29
c:0046 p:0010 s:0243 e:000242 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:266
c:0045 p:0052 s:0236 e:000235 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:129
c:0044 p:0023 s:0227 e:000226 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:66
c:0043 p:0027 s:0219 e:000218 BLOCK  /home/cas/working_dir/ace/spec/acceptance/ace/transport_app_spec.rb:72 [FINISH]
c:0042 p:---- s:0216 e:000215 CFUNC  :instance_exec
c:0041 p:0013 s:0211 e:000210 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450
c:0040 p:0012 s:0205 e:000204 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:356
c:0039 p:0008 s:0200 e:000199 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:515 [FINISH]
c:0038 p:---- s:0196 e:000195 CFUNC  :each
c:0037 p:0014 s:0192 e:000191 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:514
c:0036 p:0015 s:0185 e:000184 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:601 [FINISH]
c:0035 p:---- s:0181 e:000180 CFUNC  :reverse_each
c:0034 p:0010 s:0177 e:000176 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:600
c:0033 p:0095 s:0170 e:000169 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:470
c:0032 p:0019 s:0163 e:000162 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:497
c:0031 p:0005 s:0159 e:000158 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:256
c:0030 p:0003 s:0154 e:000153 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503
c:0029 p:0003 s:0151 e:000150 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460
c:0028 p:0003 s:0148 e:000147 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472
c:0027 p:0026 s:0145 e:000144 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:610
c:0026 p:0116 s:0138 e:000137 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472
c:0025 p:0013 s:0131 e:000130 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460
c:0024 p:0024 s:0126 e:000125 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503
c:0023 p:0116 s:0121 e:000120 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254
c:0022 p:0049 s:0114 e:000113 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633 [FINISH]
c:0021 p:---- s:0108 e:000107 CFUNC  :map
c:0020 p:0015 s:0104 e:000103 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629
c:0019 p:0067 s:0099 e:000098 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595
c:0018 p:0008 s:0090 e:000089 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596 [FINISH]
c:0017 p:---- s:0086 e:000085 CFUNC  :map
c:0016 p:0084 s:0082 e:000081 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596
c:0015 p:0008 s:0073 e:000072 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596 [FINISH]
c:0014 p:---- s:0069 e:000068 CFUNC  :map
c:0013 p:0084 s:0065 e:000064 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596
c:0012 p:0009 s:0056 e:000055 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121 [FINISH]
c:0011 p:---- s:0052 e:000051 CFUNC  :map
c:0010 p:0034 s:0048 e:000047 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121
c:0009 p:0021 s:0045 e:000044 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031
c:0008 p:0008 s:0041 e:000040 BLOCK  /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116
c:0007 p:0010 s:0037 e:000036 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74
c:0006 p:0022 s:0032 e:000031 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115
c:0005 p:0050 s:0025 e:000024 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89
c:0004 p:0072 s:0019 e:000018 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71
c:0003 p:0020 s:0011 e:000010 METHOD /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45
c:0002 p:0021 s:0006 e:000005 EVAL   /home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/exe/rspec:4 [FINISH]
c:0001 p:0000 s:0003 E:001da0 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/exe/rspec:4:in `<main>'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in `invoke'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in `run_specs'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in `report'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in `block in run_specs'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `map'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `run_examples'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `map'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in `block in run_examples'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:610:in `run_around_example_hooks_for'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `block in run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:256:in `block in run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:497:in `run_before_example'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:470:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:600:in `run_example_hooks_for'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:600:in `reverse_each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:601:in `block in run_example_hooks_for'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:514:in `run_owned_hooks_for'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:514:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:515:in `block in run_owned_hooks_for'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:356:in `run'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'
/home/cas/working_dir/ace/spec/acceptance/ace/transport_app_spec.rb:72:in `block (3 levels) in <top (required)>'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:66:in `post'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:129:in `custom_request'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/test.rb:266:in `process_request'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-test-1.1.0/lib/rack/mock_session.rb:29:in `request'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1951:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:194:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/show_exceptions.rb:22:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.2.2/lib/rack/head.rb:12:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.2.2/lib/rack/null_logger.rb:11:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/frame_options.rb:31:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/base.rb:50:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/base.rb:50:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/json_csrf.rb:26:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/path_traversal.rb:16:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-protection-2.0.8.1/lib/rack/protection/xss_header.rb:18:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:908:in `call'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:919:in `call!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `invoke'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `catch'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `block in invoke'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:919:in `block in call!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1095:in `dispatch!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `invoke'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `catch'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1072:in `block in invoke'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1098:in `block in dispatch!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:984:in `route!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:984:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:985:in `block in route!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1033:in `process_route'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1033:in `catch'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1035:in `block in process_route'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:987:in `block (2 levels) in route!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1006:in `route_eval'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:987:in `block (3 levels) in route!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1636:in `block in compile!'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:1636:in `call'
/home/cas/working_dir/ace/lib/ace/transport_app.rb:336:in `block in <class:TransportApp>'
/home/cas/working_dir/ace/lib/ace/plugin_cache.rb:40:in `with_synced_libdir'
/home/cas/working_dir/ace/lib/ace/fork_util.rb:15:in `isolate'
/home/cas/working_dir/ace/lib/ace/fork_util.rb:15:in `fork'
/home/cas/working_dir/ace/lib/ace/fork_util.rb:19:in `block in isolate'
/home/cas/working_dir/ace/lib/ace/plugin_cache.rb:41:in `block in with_synced_libdir'
/home/cas/working_dir/ace/lib/ace/puppet_util.rb:79:in `isolated_puppet_settings'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/settings.rb:1070:in `use'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:238:in `apply'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction/report.rb:146:in `as_logging_destination'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/log.rb:165:in `with_destination'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:239:in `block in apply'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util.rb:520:in `thinmark'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/2.5.0/benchmark.rb:308:in `realtime'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util.rb:521:in `block in thinmark'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:240:in `block (2 levels) in apply'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction.rb:176:in `evaluate'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/transaction.rb:226:in `relationship_graph'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/resource/catalog.rb:266:in `relationship_graph'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:25:in `populate_from'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:171:in `build_autorelation_dependencies'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:171:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:172:in `block in build_autorelation_dependencies'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:172:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/graph/relationship_graph.rb:173:in `block (2 levels) in build_autorelation_dependencies'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2212:in `autorequire'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2181:in `autorelation'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2124:in `eachautorequire'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2124:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2125:in `block in eachautorequire'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type.rb:2183:in `block in autorelation'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:172:in `type'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:201:in `load'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66:in `load_file'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66:in `load'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type/group.rb:6:in `<top (required)>'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/type/group.rb:7:in `<module:Puppet>'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:127:in `newtype'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:215:in `loadall'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:79:in `loadall'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:79:in `each'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:81:in `block in loadall'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66:in `load_file'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/util/autoload.rb:66:in `load'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/provider/group/ldap.rb:3:in `<top (required)>'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puppet-6.14.0/lib/puppet/metatype/manager.rb:155:in `type'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113:in `block in thread_local_finalizer'
/home/cas/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb:113:in `push'

-- Machine register context ------------------------------------------------
 RIP: 0x000055c53f838ca4 RBP: 0x000055c542a53a18 RSP: 0x00007fff6e642ad0
 RAX: 0x00007f47f134a2c8 RBX: 0x0000002ffffffffa RCX: 0x0000000000000000
 RDX: 0x0000003000000002 RDI: 0x0000000000000000 RSI: 0x00007f47f134a2c0
  R8: 0x0000000000000001  R9: 0x0000000000000001 R10: 0x0000000000000000
 R11: 0x000055c542a53a18 R12: 0x000055c543116ae0 R13: 0x00007f47f607c840
 R14: 0x000055c54311fca0 R15: 0x000055c5411adb00 EFL: 0x0000000000010206

-- C level backtrace information -------------------------------------------
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_vm_bugreport+0x53e) [0x55c53f920b5e] vm_dump.c:703
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_bug_context+0xd1) [0x55c53f9151d1] error.c:580
/home/cas/.rbenv/versions/2.5.1/bin/ruby(sigsegv+0x42) [0x55c53f7ff472] signal.c:928
/lib/x86_64-linux-gnu/libpthread.so.0(0x7f47f5c6f390) [0x7f47f5c6f390]
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_queue_push+0x74) [0x55c53f838ca4] thread_sync.c:21
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3589) [0x55c53f87a4d9] insns.def:915
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_block_from_c_proc+0x184) [0x55c53f87ee74] vm.c:1124
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_invoke_proc+0xc9) [0x55c53f87ef69] vm.c:1149
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call0_body.constprop.141+0x8f) [0x55c53f88081f] vm_eval.c:186
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_check_funcall_default+0x13f) [0x55c53f88566f] vm_eval.c:58
/home/cas/.rbenv/versions/2.5.1/bin/ruby(run_finalizer+0x159) [0x55c53f719709] gc.c:2784
/home/cas/.rbenv/versions/2.5.1/bin/ruby(finalize_list+0x7e) [0x55c53f7198de] gc.c:2836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(gc_finalize_deferred+0x48) [0x55c53f719978] gc.c:2867
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_postponed_job_flush+0x12b) [0x55c53f891d4b] vm_trace.c:1628
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_threadptr_execute_interrupts.part.56+0x329) [0x55c53f839749] thread.c:2080
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x5929) [0x55c53f87c879] vm_core.h:1691
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_load_internal0+0xc4) [0x55c53f753384] load.c:611
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_load+0x80) [0x55c53f753a30] load.c:642
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3589) [0x55c53f87a4d9] insns.def:915
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_each+0x3d) [0x55c53f8975bd] array.c:1836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_load_internal0+0xc4) [0x55c53f753384] load.c:611
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_load+0x80) [0x55c53f753a30] load.c:642
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3589) [0x55c53f87a4d9] insns.def:915
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield_values2+0xb5) [0x55c53f885ea5] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(each_pair_i_fast+0x1a) [0x55c53f72825a] hash.c:1837
/home/cas/.rbenv/versions/2.5.1/bin/ruby(hash_foreach_iter+0x29) [0x55c53f728ed9] hash.c:353
/home/cas/.rbenv/versions/2.5.1/bin/ruby(st_foreach_check+0x78) [0x55c53f80b738] st.c:1571
/home/cas/.rbenv/versions/2.5.1/bin/ruby(hash_foreach_call+0x1f) [0x55c53f728e7f] hash.c:386
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ensure+0xc3) [0x55c53f70b933] eval.c:1037
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_hash_each_pair+0x58) [0x55c53f72ed38] hash.c:403
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_each+0x3d) [0x55c53f8975bd] array.c:1836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_each+0x3d) [0x55c53f8975bd] array.c:1836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_block_from_c_bh.constprop.137+0x83) [0x55c53f87fef3] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0x124) [0x55c53f886724] vm.c:1094
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_protect+0x122) [0x55c53f70b792] eval.c:995
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_fork+0x62) [0x55c53f7b28b2] process.c:3707
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_bmethod.isra.123+0x1a0) [0x55c53f87e820] vm.c:1000
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x1b7) [0x55c53f87eae7] vm.c:1034
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_block_from_c_proc+0x184) [0x55c53f87ee74] vm.c:1124
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call0_body.constprop.141+0x2eb) [0x55c53f880a7b] vm.c:1165
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_vm_call+0x30) [0x55c53f880e30] vm_eval.c:58
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_method_call+0x94) [0x55c53f7a6564] proc.c:2103
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3589) [0x55c53f87a4d9] insns.def:915
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_block_from_c_proc+0x184) [0x55c53f87ee74] vm.c:1124
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_invoke_proc+0xc9) [0x55c53f87ef69] vm.c:1149
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_opt_call+0xa2) [0x55c53f87f0e2] vm_insnhelper.c:2065
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3589) [0x55c53f87a4d9] insns.def:915
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(catch_i+0xb2) [0x55c53f886282] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_catch_protect+0xa1) [0x55c53f8739a1] vm_eval.c:1997
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_catch+0x2e) [0x55c53f873b8e] vm_eval.c:2023
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_each+0x3d) [0x55c53f8975bd] array.c:1836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(catch_i+0xb2) [0x55c53f886282] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_catch_protect+0xa1) [0x55c53f8739a1] vm_eval.c:1997
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_catch+0x2e) [0x55c53f873b8e] vm_eval.c:2023
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(catch_i+0xb2) [0x55c53f886282] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_catch_protect+0xa1) [0x55c53f8739a1] vm_eval.c:1997
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_f_catch+0x2e) [0x55c53f873b8e] vm_eval.c:2023
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_block_from_c_bh.constprop.137+0x83) [0x55c53f87fef3] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(yield_under+0x1c8) [0x55c53f8872c8] vm.c:1086
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_each+0x3d) [0x55c53f8975bd] array.c:1836
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_reverse_each+0x58) [0x55c53f895518] array.c:1895
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_opt_send+0x1b2) [0x55c53f87fd32] vm_insnhelper.c:2047
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_collect+0x7e) [0x55c53f89a91e] array.c:2757
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_collect+0x7e) [0x55c53f89a91e] array.c:2757
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_collect+0x7e) [0x55c53f89a91e] array.c:2757
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(invoke_iseq_block_from_c+0x3a0) [0x55c53f87ecd0] vm.c:979
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_yield+0xcf) [0x55c53f8866cf] vm.c:1049
/home/cas/.rbenv/versions/2.5.1/bin/ruby(rb_ary_collect+0x7e) [0x55c53f89a91e] array.c:2757
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_cfunc+0xee) [0x55c53f870a5e] vm_insnhelper.c:1918
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_call_method+0xe3) [0x55c53f87f883] vm_insnhelper.c:2381
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec_core+0x3350) [0x55c53f87a2a0] insns.def:850
/home/cas/.rbenv/versions/2.5.1/bin/ruby(vm_exec+0x87) [0x55c53f87df27] vm.c:1778
/home/cas/.rbenv/versions/2.5.1/bin/ruby(ruby_exec_internal+0xc4) [0x55c53f7066e4] eval.c:246
/home/cas/.rbenv/versions/2.5.1/bin/ruby(ruby_run_node+0x2f) [0x55c53f70aadf] eval.c:310
/home/cas/.rbenv/versions/2.5.1/bin/ruby(main+0x4b) [0x55c53f70618b] ./include/ruby/intern.h:295
donoghuc added a commit to donoghuc/ace that referenced this pull request Mar 25, 2020
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
Copy link
Member Author

@pitr-ch pitr-ch commented Mar 30, 2020

@donoghuc thanks for the confirmation!

@shawn42
Copy link

@shawn42 shawn42 commented May 4, 2020

Thank you for this patch! I believe I'm encountering this segfault as well. Is there a timeline for merging this PR and releasing?

@shawn42
Copy link

@shawn42 shawn42 commented Jun 1, 2020

Thank you for this patch! I believe I'm encountering this segfault as well. Is there a timeline for merging this PR and releasing?

@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!

@shawn42
Copy link

@shawn42 shawn42 commented Jul 1, 2020

@chrisseaton
Copy link
Member

@chrisseaton chrisseaton commented Jul 1, 2020

It's @pitr-ch's code - hopefully he'll take a look after this ping or maybe if he's blocked by work he can let me know what needs doing on it.

@shawn42
Copy link

@shawn42 shawn42 commented Jul 20, 2020

It's @pitr-ch's code - hopefully he'll take a look after this ping or maybe if he's blocked by work he can let me know what needs doing on it.

I've been unable to get a response from @pitr-ch at all on this. (I hope they are ok) Is there anything else you can do to help me out here @chrisseaton ?

@chrisseaton
Copy link
Member

@chrisseaton chrisseaton commented Jul 20, 2020

I'll try to reach him and if he can't I'll get back to you and do something.

@pitr-ch
Copy link
Member Author

@pitr-ch pitr-ch commented Jul 20, 2020

Sorry for letting you wait. I've been busy and had to put this aside. Merging.

@pitr-ch pitr-ch merged commit acb8d70 into master Jul 20, 2020
3 checks passed
3 checks passed
continuous-integration/appveyor/branch AppVeyor build succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@donoghuc
Copy link

@donoghuc donoghuc commented Jul 20, 2020

@pitr-ch Thanks so much! you rock

@shawn42
Copy link

@shawn42 shawn42 commented Jul 21, 2020

No worries! Just glad to see this get merged. I'm glad to see you are alright and concurrent-ruby still has active maintainers 👍

@kaspergrubbe
Copy link

@kaspergrubbe kaspergrubbe commented Jul 21, 2020

Awesome, thank you!

@shawn42
Copy link

@shawn42 shawn42 commented Aug 3, 2020

@pitr-ch Is there a release schedule posted somewhere or do you have any idea when we cut a new release? Let me know if there's any testing or help I can contribute.

@pitr-ch
Copy link
Member Author

@pitr-ch pitr-ch commented Aug 4, 2020

No schedule, I should be able to find some time to do it this week.

@pitr-ch
Copy link
Member Author

@pitr-ch pitr-ch commented Aug 8, 2020

Released 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

6 participants
You can’t perform that action at this time.