
Issue #20588 has been updated by byroot (Jean Boussier). There is also: ``` Assertion Failed: /usr/src/ruby/include/ruby/internal/core/rarray.h:257:rb_array_len:RB_TYPE_P(a, RUBY_T_ARRAY) ruby 3.4.0dev (2024-06-23T06:59:37Z master acce96647d) +YJIT [x86_64-linux] actual type: 1-- Control frame information ----------------------------------------------- c:0031 p:0006 s:0172 e:000169 BLOCK /rails/activerecord/lib/active_record/relation.rb:548 c:0030 p:0052 s:0167 e:000166 METHOD /rails/activerecord/lib/active_record/relation.rb:1359 c:0029 p:0019 s:0158 e:000157 METHOD /rails/activerecord/lib/active_record/relation.rb:548 c:0028 p:0013 s:0152 e:000151 BLOCK /rails/activerecord/lib/active_record/scoping/named.rb:175 c:0027 p:0018 s:0146 e:000145 BLOCK /rails/actiontext/test/unit/strict_loading_test.rb:23 c:0026 p:0012 s:0142 e:000141 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:95 c:0025 p:0002 s:0139 e:000138 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:192 c:0024 p:0004 s:0134 e:000133 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:90 c:0023 p:0008 s:0131 e:000130 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:368 c:0022 p:0004 s:0126 e:000125 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:89 c:0021 p:0022 s:0123 e:000122 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:467 c:0020 p:0027 s:0115 E:001658 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:240 c:0019 p:0004 s:0108 E:001390 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:88 c:0018 p:0006 s:0104 e:000103 BLOCK /rails/activesupport/lib/active_support/executor/test_helper.rb:5 c:0017 p:0012 s:0101 e:000100 METHOD /rails/activesupport/lib/active_support/execution_wrapper.rb:104 c:0016 p:0009 s:0096 e:000095 METHOD /rails/activesupport/lib/active_support/executor/test_helper.rb:5 c:0015 p:0008 s:0091 e:000090 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:1200 c:0014 p:0019 s:0084 e:000082 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:433 c:0013 p:0009 s:0076 e:000075 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:420 [FINISH] c:0012 p:0027 s:0072 e:000071 METHOD <internal:array>:54 c:0011 p:0005 s:0066 e:000065 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:419 c:0010 p:0022 s:0063 e:000062 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:467 c:0009 p:0019 s:0055 E:001ee8 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:454 c:0008 p:0095 s:0048 E:001ba8 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:418 c:0007 p:0029 s:0039 e:000038 METHOD /rails/railties/lib/rails/test_unit/line_filtering.rb:10 c:0006 p:0008 s:0033 e:000032 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:332 [FINISH] c:0005 p:---- s:0029 e:000028 CFUNC :map c:0004 p:0025 s:0025 e:000024 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:332 c:0003 p:0141 s:0016 e:000015 METHOD /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:288 c:0002 p:0045 s:0008 E:001390 BLOCK /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:86 [FINISH] c:0001 p:0000 s:0003 E:000770 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:86:in 'block in autorun' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:288:in 'run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:332:in '__run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:332:in 'map' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:332:in 'block in __run' /rails/railties/lib/rails/test_unit/line_filtering.rb:10:in 'run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:418:in 'run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:454:in 'with_info_handler' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:467:in 'on_signal' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:419:in 'block in run' <internal:array>:54:in 'each' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:420:in 'block (2 levels) in run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:433:in 'run_one_method' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:1200:in 'run_one_method' /rails/activesupport/lib/active_support/executor/test_helper.rb:5:in 'run' /rails/activesupport/lib/active_support/execution_wrapper.rb:104:in 'perform' /rails/activesupport/lib/active_support/executor/test_helper.rb:5:in 'block in run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:88:in 'run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:240:in 'with_info_handler' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:467:in 'on_signal' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:89:in 'block in run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest.rb:368:in 'time_it' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:90:in 'block (2 levels) in run' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:192:in 'capture_exceptions' /usr/local/lib/ruby/gems/3.4.0+0/gems/minitest-5.24.0/lib/minitest/test.rb:95:in 'block (3 levels) in run' /rails/actiontext/test/unit/strict_loading_test.rb:23:in 'block in <class:StrictLoadingTest>' /rails/activerecord/lib/active_record/scoping/named.rb:175:in 'block in scope' /rails/activerecord/lib/active_record/relation.rb:548:in '_exec_scope' /rails/activerecord/lib/active_record/relation.rb:1359:in '_scoping' /rails/activerecord/lib/active_record/relation.rb:548:in 'block in _exec_scope' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 4 -- C level backtrace information ------------------------------------------- /usr/local/lib/libruby.so.3.4(rb_print_backtrace+0x22) [0x7f4f61fc6b72] /usr/src/ruby/vm_dump.c:820 /usr/local/lib/libruby.so.3.4(fprintf+0x0) [0x7f4f61fc6d38] /usr/src/ruby/vm_dump.c:1151 /usr/local/lib/libruby.so.3.4(rb_vm_bugreport) /usr/src/ruby/vm_dump.c:1154 /usr/local/lib/libruby.so.3.4(rb_assert_failure_detail+0x122) [0x7f4f61d79652] /usr/src/ruby/error.c:1189 /usr/local/lib/libruby.so.3.4(rb_array_len+0x68) [0x7f4f61f9c178] /usr/src/ruby/include/ruby/internal/core/rarray.h:257 /usr/local/lib/libruby.so.3.4(RARRAY_LENINT+0x9) [0x7f4f61f9c189] /usr/src/ruby/include/ruby/internal/core/rarray.h:283 /usr/local/lib/libruby.so.3.4(vm_call_cfunc_only_splat+0x29) [0x7f4f61fafa29] /usr/src/ruby/vm_insnhelper.c:3875 /usr/local/lib/libruby.so.3.4(vm_sendish+0x109) [0x7f4f61faf6b9] /usr/src/ruby/vm_insnhelper.c:5938 /usr/local/lib/libruby.so.3.4(rb_vm_send+0x81) [0x7f4f61fbc781] /usr/src/ruby/vm_insnhelper.c:5965 [0x7f4f625972d7] ``` ---------------------------------------- Bug #20588: RangeError: integer 132186463059104 too big to convert to 'int' since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce with YJIT enabled https://bugs.ruby-lang.org/issues/20588#change-108892 * Author: yahonda (Yasuo Honda) * Status: Open * Assignee: tenderlovemaking (Aaron Patterson) * ruby -v: ruby 3.4.0dev (2024-06-18T16:28:25Z master cdf33ed5f3) [x86_64-linux] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED ---------------------------------------- Managed to reproduce Rails CI failure https://buildkite.com/rails/rails-nightly/builds/679#0190324d-b73c-4602-b026... ### Steps to reproduce ``` git clone https://github.com/rails/rails cd rails/activerecord bundle install RUBY_YJIT_ENABLE=1 bin/test test/cases/scoping/relation_scoping_test.rb test/cases/associations/eager_test.rb --seed 1670 ``` ### Expected behavior It should pass. ### Actual behavior It always raises the `RangeError`. ``` $ RUBY_YJIT_ENABLE=1 bin/test test/cases/scoping/relation_scoping_test.rb test/cases/associations/eager_test.rb --seed 1670 Using sqlite3 Run options: --seed 1670 # Running: ........E Error: EagerAssociationTest#test_including_association_based_on_sql_condition_and_no_database_column: RangeError: integer 124299148641408 too big to convert to 'int' lib/active_record/relation.rb:548:in 'block in ActiveRecord::Relation#_exec_scope' lib/active_record/relation.rb:1359:in 'ActiveRecord::Relation#_scoping' lib/active_record/relation.rb:548:in 'ActiveRecord::Relation#_exec_scope' lib/active_record/scoping/named.rb:175:in 'block in Owner.scope' test/cases/associations/eager_test.rb:1524:in 'block in <class:EagerAssociationTest>' bin/test test/cases/associations/eager_test.rb:1523 ............................................................................................................................................................................................................................................................ Finished in 6.256788s, 41.7147 runs/s, 138.4097 assertions/s. 261 runs, 866 assertions, 0 failures, 1 errors, 0 skips $ ``` ### Additional information It does not reproduce when YJIT is disabled like `bin/test test/cases/scoping/relation_scoping_test.rb test/cases/associations/eager_test.rb --seed 1670` According to git bisect, this exception raised since https://github.com/ruby/ruby/commit/cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce -- https://bugs.ruby-lang.org/