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

[release70] Make ActiveRecord's quoted name caches thread-safe on JRuby/TruffleRuby #2347

Merged
merged 3 commits into from
Jul 31, 2023

Conversation

yahonda
Copy link
Collaborator

@yahonda yahonda commented Jul 31, 2023

Refer to rails/rails#48773

$ bundle exec rspec ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:234 # OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting

==> Loading config from ENV or use default
==> Running specs with ruby version 3.2.2
==> Effective ActiveRecord version 7.0.6
Run options: include {:locations=>{"./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb"=>[234]}}
F
An error occurred in an `after(:context)` hook.
Failure/Error: Object.send(:remove_const, "Post")

NameError:
  constant Object::Post not defined

Failures:

  1) OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting
     Failure/Error: self.class.quoted_table_names[name] ||= [name.split(".").map { |n| quote_column_name(n) }].join(".")

     NoMethodError:
       undefined method `quoted_table_names' for ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter:Class
     # ./lib/active_record/connection_adapters/oracle_enhanced/quoting.rb:70:in `quote_table_name'
     # ./lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb:269:in `drop_table'
     # ./lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb:233:in `create_table'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:932:in `block in method_missing'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:900:in `block in say_with_time'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/3.2.0/benchmark.rb:296:in `measure'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:900:in `say_with_time'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:921:in `method_missing'
     # ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:221:in `block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:114:in `instance_eval'
     # ./spec/spec_helper.rb:114:in `block (2 levels) in schema_define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:909:in `suppress_messages'
     # ./spec/spec_helper.rb:113:in `block in schema_define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:55:in `instance_eval'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:55:in `define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:50:in `define'
     # ./spec/spec_helper.rb:112:in `schema_define'
     # ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:220:in `block (3 levels) in <top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:365:in `instance_exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:365:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:529:in `block in run_owned_hooks_for'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:528:in `each'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:528:in `run_owned_hooks_for'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:480:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:553:in `block in run_before_context_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:208:in `block in isolate_for_context_hook'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:204:in `instance_exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:204:in `isolate_for_context_hook'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:552:in `run_before_context_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:606:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/rspec:25:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/rspec:25:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:58:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:58:in `kernel_load'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:23:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:492:in `exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:34:in `dispatch'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:28:in `start'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/exe/bundle:37:in `block in <top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/exe/bundle:29:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/bundle:25:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/bundle:25:in `<main>'

Finished in 0.38168 seconds (files took 0.42519 seconds to load)
1 example, 1 failure, 1 error occurred outside of examples

Failed examples:

rspec ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:234 # OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting

$

Refer to rails/rails#48773

```ruby
$ bundle exec rspec ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:234 # OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting

==> Loading config from ENV or use default
==> Running specs with ruby version 3.2.2
==> Effective ActiveRecord version 7.0.6
Run options: include {:locations=>{"./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb"=>[234]}}
F
An error occurred in an `after(:context)` hook.
Failure/Error: Object.send(:remove_const, "Post")

NameError:
  constant Object::Post not defined

Failures:

  1) OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting
     Failure/Error: self.class.quoted_table_names[name] ||= [name.split(".").map { |n| quote_column_name(n) }].join(".")

     NoMethodError:
       undefined method `quoted_table_names' for ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter:Class
     # ./lib/active_record/connection_adapters/oracle_enhanced/quoting.rb:70:in `quote_table_name'
     # ./lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb:269:in `drop_table'
     # ./lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb:233:in `create_table'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:932:in `block in method_missing'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:900:in `block in say_with_time'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/3.2.0/benchmark.rb:296:in `measure'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:900:in `say_with_time'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:921:in `method_missing'
     # ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:221:in `block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:114:in `instance_eval'
     # ./spec/spec_helper.rb:114:in `block (2 levels) in schema_define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/migration.rb:909:in `suppress_messages'
     # ./spec/spec_helper.rb:113:in `block in schema_define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:55:in `instance_eval'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:55:in `define'
     # /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/schema.rb:50:in `define'
     # ./spec/spec_helper.rb:112:in `schema_define'
     # ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:220:in `block (3 levels) in <top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:365:in `instance_exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:365:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:529:in `block in run_owned_hooks_for'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:528:in `each'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:528:in `run_owned_hooks_for'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:480:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:553:in `block in run_before_context_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:208:in `block in isolate_for_context_hook'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:204:in `instance_exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/memoized_helpers.rb:204:in `isolate_for_context_hook'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:552:in `run_before_context_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:606:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/rspec:25:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/rspec:25:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:58:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:58:in `kernel_load'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli/exec.rb:23:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:492:in `exec'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:34:in `dispatch'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/cli.rb:28:in `start'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/exe/bundle:37:in `block in <top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
     # /home/yahonda/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.14/exe/bundle:29:in `<top (required)>'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/bundle:25:in `load'
     # /home/yahonda/.rbenv/versions/3.2.2/bin/bundle:25:in `<main>'

Finished in 0.38168 seconds (files took 0.42519 seconds to load)
1 example, 1 failure, 1 error occurred outside of examples

Failed examples:

rspec ./spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb:234 # OracleEnhancedConnection default_timezone should respect default_timezone = :utc than time_zone setting

$
```
@yahonda
Copy link
Collaborator Author

yahonda commented Jul 31, 2023

#2346 is for master branch.

@yahonda yahonda changed the title Make ActiveRecord's quoted name caches thread-safe on JRuby/TruffleRuby [release70] Make ActiveRecord's quoted name caches thread-safe on JRuby/TruffleRuby Jul 31, 2023
```
$ bundle exec rubocop -a
Inspecting 72 files
...................C....................................................

Offenses:

lib/active_record/connection_adapters/oracle_enhanced/quoting.rb:29:33: C: [Corrected] Style/RedundantRegexpEscape: Redundant escape inside regexp literal
          when /^[a-z][a-z_0-9$#\-]*$/i
                                ^^

72 files inspected, 1 offense detected, 1 offense corrected
$
```
@yahonda
Copy link
Collaborator Author

yahonda commented Jul 31, 2023

Cherry-picked 2f46159 via #2322 to this pull request to address the RuboCop offense reported https://github.com/rsim/oracle-enhanced/actions/runs/5714195950/job/15481034744?pr=2347

…nature::Base64`

https://github.com/rsim/oracle-enhanced/actions/runs/5714243566/job/15481185335?pr=2347

```
Failures:

  1) OracleEnhancedAdapter custom types handling should serialize LOBs when creating a record
     Failure/Error: Base64.encode64 value.raw

     NameError:
       uninitialized constant TestEmployee::AttributeSignature::Base64

                 Base64.encode64 value.raw
                 ^^^^^^
     # ./spec/active_record/oracle_enhanced/type/custom_spec.rb:30:in `serialize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activemodel/lib/active_model/attribute.rb:56:in `value_for_database'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:218:in `block in type_casted_binds'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:216:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:216:in `type_casted_binds'
     # ./lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:96:in `exec_insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:167:in `insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
     # ./lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:90:in `insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:496:in `_insert_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:1096:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/counter_cache.rb:166:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/locking/optimistic.rb:84:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/attribute_methods/dirty.rb:222:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:459:in `block in _create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:99:in `run_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:929:in `_run_create_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:459:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/timestamp.rb:108:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:1067:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:455:in `block in create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:99:in `run_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:455:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/timestamp.rb:126:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:648:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/validations.rb:53:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:302:in `block in save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:302:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/suppressor.rb:54:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:55:in `create!'
     # ./spec/active_record/oracle_enhanced/type/custom_spec.rb:70:in `block (2 levels) in <top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:263:in `instance_exec'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:263:in `block in run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:486:in `block in run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:486:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:259:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:646:in `block in run_examples'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:642:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:642:in `run_examples'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:607:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/rspec:25:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/rspec:25:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:58:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:58:in `kernel_load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:23:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:486:in `exec'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:31:in `dispatch'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:25:in `start'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/libexec/bundle:48:in `block in <top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/friendly_errors.rb:120:in `with_friendly_errors'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/libexec/bundle:36:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/bundle:25:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/bundle:25:in `<main>'

  2) OracleEnhancedAdapter custom types handling should serialize LOBs when updating a record
     Failure/Error: Base64.encode64 value.raw

     NameError:
       uninitialized constant TestEmployee::AttributeSignature::Base64

                 Base64.encode64 value.raw
                 ^^^^^^
     # ./spec/active_record/oracle_enhanced/type/custom_spec.rb:30:in `serialize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activemodel/lib/active_model/attribute.rb:56:in `value_for_database'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:218:in `block in type_casted_binds'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:216:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb:216:in `type_casted_binds'
     # ./lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:96:in `exec_insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:167:in `insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
     # ./lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:90:in `insert'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:496:in `_insert_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:1096:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/counter_cache.rb:166:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/locking/optimistic.rb:84:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/attribute_methods/dirty.rb:222:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:459:in `block in _create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:99:in `run_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:929:in `_run_create_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:459:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/timestamp.rb:108:in `_create_record'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:1067:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:455:in `block in create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:99:in `run_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/callbacks.rb:455:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/timestamp.rb:126:in `create_or_update'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:648:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/validations.rb:53:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:302:in `block in save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/transactions.rb:302:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/suppressor.rb:54:in `save!'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/bundler/gems/rails-b18b9df65eb7/activerecord/lib/active_record/persistence.rb:55:in `create!'
     # ./spec/active_record/oracle_enhanced/type/custom_spec.rb:80:in `block (2 levels) in <top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:263:in `instance_exec'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:263:in `block in run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:486:in `block in run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/hooks.rb:486:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example.rb:259:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:646:in `block in run_examples'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:642:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:642:in `run_examples'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:607:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/rspec:25:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/rspec:25:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:58:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:58:in `kernel_load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli/exec.rb:23:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:486:in `exec'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:31:in `dispatch'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/cli.rb:25:in `start'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/libexec/bundle:48:in `block in <top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/3.1.0/bundler/friendly_errors.rb:120:in `with_friendly_errors'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/lib/ruby/gems/3.1.0/gems/bundler-2.3.26/libexec/bundle:36:in `<top (required)>'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/bundle:25:in `load'
     # /opt/hostedtoolcache/Ruby/3.1.4/x64/bin/bundle:25:in `<main>'

Finished in 5 minutes 57 seconds (files took 0.79453 seconds to load)
393 examples, 2 failures, 5 pending

Failed examples:

rspec ./spec/active_record/oracle_enhanced/type/custom_spec.rb:67 # OracleEnhancedAdapter custom types handling should serialize LOBs when creating a record
rspec ./spec/active_record/oracle_enhanced/type/custom_spec.rb:77 # OracleEnhancedAdapter custom types handling should serialize LOBs when updating a record
```
@yahonda
Copy link
Collaborator Author

yahonda commented Jul 31, 2023

Bug report templates are failing.

@yahonda
Copy link
Collaborator Author

yahonda commented Jul 31, 2023

Merging this pull request because RSpec are working fine.

@yahonda yahonda merged commit ae715cd into rsim:release70 Jul 31, 2023
1 of 5 checks passed
@yahonda yahonda deleted the diag48773_release70 branch June 9, 2024 07:53
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.

1 participant