Skip to content

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

Merged
pitr-ch merged 1 commit into
masterfrom
segfault
Jul 20, 2020
Merged

pitr-ch merged 1 commit into
masterfrom
segfault

Conversation

@pitr-ch

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

Copy link
Copy Markdown
Member

fix #849
related to #808

@fzakaria

fzakaria commented Mar 2, 2020

Copy link
Copy Markdown
Contributor

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

@pitr-ch

pitr-ch commented Mar 4, 2020

Copy link
Copy Markdown
Member Author

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

donoghuc commented Mar 25, 2020 •

Copy link
Copy Markdown

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

Details
/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

pitr-ch commented Mar 30, 2020

Copy link
Copy Markdown
Member Author

@donoghuc thanks for the confirmation!

@shawn42

shawn42 commented May 4, 2020

Copy link
Copy Markdown

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

shawn42 commented Jun 1, 2020

Copy link
Copy Markdown

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

shawn42 commented Jul 1, 2020

Copy link
Copy Markdown
@chrisseaton

Copy link
Copy Markdown
Member

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

shawn42 commented Jul 20, 2020

Copy link
Copy Markdown

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
Copy Markdown
Member

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

@pitr-ch

pitr-ch commented Jul 20, 2020

Copy link
Copy Markdown
Member Author

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

Copy link
Copy Markdown

@pitr-ch Thanks so much! you rock

@shawn42

shawn42 commented Jul 21, 2020

Copy link
Copy Markdown

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
Copy Markdown

Awesome, thank you!

@shawn42

shawn42 commented Aug 3, 2020

Copy link
Copy Markdown

@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

pitr-ch commented Aug 4, 2020

Copy link
Copy Markdown
Member Author

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

@pitr-ch

pitr-ch commented Aug 8, 2020

Copy link
Copy Markdown
Member Author

Released 🎉

gimmyxd added a commit to gimmyxd/ace that referenced this pull request May 17, 2021
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.
@pitr-ch
pitr-ch deleted the segfault branch June 4, 2021 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

6 participants