Project

General

Profile

Actions

Bug #17417

closed

Rails CI gets `SystemStackError: stack level too deep` since cee02d754d76563635c1db90d2ab6c01f8492470

Added by yahonda (Yasuo Honda) over 3 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.0.0dev (2020-12-18T19:33:04Z v3_0_0_rc1~79 cee02d754d) [x86_64-linux]
[ruby-core:101588]

Description

I understand there are some concerns that issues opened without a minimum test case using pure Ruby without using frameworks like Rails. It would be appreciated if someone taking a look at this issue when Ruby 3.0 release is around the corner.

Rails CI gets SystemStackError: stack level too deep recently. Executed git bisect against Ruby repository this error is triggered by cee02d754d76563635c1db90d2ab6c01f8492470

Steps to reproduce

  • Install Docker and whatever Ruby version to execute rake command
  • Create Ruby docker image as of cee02d754d76563635c1db90d2ab6c01f8492470
$ git clone https://github.com/ruby/ruby-docker-images.git
$ cd ruby-docker-images
$ rake docker:build ruby_version=master:cee02d754d76563635c1db90d2ab6c01f8492470
  • Run Rails Active Job unit test against Ruby docker image created in the previous step.
$ cd ~
$ git clone https://github.com/rails/rails.git
$ cd rails
$ git clone https://github.com/rails/buildkite-config .buildkite/
$ RUBY_IMAGE=rubylang/ruby:master-cee02d754d76563635c1db90d2ab6c01f8492470-bionic docker-compose -f .buildkite/docker-compose.yml build base && CI=1 docker-compose -f .buildkite/docker-compose.yml run activejob runner activejob 'ruby -v ; bundle exec rake test:sneakers'

Expected behavior

It should pass like this.

344 runs, 755 assertions, 0 failures, 0 errors, 26 skips

Actual behavior

It always gets 'SystemStackError: stack level too deep' as follows.

+++ activejob: ruby -v ; bundle exec rake test:sneakers
ruby 3.0.0dev (2020-12-18T19:33:04Z v3_0_0_rc1~79 cee02d754d) [x86_64-linux]
/usr/local/bin/ruby -w -I"lib:test" /usr/local/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/rake_test_loader.rb "test/cases/adapter_test.rb" "test/cases/argument_serialization_test.rb" "test/cases/callbacks_test.rb" "test/cases/exceptions_test.rb" "test/cases/job_serialization_test.rb" "test/cases/logging_test.rb" "test/cases/queue_adapter_test.rb" "test/cases/queue_naming_test.rb" "test/cases/queue_priority_test.rb" "test/cases/queuing_test.rb" "test/cases/rescue_test.rb" "test/cases/serializers_test.rb" "test/cases/test_case_test.rb" "test/cases/test_helper_test.rb" "test/cases/timezones_test.rb" "test/cases/translation_test.rb"
Using sneakers
Run options: --seed 10975

# Running:

..............................................................................................................................................F

Failure:
PerformedJobsTest#test_assert_performed_with_failure_with_global_id_args [/rails/activejob/test/cases/test_helper_test.rb:1910]:
[Minitest::Assertion] exception expected, not
Class: <SystemStackError>
Message: <"stack level too deep">
---Backtrace---
/usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
/usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
/rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
/rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
/rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
/rails/activejob/lib/active_job/arguments.rb:34:in `map'
/rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
/rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
/rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
/rails/activejob/lib/active_job/core.rb:101:in `serialize'
/rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:40:in `job_to_hash'
/rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:29:in `enqueue'
/rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
/rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
/rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
/rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
/rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
/rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
/rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
/rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
/rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
/rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
/rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
/rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
/rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
/rails/activejob/test/cases/test_helper_test.rb:1912:in `block (2 levels) in test_assert_performed_with_failure_with_global_id_args'
/rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
/rails/activejob/lib/active_job/test_helper.rb:593:in `perform_enqueued_jobs'
/rails/activejob/lib/active_job/test_helper.rb:489:in `assert_performed_with'
/rails/activejob/test/cases/test_helper_test.rb:1911:in `block in test_assert_performed_with_failure_with_global_id_args'
---------------


rails test rails/activejob/test/cases/test_helper_test.rb:1907

....E

Error:
PerformedJobsTest#test_assert_performed_with_without_block_failure_with_global_id_args:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:40:in `job_to_hash'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:29:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/test_helper_test.rb:1922:in `test_assert_performed_with_without_block_failure_with_global_id_args'


rails test rails/activejob/test/cases/test_helper_test.rb:1919

.....................E

Error:
PerformedJobsTest#test_assert_performed_with_with_global_id_args:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:40:in `job_to_hash'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:29:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/test_helper_test.rb:1896:in `block in test_assert_performed_with_with_global_id_args'
    /rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
    /rails/activejob/lib/active_job/test_helper.rb:593:in `perform_enqueued_jobs'
    /rails/activejob/lib/active_job/test_helper.rb:489:in `assert_performed_with'
    /rails/activejob/test/cases/test_helper_test.rb:1895:in `test_assert_performed_with_with_global_id_args'


rails test rails/activejob/test/cases/test_helper_test.rb:1893

..........................................................E

Error:
PerformedJobsTest#test_assert_performed_with_without_block_with_global_id_args:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:40:in `job_to_hash'
    /rails/activejob/lib/active_job/queue_adapters/test_adapter.rb:29:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/test_helper_test.rb:1902:in `test_assert_performed_with_without_block_with_global_id_args'


rails test rails/activejob/test/cases/test_helper_test.rb:1900

.....................SSSSSSSSSSSSSSSSSSSSSSSSE

Error:
JobSerializationTest#test_serialize_job_with_gid:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:28:in `block in enqueue'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `synchronize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/job_serialization_test.rb:16:in `block in <class:JobSerializationTest>'


rails test rails/activejob/test/cases/job_serialization_test.rb:15

........E

Error:
ArgumentSerializationTest#test_should_dive_deep_into_arrays_and_hashes:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:106:in `block in serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:106:in `map'
    /rails/activejob/lib/active_job/arguments.rb:106:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/test/cases/argument_serialization_test.rb:198:in `perform_round_trip'
    /rails/activejob/test/cases/argument_serialization_test.rb:194:in `assert_arguments_roundtrip'
    /rails/activejob/test/cases/argument_serialization_test.rb:61:in `block in <class:ArgumentSerializationTest>'


rails test rails/activejob/test/cases/argument_serialization_test.rb:60

...F

Failure:
ArgumentSerializationTest#test_raises_a_friendly_SerializationError_for_records_without_ids [/rails/activejob/test/cases/argument_serialization_test.rb:182]:
[ActiveJob::SerializationError] exception expected, not
Class: <SystemStackError>
Message: <"stack level too deep">
---Backtrace---
/usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
/usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
/rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
/rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
/rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
/rails/activejob/lib/active_job/arguments.rb:34:in `map'
/rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
/rails/activejob/test/cases/argument_serialization_test.rb:183:in `block (2 levels) in <class:ArgumentSerializationTest>'
---------------


rails test rails/activejob/test/cases/argument_serialization_test.rb:181

...E

Error:
ArgumentSerializationTest#test_should_convert_records_to_Global_IDs:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/test/cases/argument_serialization_test.rb:198:in `perform_round_trip'
    /rails/activejob/test/cases/argument_serialization_test.rb:194:in `assert_arguments_roundtrip'
    /rails/activejob/test/cases/argument_serialization_test.rb:53:in `block in <class:ArgumentSerializationTest>'


rails test rails/activejob/test/cases/argument_serialization_test.rb:52

............E

Error:
ArgumentSerializationTest#test_should_keep_Global_IDs_strings_as_they_are:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/test/cases/argument_serialization_test.rb:57:in `block in <class:ArgumentSerializationTest>'


rails test rails/activejob/test/cases/argument_serialization_test.rb:56

.............E

Error:
RescueTest#test_rescue_from_deserialization_errors:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:28:in `block in enqueue'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `synchronize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/rescue_test.rb:26:in `block in <class:RescueTest>'


rails test rails/activejob/test/cases/rescue_test.rb:25

E

Error:
RescueTest#test_should_not_wrap_DeserializationError_in_DeserializationError:
SystemStackError: stack level too deep
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/global_id.rb:14:in `create'
    /usr/local/lib/ruby/gems/3.0.0/gems/globalid-0.4.2/lib/global_id/identification.rb:8:in `to_global_id'
    /rails/activejob/lib/active_job/arguments.rb:209:in `convert_to_global_id_hash'
    /rails/activejob/lib/active_job/arguments.rb:104:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:106:in `block in serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:106:in `map'
    /rails/activejob/lib/active_job/arguments.rb:106:in `serialize_argument'
    /rails/activejob/lib/active_job/arguments.rb:34:in `block in serialize'
    /rails/activejob/lib/active_job/arguments.rb:34:in `map'
    /rails/activejob/lib/active_job/arguments.rb:34:in `serialize'
    /rails/activejob/lib/active_job/core.rb:166:in `serialize_arguments'
    /rails/activejob/lib/active_job/core.rb:154:in `serialize_arguments_if_needed'
    /rails/activejob/lib/active_job/core.rb:101:in `serialize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:28:in `block in enqueue'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `synchronize'
    /rails/activejob/lib/active_job/queue_adapters/sneakers_adapter.rb:26:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:59:in `block in enqueue'
    /rails/activesupport/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
    /rails/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `block in instrument'
    /rails/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /rails/activesupport/lib/active_support/notifications.rb:203:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:28:in `instrument'
    /rails/activejob/lib/active_job/instrumentation.rb:9:in `block (2 levels) in <module:Instrumentation>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activejob/lib/active_job/logging.rb:24:in `tag_logger'
    /rails/activejob/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `instance_exec'
    /rails/activesupport/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
    /rails/activesupport/lib/active_support/callbacks.rb:137:in `run_callbacks'
    /rails/activejob/lib/active_job/enqueuing.rb:55:in `enqueue'
    /rails/activejob/lib/active_job/enqueuing.rb:22:in `perform_later'
    /rails/activejob/test/cases/rescue_test.rb:33:in `block in <class:RescueTest>'


rails test rails/activejob/test/cases/rescue_test.rb:32

......S.S...............

Finished in 0.245340s, 1402.1336 runs/s, 2963.2300 assertions/s.
344 runs, 727 assertions, 2 failures, 9 errors, 26 skips
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0