sprockets: Segfault

I received a Segfault after upgrading to sprockets 4.0. I haven’t gotten the error again, but I wanted to post it anyway. I’m not sure if this is the best spot for this, or if it needs to go under the sassc gem.

System configuration

  • Sprockets version 4.0.0
  • Ruby version 2.6.5
 Rendered dashboard/summary/index.html.erb within layouts/application (Duration: 40.0ms | Allocations: 22075)
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/engine.rb:42: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0046 p:---- s:0336 e:000335 CFUNC  :compile_data_context
c:0045 p:0298 s:0331 E:0020a0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/engine.rb:42
c:0044 p:0006 s:0319 E:0021a0 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:40
c:0043 p:0028 s:0316 E:002158 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/utils.rb:138
c:0042 p:0164 s:0309 E:0020e8 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:39
c:0041 p:0053 s:0300 E:0021a0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84
c:0040 p:0016 s:0292 E:002210 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66 [FINISH]
c:0039 p:---- s:0287 e:000286 CFUNC  :reverse_each
c:0038 p:0039 s:0283 E:0021e0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65
c:0037 p:0015 s:0275 E:002240 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:22
c:0036 p:0013 s:0270 E:002268 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:33
c:0035 p:0053 s:0265 E:0022b0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84
c:0034 p:0016 s:0257 E:002320 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66 [FINISH]
c:0033 p:---- s:0252 e:000251 CFUNC  :reverse_each
c:0032 p:0039 s:0248 E:0022f0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65
c:0031 p:0476 s:0240 E:0023d0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182
c:0030 p:0073 s:0218 E:002458 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59
c:0029 p:0038 s:0212 E:0024e0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335
c:0028 p:0157 s:0202 E:002418 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43
c:0027 p:0022 s:0193 E:002508 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44
c:0026 p:0111 s:0185 E:0025a0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/bundle.rb:27
c:0025 p:0053 s:0167 E:0025e0 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84
c:0024 p:0016 s:0159 E:002650 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66 [FINISH]
c:0023 p:---- s:0154 e:000153 CFUNC  :reverse_each
c:0022 p:0039 s:0150 E:002620 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65
c:0021 p:0476 s:0142 E:002700 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182
c:0020 p:0073 s:0120 E:000078 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59
c:0019 p:0038 s:0114 E:000100 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335
c:0018 p:0157 s:0104 E:000038 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43
c:0017 p:0022 s:0095 E:000128 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44
c:0016 p:0037 s:0087 E:000170 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/base.rb:81
c:0015 p:0027 s:0079 E:0001f8 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/base.rb:88
c:0014 p:0010 s:0068 E:001510 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/manifest.rb:125
c:0013 p:0021 s:0065 E:000270 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb
c:0012 p:0003 s:0058 E:002160 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable [FINISH]
c:0011 p:---- s:0055 e:000054 CFUNC  :synchronize
c:0010 p:0018 s:0051 E:001c20 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable
c:0009 p:0005 s:0047 E:000228 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb
c:0008 p:0023 s:0042 E:0002d8 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promise.rb:563
c:0007 p:0009 s:0036 E:000320 METHOD /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_exec
c:0006 p:0049 s:0028 E:000398 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_exec [FINISH]
c:0005 p:---- s:0022 e:000021 CFUNC  :loop
c:0004 p:0006 s:0018 E:002110 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_exec [FINISH]
c:0003 p:---- s:0015 e:000014 CFUNC  :catch
c:0002 p:0020 s:0010 E:000360 BLOCK  /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_exec [FINISH]
c:0001 p:---- s:0003 e:000002 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/promise.rb:563:in `block in realize'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb:19:in `execute'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/base.rb:88:in `find_all_linked_assets'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/base.rb:81:in `find_asset'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44:in `load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43:in `load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59:in `block in load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182:in `load_from_unloaded'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/bundle.rb:27:in `call'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/cached_environment.rb:44:in `load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:43:in `load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:59:in `block in load'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/loader.rb:182:in `load_from_unloaded'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:33:in `call'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:65:in `reverse_each'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/processor_utils.rb:84:in `call_processor'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:39:in `call'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sprockets-4.0.0/lib/sprockets/utils.rb:138:in `module_include'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:40:in `block in call'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/engine.rb:42:in `render'
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/engine.rb:42:in `compile_data_context'

-- Machine register context ------------------------------------------------
 rax: 0x00007f9b2eb04100 rbx: 0x00007f9b2eb04118 rcx: 0x6be10b18a8aa008e
 rdx: 0x6be10b18a8aa008e rdi: 0x000070000a5ca7f0 rsi: 0x000070000a5ca7f0
 rbp: 0x000070000a5cb1d0 rsp: 0x000070000a5ca820  r8: 0x00007f9b26ad4328
  r9: 0x00007f9b2b3dadd0 r10: 0x0000000107cd3e68 r11: 0x0000000107cd3e30
 r12: 0x0000000000000000 r13: 0x00007f9b2eb5e950 r14: 0x0000000000000000
 r15: 0x00007f9b2ebf0920 rip: 0x0000000107e59b36 rfl: 0x0000000000010293

-- C level backtrace information -------------------------------------------
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_bugreport+0x82) [0x1045e7ad2]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_bug_context+0x1d6) [0x1044372d6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(sigsegv+0x51) [0x10454ca01]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x1d) [0x7fff656ceb1d]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(_ZN4Sass4EvalclEPNS_13Function_CallE+0x2da6) [0x107e59b36]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e6f40d) [0x107e6f40d]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e7e490) [0x107e7e490]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e6c53b) [0x107e6c53b]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e6d1c6) [0x107e6d1c6]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e7e490) [0x107e7e490]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e6c53b) [0x107e6c53b]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107d2c7b3) [0x107d2c7b3]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107d32080) [0x107d32080]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e48e5a) [0x107e48e5a]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.2.1/lib/sassc/libsass.bundle(0x107e48bea) [0x107e48bea]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.11.1/lib/ffi_c.bundle(ffi_call_unix64+0x55) [0x107cd3c6d]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.11.1/lib/ffi_c.bundle(0x107cd2e4b) [0x107cd2e4b]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.11.1/lib/ffi_c.bundle(0x107cd2996) [0x107cd2996]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.11.1/lib/ffi_c.bundle(rbffi_CallFunction+0xde) [0x107cc767e]
/Users/9mm/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ffi-1.11.1/lib/ffi_c.bundle(custom_trampoline+0x19) [0x107ccb249]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x33ea) [0x1045c0fda]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_yield+0x9e) [0x1045cdf9e]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_ary_reverse_each+0x8b) [0x1043b588b]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_yield+0x9e) [0x1045cdf9e]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_ary_reverse_each+0x8b) [0x1043b588b]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_yield+0x9e) [0x1045cdf9e]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_ary_reverse_each+0x8b) [0x1043b588b]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_yield+0x9e) [0x1045cdf9e]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_ensure+0xf5) [0x104442df5]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(loop_i+0x23) [0x1045e39c3]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_rescue2+0x155) [0x1044429b5]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(catch_i+0x5e) [0x1045e394e]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_catch_protect+0xd5) [0x1045d02c5]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_f_catch+0x57) [0x1045d0aa7]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_call_cfunc+0x156) [0x1045da3b6]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(vm_exec_core+0x3153) [0x1045c0d43]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(rb_vm_exec+0xac4) [0x1045d4df4]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(thread_do_start+0x2e8) [0x1045929c8]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(thread_start_func_2+0x1f5) [0x1045923b5]
/Users/9mm/.rbenv/versions/2.6.5/bin/ruby(thread_start_func_1+0x117) [0x104591fe7]
/usr/lib/system/libsystem_pthread.dylib(_pthread_start+0x7d) [0x7fff656d9d76]

-- Other runtime information -----------------------------------------------

* Loaded script: puma: cluster worker 1: 45174 [app]

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/x86_64-darwin18/enc/encdb.bundle
    5 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/x86_64-darwin18/enc/trans/transdb.bundle
    6 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/x86_64-darwin18/rbconfig.rb
    7 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/compatibility.rb
    8 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/defaults.rb
    9 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/deprecate.rb
   10 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/errors.rb
   11 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/version.rb
   12 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/requirement.rb
   13 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/platform.rb
   14 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/basic_specification.rb
   15 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/stub_specification.rb
   16 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/delegate.rb
   17 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/rfc2396_parser.rb
   18 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/rfc3986_parser.rb
   19 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/common.rb
   20 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/generic.rb
   21 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/file.rb
   22 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/ftp.rb
   23 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/http.rb
   24 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/https.rb
   25 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/ldap.rb
   26 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/ldaps.rb
   27 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri/mailto.rb
   28 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/uri.rb
   29 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/specification_policy.rb
   30 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/util/list.rb
   31 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/x86_64-darwin18/stringio.bundle
   32 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/specification.rb
   33 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/exceptions.rb
   34 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/util.rb
   35 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb
   36 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/dependency.rb
   37 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_gem.rb
   38 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb
   39 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb
   40 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_warn.rb
   41 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems.rb
   42 /Users/9mm/.rbenv/versions/2.6.5/lib/ruby/2.6.0/rubygems/path_support.rb

   ... 5000 more lines ...

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Reactions: 26
  • Comments: 23 (2 by maintainers)

Commits related to this issue

Most upvoted comments

For what it’s worth, we needed to set export_concurrent = false in a block:

Rails.application.config.assets.configure do |env|
  env.export_concurrent = false
end

I’m not sure what the difference is, but setting it in a one-liner did not make a difference.

# THIS DOES NOT WORK
Rails.application.config.assets.export_concurrent = false

I don’t know if this is helpful, but I can tell you how I tracked down my problem. Maybe it will help you, because I’m my case it was a ridiculous needle in the haystack. I used gemified assets on my large projects so it was particularly hard to track down especially since other projects used the same pack of assets. I went old-school and forked sassc-ruby and printed debug messages before the offending line.

Looking at my own segfault and others’, the offending line is almost always this line in the sassc-ruby engine

I went old-school and printed a few debug messages before the offending line

status = Native.compile_data_context(data_context)

As for instance variable, in my case:

  • filename is almost always empty
  • context and data_context, native_options all hold FFI pointers with the same address
  • options almost always just has {style: :compressed} in it

Sadly the only useful instance variable seems to be template which holds the contents of the asset (css or scsss). Luckily enough for me it was a vendor css file with it’s name at the top. I went to that file exactly to see what was wrong and turns out that the file name was blah.css but it was edited to have asset_url helpers in it. Literally just renaming the file to blah.scss meant all of my assets compiled. And not just for sprockets 3.7.2 but for 4.0.0 as well.

I don’t have much experience binding C and Ruby but seems to me that we need to wrap sassc-ruby’s line:

status = Native.compile_data_context(data_context)

with something that can fail gracefully (?).

Also why aren’t file names non-empty/present? That would help people tremendously to have a mode like rails assets:precompile --verbose that simply prints the current asset being processed so we have a place to look for issues.

Lastly, given css is a subset of scss, would it be a bad idea to import all css as scss/sass, expecially if config.assets.css_compressor = :sass ?

After adding (and downgrading at same time) gem 'sprockets', '3.7.2' to my Gemfile, on my Rails 6 app, it works again. 👊

I had a similar segmentation fault issue caused by asset_path call after upgrading to sprockets 4.0.0, though I was able to fix the issue by downgrading sassc gem from 2.2.1 to 2.1.0

Downgrading sassc didn’t work for me, had to revert the sproket upgrade