Project

General

Profile

Actions

Bug #17417

closed

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

Added by yahonda (Yasuo Honda) 4 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
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 #1

Updated by nobu (Nobuyoshi Nakada) 4 months ago

  • Status changed from Open to Closed

Updated by mame (Yusuke Endoh) 4 months ago

The issue was fixed at 520dcbd6009b07458d67309ae33a602d77062975. yahonda (Yasuo Honda), could you please try it and let us know if any error still occurs? Thanks!

Updated by yahonda (Yasuo Honda) 4 months ago

I have confirmed 520dcbd6009b07458d67309ae33a602d77062975 addresses SystemStackError: stack level too deep errors. Thanks for the quick fix.

Actions #4

Updated by kou (Kouhei Sutou) 4 months ago

  • Subject changed from Rais CI gets `SystemStackError: stack level too deep` since cee02d754d76563635c1db90d2ab6c01f8492470 to Rails CI gets `SystemStackError: stack level too deep` since cee02d754d76563635c1db90d2ab6c01f8492470
Actions #5

Updated by kou (Kouhei Sutou) 4 months ago

  • Description updated (diff)
Actions

Also available in: Atom PDF