[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Issue #20586 has been reported by ivoanjo (Ivo Anjo).
13 messages
2024/06/19
[ruby-core:118377] [Ruby master Bug#20588] RangeError: integer 132186463059104 too big to convert to 'int' since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce with YJIT enabled
From:
"yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>
Date:
2024-06-24 05:52:41 UTC
List:
ruby-core #118377
Issue #20588 has been updated by yahonda (Yasuo Honda).
There is another Rails CI failure https://buildkite.com/rails/rails-nightly/builds/683#01903773-e527-4777-8dd1-7656c1ab9cbc/1214-1277 since cdf33ed5f3
```
$ ruby -v
ruby 3.4.0dev (2024-06-18T16:28:25Z master cdf33ed5f3) [x86_64-linux]
$ git clone https://github.com/rails/rails
$ cd rails/activestorage
$ bundle
$ bin/test "test/analyzer/audio_analyzer_test.rb" "test/analyzer/image_analyzer/image_magick_test.rb" "test/analyzer/image_analyzer/vips_test.rb" "test/analyzer/video_analyzer_test.rb" "test/controllers/blobs/proxy_controller_test.rb" "test/controllers/blobs/redirect_controller_test.rb" "test/controllers/direct_uploads_controller_test.rb" "test/controllers/disk_controller_test.rb" "test/controllers/representations/proxy_controller_test.rb" "test/controllers/representations/redirect_controller_test.rb" "test/engine_test.rb" "test/fixture_set_test.rb" "test/javascript_package_test.rb" "test/jobs/analyze_job_test.rb" "test/jobs/preview_image_job_test.rb" "test/jobs/purge_job_test.rb" "test/jobs/transform_job_test.rb" "test/migrations_test.rb" "test/models/attached/many_test.rb" "test/models/attached/one_test.rb" "test/models/attachment_test.rb" "test/models/blob_test.rb" "test/models/filename_test.rb" "test/models/presence_validation_test.rb" "test/models/preview_test.rb" "test/models/r
eflection_test.rb" "test/models/representation_test.rb" "test/models/strict_loading_test.rb" "test/models/variant_test.rb" "test/models/variant_with_record_test.rb" "test/previewer/mupdf_previewer_test.rb" "test/previewer/poppler_pdf_previewer_test.rb" "test/previewer/video_previewer_test.rb" "test/service/azure_storage_public_service_test.rb" "test/service/azure_storage_service_test.rb" "test/service/configurator_test.rb" "test/service/disk_public_service_test.rb" "test/service/disk_service_test.rb" "test/service/gcs_public_service_test.rb" "test/service/gcs_service_test.rb" "test/service/mirror_service_test.rb" "test/service/s3_public_service_test.rb" "test/service/s3_service_test.rb" "test/template/audio_tag_test.rb" "test/template/image_tag_test.rb" "test/template/video_tag_test.rb" "test/urls/rails_storage_proxy_url_test.rb" "test/urls/rails_storage_redirect_url_test.rb" --seed 9888
```
- Actual result
```
Failure:
ActiveStorage::Representations::ProxyControllerWithPreviewsTest#test_showing_preview_inline [test/controllers/representations/proxy_controller_test.rb:135]:
Expected response to be a <200: ok>, but was a <500: Internal Server Error>
Response body: .
Expected: 200
Actual: 500
bin/test test/controllers/representations/proxy_controller_test.rb:129
...........................
Finished in 18.296045s, 26.3445 runs/s, 79.6894 assertions/s.
482 runs, 1458 assertions, 1 failures, 0 errors, 1 skips
You have skipped tests. Run with --verbose for details.
$
```
----------------------------------------
Bug #20588: RangeError: integer 132186463059104 too big to convert to 'int' since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce with YJIT enabled
https://bugs.ruby-lang.org/issues/20588#change-108889
* 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-9c40cf9ca4a8
### 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/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/