Skip to content

Segmentation Fault on Ubuntu with view_components #54

@noelblaschke

Description

@noelblaschke

Running rspec in a github action with ubuntu produces the following issue:

Run bundle exec rspec -t ~integration_test
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/herb-0.7.5-x86_64-linux-gnu/lib/herb/engine.rb:100: [BUG] Segmentation fault at 0x0000000000000000
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0075 p:---- s:0426 e:000425 CFUNC  :parse
c:0074 p:0520 s:0421 e:000420 METHOD /home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/herb-0.7.5-x86_64-linux-gnu/lib/herb/engine.rb:100
...
 -- Ruby level backtrace information ----------------------------------------
... starting from a component spec file
/home/runner/work/project_name/spec/rails_helper.rb:9:in '<top (required)>'
/home/runner/work/project_name/spec/rails_helper.rb:9:in 'require_relative'
/home/runner/work/project_name/config/environment.rb:7:in '<top (required)>'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/application.rb:444:in 'initialize!'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/initializable.rb:60:in 'run_initializers'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:208:in 'tsort_each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:229:in 'tsort_each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'each_strongly_connected_component'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'call'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:350:in 'each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:352:in 'block in each_strongly_connected_component'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:434:in 'each_strongly_connected_component_from'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:353:in 'block (2 levels) in each_strongly_connected_component'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/tsort-0.2.0/lib/tsort.rb:231:in 'block in tsort_each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/initializable.rb:61:in 'block in run_initializers'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/initializable.rb:32:in 'run'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/initializable.rb:32:in 'instance_exec'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/railties-8.0.3/lib/rails/application/finisher.rb:93:in 'block in <module:Finisher>'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:77:in 'run_load_hooks'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:77:in 'each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:78:in 'block in run_load_hooks'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:92:in 'execute_hook'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:87:in 'with_execution_control'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:99:in 'block in execute_hook'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.3/lib/active_support/lazy_load_hooks.rb:99:in 'instance_eval'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/engine.rb:90:in 'block (2 levels) in <class:Engine>'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/engine.rb:90:in 'each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/base.rb:589:in 'compile'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:26:in 'compile'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:26:in 'synchronize'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:49:in 'block in compile'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:63:in 'define_render_template_for'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:63:in 'each'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/compiler.rb:64:in 'block in define_render_template_for'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/template.rb:53:in 'compile_to_component'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/view_component-3.23.2/lib/view_component/template.rb:122:in 'compiled_source'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.3/lib/action_view/template/handlers/erb.rb:30:in 'call'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/reactionview-0.1.5/lib/reactionview/template/handlers/erb.rb:11:in 'call'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.3/lib/action_view/template/handlers/erb.rb:30:in 'call'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/reactionview-0.1.5/lib/reactionview/template/handlers/herb.rb:29:in 'call'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/reactionview-0.1.5/lib/reactionview/template/handlers/herb.rb:29:in 'new'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/reactionview-0.1.5/lib/reactionview/template/handlers/herb/herb.rb:25:in 'initialize'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/herb-0.7.5-x86_64-linux-gnu/lib/herb/engine.rb:100:in 'initialize'
/home/runner/work/project_name/vendor/bundle/ruby/3.4.0/gems/herb-0.7.5-x86_64-linux-gnu/lib/herb/engine.rb:100:in 'parse'

I'm using:

gem 'herb', '~> 0.7.5'
gem 'reactionview', '~> 0.1.5'
gem 'view_component', '~> 3.23.2'
gem 'view_component-contrib', '~> 0.2.5'

disabling reactionview just works fine (config.intercept_erb = false).

I was able to reproduce this issue locally (apple silicon) with ubuntu-latest (24.04) and 22.04 and act. It works fine with the official ruby:3.4.4-bookworm image on my local machine.

I'm still working on a reproducible version for this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions