Project

General

Profile

Bug #17417

Updated by kou (Kouhei Sutou) over 3 years ago

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 Rais 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 
 ```

Back