Project

General

Profile

Actions

Bug #22263

open

NoMethodError: super: no superclass method 'require' for main — raised in a forked child process after a Ractor has exited in the parent (bisected to c59c4d717a)

Bug #22263: NoMethodError: super: no superclass method 'require' for main — raised in a forked child process after a Ractor has exited in the parent (bisected to c59c4d717a)

Added by yahonda (Yasuo Honda) 2 days ago. Updated 1 day ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 4.1.0dev (2026-08-25T14:03:04Z master 17026737cc) +PRISM [x86_64-linux]
[ruby-core:126497]

Description

1. First occurrence in Rails CI

https://buildkite.com/rails/rails-nightly/builds/4651#01a016ac-eaf9-4a71-9fb6-1924c8a7b9af
(job "activemodel (master-debug)", 2026-08-18, ruby 4.1.0dev (2026-08-18T13:12:35Z master 6b719acc57) +PRISM [x86_64-linux])

Two Active Model tests ran a short-lived Ractor in the test process. A few seconds later, RailtieTest forked child processes (Active Support's fork-based test isolation), and the children failed while booting a Rails application.

2. Steps to reproduce

A Rails checkout is required. Verified with Rails main 0f36bbf72c and the rubylang/ruby:master Docker image (ruby 4.1.0dev (2026-08-25T07:50:12Z master 753ace46fe)); it reproduces every run.

$ git clone https://github.com/rails/rails && cd rails && bundle install
$ cd activemodel
$ bundle exec ruby -w -Ilib:test bin/test test/cases/naming_test.rb test/cases/railtie_test.rb

3. Expected behavior

The forked child behaves like its parent: the Rails application boots and the child exits with status 0 (child: #<Process::Status: pid NNN exit 0>). The test pair reports 0 errors.

4. Actual behavior

The forked child raises an exception during require and exits with status 1; the parent process is unaffected:

$ bundle exec ruby -w -Ilib:test bin/test test/cases/naming_test.rb test/cases/railtie_test.rb
Source locally installed gems is ignoring #<Bundler::StubSpecification name=psych version=5.5.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=prism version=1.9.0 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=io-console version=0.8.2 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=io-console version=0.9.2 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=erb version=6.0.7 platform=ruby> because it is missing extensions
Source locally installed gems is ignoring #<Bundler::StubSpecification name=date version=3.5.1 platform=ruby> because it is missing extensions
Run options: --seed 20598

# Running:

............................................................E

Error:
RailtieTest#test_i18n_customize_full_message_defaults_to_false:
NoMethodError: super: no superclass method 'require' for main
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'Rails::Application#config'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/railtie.rb:148:in 'Rails::Railtie.config'
    test/cases/railtie_test.rb:16:in 'block in RailtieTest#setup'
    test/cases/railtie_test.rb:15:in 'Class#initialize'
    test/cases/railtie_test.rb:15:in 'Class#new'
    test/cases/railtie_test.rb:15:in 'RailtieTest#setup'


bin/test test/cases/railtie_test.rb:36

E

Error:
RailtieTest#test_secure_password_min_cost_is_false_in_the_development_environment:
NoMethodError: super: no superclass method 'require' for main
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'Rails::Application#config'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/railtie.rb:148:in 'Rails::Railtie.config'
    test/cases/railtie_test.rb:16:in 'block in RailtieTest#setup'
    test/cases/railtie_test.rb:15:in 'Class#initialize'
    test/cases/railtie_test.rb:15:in 'Class#new'
    test/cases/railtie_test.rb:15:in 'RailtieTest#setup'


bin/test test/cases/railtie_test.rb:22

E

Error:
RailtieTest#test_i18n_customize_full_message_can_be_disabled:
NoMethodError: super: no superclass method 'require' for main
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'Rails::Application#config'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/railtie.rb:148:in 'Rails::Railtie.config'
    test/cases/railtie_test.rb:16:in 'block in RailtieTest#setup'
    test/cases/railtie_test.rb:15:in 'Class#initialize'
    test/cases/railtie_test.rb:15:in 'Class#new'
    test/cases/railtie_test.rb:15:in 'RailtieTest#setup'


bin/test test/cases/railtie_test.rb:42

E

Error:
RailtieTest#test_secure_password_min_cost_is_true_in_the_test_environment:
NoMethodError: super: no superclass method 'require' for main
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'Rails::Application#config'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/railtie.rb:148:in 'Rails::Railtie.config'
    test/cases/railtie_test.rb:16:in 'block in RailtieTest#setup'
    test/cases/railtie_test.rb:15:in 'Class#initialize'
    test/cases/railtie_test.rb:15:in 'Class#new'
    test/cases/railtie_test.rb:15:in 'RailtieTest#setup'


bin/test test/cases/railtie_test.rb:29

E

Error:
RailtieTest#test_i18n_customize_full_message_can_be_enabled:
NoMethodError: super: no superclass method 'require' for main
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
    /home/yahonda/.local/share/mise/installs/ruby/trunk/lib/ruby/gems/4.1.0+4/gems/zeitwerk-2.8.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'require'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:484:in 'Rails::Application#config'
    /home/yahonda/src/github.com/rails/rails/railties/lib/rails/railtie.rb:148:in 'Rails::Railtie.config'
    test/cases/railtie_test.rb:16:in 'block in RailtieTest#setup'
    test/cases/railtie_test.rb:15:in 'Class#initialize'
    test/cases/railtie_test.rb:15:in 'Class#new'
    test/cases/railtie_test.rb:15:in 'RailtieTest#setup'


bin/test test/cases/railtie_test.rb:49



Finished in 0.088916s, 731.0243 runs/s, 820.9965 assertions/s.
65 runs, 73 assertions, 0 failures, 5 errors, 0 skips
$

5. Bisect result

c59c4d717a2e687972341eab1574196e97d7d7be introduces this behavior.

Related issues 1 (1 open0 closed)

Related to Ruby - Bug #22273: Aliasing doesn't interact well with Module#prependOpenActions
Actions

Also available in: PDF Atom