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

Run ubuntu 22.04 in test matrix #198

Merged

Conversation

adfoster-r7
Copy link
Contributor

@adfoster-r7 adfoster-r7 commented Jul 21, 2022

Relates to rapid7/metasploit-framework#16818

Let's run Ubuntu 22.04 in our test matrix, to catch any OpenSSL v3 regression issues

Verification

  • Code review
  • Verify CI passes

@adfoster-r7 adfoster-r7 force-pushed the run-ubuntu-22.04-in-test-matrix branch from d29c4d5 to 026d5f6 Compare July 25, 2022 20:36
@adfoster-r7 adfoster-r7 force-pushed the run-ubuntu-22.04-in-test-matrix branch 3 times, most recently from e83fddc to a01e156 Compare September 14, 2022 09:21
@@ -185,7 +185,7 @@
end

context '#to_s' do
subject(:to_s) {
subject(:to_s_result) {
Copy link
Contributor Author

@adfoster-r7 adfoster-r7 Sep 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes the following error on newer rspec versions:

An error occurred while loading ./spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb.
Failure/Error:
  subject(:to_s) {
    range.to_s
  }

ArgumentError:
  #let or #subject called with reserved name `to_s`

@adfoster-r7 adfoster-r7 force-pushed the run-ubuntu-22.04-in-test-matrix branch 4 times, most recently from ca0000a to d8321ff Compare September 14, 2022 16:23
it 'when PowerPC is cased incorrectly' do
expect(host.send(:get_arch_from_string, 'powerPC')).to eq(nil)
expect(host.send(:get_arch_from_string, 'Powerpc')).to eq(nil)
expect(host.send(:get_arch_from_string, 'powerPC')).to eq('PowerPC')
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this behavior changed with this PR to recog https://github.com/rapid7/recog/pull/406/files#diff-b8ba9b5ec82acf9a7399fd5884b901765ead4be11c4e7a21575db2aa664a2866R19

$ bundle exec ruby -e "require 'recog'; puts Recog::VERSION; puts Recog::Nizer.match('architecture', 'powerPC').inspect"
2.3.22
nil

$ bundle exec ruby -e "require 'recog'; puts Recog::VERSION; puts Recog::Nizer.match('architecture', 'powerPC').inspect"
2.3.23
{"matched"=>"PowerPC", "os.arch"=>"PowerPC", "service.protocol"=>"", "fingerprint_db"=>"architecture"}

Sync'ing up with @mkienow-r7 it seems good to update this test's behavior to align here, as the PR was making PowerPC to be consistent with the rest of the other xml/architecture.xml matches

@adfoster-r7 adfoster-r7 force-pushed the run-ubuntu-22.04-in-test-matrix branch 3 times, most recently from 417674b to 9e1fdd3 Compare September 14, 2022 17:59
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'webrick'

# os fingerprinting
s.add_runtime_dependency 'recog', '~> 2.0'
s.add_runtime_dependency 'recog'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bumps us up to 3.x

@adfoster-r7 adfoster-r7 force-pushed the run-ubuntu-22.04-in-test-matrix branch from 9e1fdd3 to 665dcbd Compare September 14, 2022 18:06
# supplies factories for producing model instance for specs
# Version 4.1.0 or newer is needed to support generate calls without the 'FactoryBot.' in factory definitions syntax.
gem 'factory_bot'
# auto-load factories from spec/factories
gem 'factory_bot_rails'

gem 'rails', '~> 6.0'
gem 'net-smtp', require: false
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Required otherwise the tests fails with a rails bump

From CI:

rake, version 13.0.6
You don't have net-smtp installed in your application. Please add it to your Gemfile and run bundle install
Created database 'metasploit_data_models_test'

Test failures:

  431) Mdm::Host validations arch with known architecture 'mipsbe' is expected to be valid
       Failure/Error: required = zeitwerk_original_require(path)

       LoadError:
         cannot load such file -- net/smtp
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail.rb:9:in `<module:Mail>'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/mail-2.7.1/lib/mail.rb:3:in `<top (required)>'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/actionmailer-6.1.7/lib/action_mailer/mail_with_error_handling.rb:4:in `<top (required)>'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/actionmailer-6.1.7/lib/action_mailer/base.rb:3:in `<top (required)>'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-rails-5.1.2/lib/rspec/rails/configuration.rb:174:in `block in initialize_configuration'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:457:in `instance_exec'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:457:in `instance_exec'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:372:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:529:in `block in run_owned_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:528:in `each'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:528:in `run_owned_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:615:in `block in run_example_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:614:in `each'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:614:in `run_example_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:485:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:518:in `run_after_example'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:283:in `block in run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:486:in `block in run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:626:in `block in run_around_example_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:352:in `call'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-rails-5.1.2/lib/rspec/rails/adapters.rb:75:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:457:in `instance_exec'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:457:in `instance_exec'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:390:in `execute_with'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:628:in `block (2 levels) in run_around_example_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:352:in `call'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:629:in `run_around_example_hooks_for'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/hooks.rb:486:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example.rb:259:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:646:in `block in run_examples'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:642:in `map'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:642:in `run_examples'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:607:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `block in run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `map'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `block in run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `map'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `block in run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `map'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/example_group.rb:608:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:121:in `map'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/configuration.rb:2068:in `with_suite_hooks'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/reporter.rb:74:in `report'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:115:in `run_specs'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:89:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:71:in `run'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/lib/rspec/core/runner.rb:45:in `invoke'
       # /home/runner/work/metasploit_data_models/metasploit_data_models/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.11.0/exe/rspec:4:in `<main>'
       # 
       #   Showing full backtrace because every line was filtered out.
       #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
       #   RSpec::Configuration#backtrace_inclusion_patterns for more information.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -27,7 +27,7 @@ class MetasploitDataModels::Base64Serializer
},
lambda { |serialized|
# Support legacy YAML encoding for existing data
YAML.load(serialized)
YAML.safe_load(serialized, permitted_classes: MetasploitDataModels::YAML::PERMITTED_CLASSES)
Copy link
Contributor Author

@adfoster-r7 adfoster-r7 Sep 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context:

https://discuss.rubyonrails.org/t/cve-2022-32224-possible-rce-escalation-bug-with-serialized-columns-in-active-record/81017

This specific line isn't technically required as the Yaml.load call exists completely outside of the Rail's ecosystem/validation, but the list of permitted classes is required for factory bot/rails itself

Previous stack trace from factory bot:

 2) Mdm::WebPage serialized attributes cookie with WEBrick::Cookie persists successfully
     Failure/Error: let(:web_page) { FactoryBot.create(:mdm_web_page, cookie: cookie) }
     
     Psych::DisallowedClass:
       Tried to load unspecified class: WEBrick::Cookie
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/coders/yaml_column.rb:63:in `yaml_load'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/coders/yaml_column.rb:26:in `load'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/type/serialized.rb:22:in `deserialize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/type/helpers/mutable.rb:8:in `cast'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/attribute.rb:175:in `type_cast'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/attribute.rb:43:in `value'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/attribute_set.rb:42:in `fetch_value'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/transactions.rb:408:in `block in restore_transaction_record_state'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/attribute_set.rb:90:in `transform_values'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activemodel-6.1.7/lib/active_model/attribute_set.rb:90:in `map'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/transactions.rb:407:in `restore_transaction_record_state'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/transactions.rb:334:in `rolledback!'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:134:in `rollback_records'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:312:in `block in rollback_transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:309:in `rollback_transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:325:in `rescue in block in within_new_transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:322:in `block in within_new_transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/transactions.rb:302:in `save!'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/suppressor.rb:48:in `save!'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/evaluation.rb:18:in `create'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/strategy/create.rb:12:in `block in result'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/strategy/create.rb:9:in `tap'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/strategy/create.rb:9:in `result'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/factory.rb:43:in `run'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/factory_runner.rb:29:in `block in run'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/activesupport-6.1.7/lib/active_support/notifications.rb:205:in `instrument'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/factory_runner.rb:28:in `run'
     # /Users/user/.rvm/gems/ruby-2.6.6/gems/factory_bot-6.2.1/lib/factory_bot/strategy_syntax_method_registrar.rb:28:in `block in define_singular_strategy_method'
     # ./spec/app/models/mdm/web_page_spec.rb:12:in `block (4 levels) in <top (required)>'
     # ./spec/app/models/mdm/web_page_spec.rb:47:in `block (6 levels) in <top (required)>'
     # ./spec/app/models/mdm/web_page_spec.rb:47:in `block (5 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Psych::DisallowedClass:
     #   Tried to load unspecified class: WEBrick::Cookie
     #   /Users/user/.rvm/gems/ruby-2.6.6/gems/activerecord-6.1.7/lib/active_record/coders/yaml_column.rb:63:in `yaml_load'

@jmartin-tech jmartin-tech self-assigned this Sep 29, 2022
jmartin-tech
jmartin-tech previously approved these changes Oct 28, 2022
Copy link
Contributor

@jmartin-tech jmartin-tech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@adfoster-r7 adfoster-r7 merged commit 561c6f9 into rapid7:master Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants