Bug #21671
openRails CI raises `Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26` with "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled
Description
Recently Rails CI using "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled ruby raises Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26 assertion failures.
https://buildkite.com/rails/rails-nightly/builds/3121#019a5af8-b2a1-4289-a791-3fefc14a2a41/1447-1452
Steps to reproduce¶
- Build Ruby with this configure option
./configure --prefix="/home/yahonda/.local/share/mise/installs/ruby/trunk" cppflags="-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" optflags="-O3 -fno-inline" --disable-install-doc
- Clone Rails repository and run Active Job integration tests
git clone https://github.com/rails/rails
cd rails/activejob
bundle update --bundler
bundle install
bundle exec rake test:integration
Expected behavior¶
All of tests should pass.
Actual behavior¶
It usually raises ./include/ruby/internal/core/rstring.h:391: Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26
I have attached the entire output as assertion_failed.log
Files
Updated by yahonda (Yasuo Honda) about 14 hours ago
I tried to identify which commit introduces this assertion failure but not found.
Updated by byroot (Jean Boussier) about 12 hours ago
The failure comes from rb_intern3 -> sym_find_or_insert_static_symbol (during Prism parsing).
cc @luke-gru (Luke Gruber) and @jhawthorn (John Hawthorn), maybe this ring a bell?