Project

General

Profile

Actions

Bug #18575

closed

[BUG] unsupported: T_NONE

Added by PhilCoggins (Phil Coggins) about 2 years ago. Updated about 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
[ruby-core:107504]

Description

I am seeing this error cropping up in my application, particularly when processing large CSV files. It seems to be semi-related to https://bugs.ruby-lang.org/issues/16689 (Hash#transform_values!, but this particular issue is with Hash#transform_keys!). I am unable how to get a repro script, but it would be very helpful if the one from the linked issue were still available. This seems to be an issue with an unsupported condition in the transient heap (https://github.com/ruby/ruby/blob/v3_0_1/transient_heap.c#L740). Any guidance would be much appreciated, thank you!

Below is the Control Frame Info:

/app/packages/imports-exports/app/models/import.rb:276: [BUG] unsupported: T_NONE 
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux] 
-- Control frame information ----------------------------------------------- 
c:0065 p:---- s:0356 e:000355 CFUNC  :transform_keys! 
c:0064 p:0012 s:0352 e:000351 BLOCK  /app/packages/imports-exports/app/models/import.rb:276 [FINISH] 
c:0063 p:---- s:0347 e:000346 IFUNC  
c:0062 p:---- s:0344 e:000343 CFUNC  :each 
c:0061 p:0042 s:0340 e:000339 METHOD /app/vendor/ruby-3.0.2/lib/ruby/3.0.0/csv/table.rb:539 [FINISH] 
c:0060 p:---- s:0335 e:000334 CFUNC  :map 
c:0059 p:0036 s:0331 E:000448 METHOD /app/packages/imports-exports/app/models/import.rb:274 
c:0058 p:0037 s:0326 e:000325 METHOD /app/packages/imports-exports/app/models/import.rb:200 
c:0057 p:0005 s:0322 e:000321 METHOD /app/packages/fuel/app/public/fleetcor_service/cards_importer.rb:12 
c:0056 p:0020 s:0318 e:000317 METHOD /app/packages/fuel/app/services/concerns/fuel_card_service/base_importer.rb:13 
c:0055 p:0008 s:0311 e:000310 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:196 
c:0054 p:0013 s:0305 e:000304 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:164 
c:0053 p:0009 s:0302 e:000301 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:138 
c:0052 p:0002 s:0299 e:000298 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-throttled-0.15.0/lib/sidekiq/throttled/middleware.rb:14 
c:0051 p:0023 s:0292 e:000291 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0050 p:0005 s:0289 e:000286 METHOD /app/lib/sidekiq/middleware/server_notifications.rb:5 
c:0049 p:0023 s:0279 e:000278 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0048 p:0508 s:0276 e:000275 METHOD /app/lib/sidekiq/middleware/server_metrics.rb:47 
c:0047 p:0023 s:0261 e:000260 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0046 p:0202 s:0258 e:000257 METHOD /app/lib/sidekiq/middleware/server_paper_trail.rb:21 
c:0045 p:0023 s:0251 e:000250 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0044 p:0012 s:0248 e:000247 METHOD /app/lib/sidekiq/middleware/server_current_context.rb:8 
c:0043 p:0023 s:0241 e:000240 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0042 p:0089 s:0238 e:000237 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-status-2.1.3/lib/sidekiq-status/server_middleware.rb:42 
c:0041 p:0023 s:0227 e:000226 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0040 p:0102 s:0224 e:000223 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/newrelic_rpm-8.4.0/lib/new_relic/agent/instrumentation/sidekiq.rb:35 
c:0039 p:0189 s:0221 e:000220 METHOD /app/vendor/bundle/ruby/3.0.0/gems/newrelic_rpm-8.4.0/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:377 
c:0038 p:0052 s:0206 e:000205 METHOD /app/vendor/bundle/ruby/3.0.0/gems/newrelic_rpm-8.4.0/lib/new_relic/agent/instrumentation/sidekiq.rb:30 
c:0037 p:0023 s:0196 e:000195 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0036 p:0002 s:0193 e:000192 METHOD /app/vendor/bundle/ruby/3.0.0/gems/request_store-sidekiq-0.1.0/lib/request_store/sidekiq/server_middleware.rb:5 
c:0035 p:0023 s:0186 e:000185 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0034 p:0052 s:0183 e:000182 METHOD /app/config/initializers/acts_as_tenant.rb:14 
c:0033 p:0023 s:0174 e:000173 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0032 p:0003 s:0171 e:000170 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/appsignal-3.0.20/lib/appsignal/integrations/sidekiq.rb:54 
c:0031 p:0050 s:0168 e:000167 METHOD /app/vendor/bundle/ruby/3.0.0/gems/appsignal-3.0.20/lib/appsignal/helpers/instrumentation.rb:525 
c:0030 p:0082 s:0160 e:000159 METHOD /app/vendor/bundle/ruby/3.0.0/gems/appsignal-3.0.20/lib/appsignal/integrations/sidekiq.rb:53 
c:0029 p:0023 s:0148 e:000147 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:140 
c:0028 p:0024 s:0145 E:0021d8 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/middleware/chain.rb:143 
c:0027 p:0021 s:0138 E:001ec8 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:163 
c:0026 p:0005 s:0134 e:000133 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:136 
c:0025 p:0002 s:0131 e:000130 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/job_retry.rb:114 
c:0024 p:0045 s:0120 e:000119 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:135 
c:0023 p:0003 s:0115 e:000114 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/rails.rb:14 
c:0022 p:0015 s:0112 e:000111 METHOD /app/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.4.4/lib/active_support/execution_wrapper.rb:88 
c:0021 p:0005 s:0107 e:000106 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.4.4/lib/active_support/reloader.rb:72 
c:0020 p:0015 s:0104 e:000103 METHOD /app/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.4.4/lib/active_support/execution_wrapper.rb:88 
c:0019 p:0006 s:0099 e:000098 METHOD /app/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.4.4/lib/active_support/reloader.rb:71 
c:0018 p:0008 s:0095 e:000094 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/rails.rb:13 
c:0017 p:0007 s:0091 e:000090 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:131 
c:0016 p:0042 s:0088 e:000087 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:257 
c:0015 p:0011 s:0082 e:000081 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:126 
c:0014 p:0042 s:0079 e:000078 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/job_logger.rb:13 
c:0013 p:0013 s:0072 e:000071 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:125 
c:0012 p:0002 s:0069 e:000068 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/job_retry.rb:81 
c:0011 p:0011 s:0059 e:000058 BLOCK  /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:124 
c:0010 p:0017 s:0056 e:000055 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/logger.rb:11 
c:0009 p:0046 s:0050 e:000049 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/job_logger.rb:33 
c:0008 p:0008 s:0043 e:000042 METHOD /app/vendor/bundle/ruby/3.0.0/gems/sidekiq-6.4.0/lib/sidekiq/processor.rb:123 

And the calling implementation that triggers it does the following:

CSV.parse(
  data,
  headers: true,
  col_sep: delimiter,
  quote_char: quote_char,
  skip_blanks: true,
  converters: converter
).map do |row|
  obj = row.to_h
  obj.transform_keys! { |k| k.strip.downcase }.with_indifferent_access # this is line /app/packages/imports-exports/app/models/import.rb:276
end

Updated by PhilCoggins (Phil Coggins) about 2 years ago

I think i have managed to produce a relatively simply repro script:

require 'csv'
parsed = CSV.parse("Foo,bAr,baZ\nfoo,bar,baz", headers: true)

while true
  parsed.map do |row|
    obj = row.to_h
    obj.transform_keys! { |k| k.strip.downcase }
  end
end
$ ruby repro.rb
repro.rb:7: [BUG] unsupported: T_NONE

ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin20]

-- 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:0010 p:---- s:0040 e:000039 CFUNC  :downcase
c:0009 p:0007 s:0036 e:000035 BLOCK  repro.rb:7 [FINISH]
c:0008 p:---- s:0032 e:000031 CFUNC  :transform_keys!
c:0007 p:0012 s:0028 e:000027 BLOCK  repro.rb:7 [FINISH]
c:0006 p:---- s:0023 e:000022 IFUNC 
c:0005 p:---- s:0020 e:000019 CFUNC  :each
c:0004 p:0042 s:0016 e:000015 METHOD /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/table.rb:539 [FINISH]
c:0003 p:---- s:0011 e:000010 CFUNC  :map
c:0002 p:0032 s:0007 E:001668 EVAL   repro.rb:5 [FINISH]
c:0001 p:0000 s:0003 E:000c40 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
repro.rb:5:in `<main>'
repro.rb:5:in `map'
/Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/table.rb:539:in `each'
/Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/table.rb:539:in `each'
repro.rb:7:in `block in <main>'
repro.rb:7:in `transform_keys!'
repro.rb:7:in `block (2 levels) in <main>'
repro.rb:7:in `downcase'

-- C level backtrace information -------------------------------------------
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_vm_bugreport+0x6cf) [0x10d93dd5f]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_bug_without_die+0x184) [0x10d757504]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_bug+0x6f) [0x10d94ab79]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(transient_heap_block_evacuate.cold.1+0x1a) [0x10d94c7ba]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(transient_heap_block_evacuate+0xc5) [0x10d8fb835]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(transient_heap_evacuate+0x58) [0x10d8fb1a8]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_postponed_job_flush+0x24f) [0x10d94394f]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_threadptr_execute_interrupts+0xfe) [0x10d8d7d8e]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_call_cfunc_with_frame+0x271) [0x10d9339f1]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_sendish+0x516) [0x10d92b506]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_exec_core+0x39f0) [0x10d910580]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_vm_exec+0xcab) [0x10d926c0b]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(invoke_block_from_c_bh+0x70c) [0x10d93797c]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_yield+0xa7) [0x10d91e937]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_hash_transform_keys_bang+0x217) [0x10d78f4e7]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_call_cfunc_with_frame+0x14f) [0x10d9338cf]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_sendish+0x516) [0x10d92b506]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_exec_core+0x398d) [0x10d91051d]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_vm_exec+0xcab) [0x10d926c0b]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(invoke_block_from_c_bh+0x70c) [0x10d93797c]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_yield_values2+0x5e) [0x10d91ec3e]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(collect_i+0x13) [0x10d749563]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(invoke_block_from_c_bh+0x437) [0x10d9376a7]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_yield+0xa7) [0x10d91e937]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_ary_each+0x37) [0x10d6b8eb7]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_call_cfunc_with_frame+0x14f) [0x10d9338cf]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_sendish+0x516) [0x10d92b506]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_exec_core+0x398d) [0x10d91051d]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_vm_exec+0xcab) [0x10d926c0b]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_call0+0x6b2) [0x10d936dd2]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(iterate_method+0x41) [0x10d91f461]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_iterate0+0x221) [0x10d91f321]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_lambda_call+0x69) [0x10d91f569]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(enum_collect+0x58) [0x10d746378]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_call_cfunc_with_frame+0x14f) [0x10d9338cf]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_sendish+0x516) [0x10d92b506]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(vm_exec_core+0x398d) [0x10d91051d]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_vm_exec+0xcab) [0x10d926c0b]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(rb_ec_exec_node+0x136) [0x10d762b06]
/Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib(ruby_run_node+0x57) [0x10d762977]
/Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby(main+0x5d) [0x10d16cf0d]

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

* Loaded script: repro.rb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 ruby2_keywords.rb
    5 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/encdb.bundle
    6 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/trans/transdb.bundle
    7 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/rbconfig.rb
    8 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/compatibility.rb
    9 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/defaults.rb
   10 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/deprecate.rb
   11 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/errors.rb
   12 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/exceptions.rb
   13 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/basic_specification.rb
   14 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/stub_specification.rb
   15 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/text.rb
   16 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/user_interaction.rb
   17 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/specification_policy.rb
   18 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/util/list.rb
   19 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/platform.rb
   20 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/version.rb
   21 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/requirement.rb
   22 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/specification.rb
   23 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/util.rb
   24 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/dependency.rb
   25 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/core_ext/kernel_gem.rb
   26 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/monitor.bundle
   27 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/monitor.rb
   28 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb
   29 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/core_ext/kernel_warn.rb
   30 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems.rb
   31 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/rubygems/path_support.rb
   32 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/version.rb
   33 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/core_ext/name_error.rb
   34 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/levenshtein.rb
   35 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/jaro_winkler.rb
   36 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checker.rb
   37 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   38 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   39 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/name_error_checkers.rb
   40 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/method_name_checker.rb
   41 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/key_error_checker.rb
   42 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/null_checker.rb
   43 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/tree_spell_checker.rb
   44 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/spell_checkers/require_path_checker.rb
   45 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean/formatters/plain_formatter.rb
   46 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/did_you_mean.rb
   47 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/forwardable/impl.rb
   48 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/forwardable.rb
   49 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/English.rb
   50 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/date_core.bundle
   51 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/date.rb
   52 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/stringio.bundle
   53 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/fields_converter.rb
   54 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/match_p.rb
   55 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/strscan.bundle
   56 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/delete_suffix.rb
   57 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/row.rb
   58 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/table.rb
   59 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/parser.rb
   60 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/writer.rb
   61 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/version.rb
   62 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/core_ext/array.rb
   63 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv/core_ext/string.rb
   64 /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/csv.rb

* Process memory map:

10d169000-10d16d000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby
10d16d000-10d171000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby
10d171000-10d175000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby
10d175000-10d176000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby
10d176000-10d179000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d179000-10d279000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d279000-10d27b000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d27b000-10d27d000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d27d000-10d27e000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d27e000-10d282000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d282000-10d283000 --- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d283000-10d28c000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d28c000-10d28d000 --- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d28d000-10d28e000 --- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d28e000-10d297000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d297000-10d298000 --- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d298000-10d299000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d299000-10d29a000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d29a000-10d2a1000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d2a1000-10d2a2000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d2a2000-10d2e2000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d2ee000-10d34e000 r-x /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d34e000-10d352000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d352000-10d356000 rw- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d356000-10d366000 r-- /usr/local/Cellar/gmp/6.2.1_1/lib/libgmp.10.dylib
10d366000-10d373000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/bin/ruby
10d373000-10d377000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/encdb.bundle
10d377000-10d37b000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/encdb.bundle
10d37b000-10d37f000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/encdb.bundle
10d37f000-10d383000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/encdb.bundle
10d383000-10d387000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/trans/transdb.bundle
10d387000-10d38b000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/trans/transdb.bundle
10d38b000-10d38f000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/trans/transdb.bundle
10d38f000-10d393000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/enc/trans/transdb.bundle
10d393000-10d397000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/monitor.bundle
10d397000-10d39b000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/monitor.bundle
10d39b000-10d39f000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/monitor.bundle
10d39f000-10d3a3000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/monitor.bundle
10d3b7000-10d3bf000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/stringio.bundle
10d3bf000-10d3c3000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/stringio.bundle
10d3c3000-10d3c7000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/stringio.bundle
10d3c7000-10d3cb000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/stringio.bundle
10d3cb000-10d3cf000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/strscan.bundle
10d3cf000-10d3d3000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/strscan.bundle
10d3d3000-10d3d7000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/strscan.bundle
10d3d7000-10d3db000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/strscan.bundle
10d40b000-10d453000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/date_core.bundle
10d453000-10d457000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/date_core.bundle
10d457000-10d45b000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/date_core.bundle
10d45b000-10d473000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/ruby/3.0.0/x86_64-darwin20/date_core.bundle
10d6b4000-10d9f4000 r-x /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10d9f4000-10d9fc000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10d9fc000-10da00000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10da00000-10da10000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10da10000-10db00000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10db00000-10db01000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10db01000-10dba2000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dba2000-10dba3000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dba3000-10dc44000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dc44000-10dc45000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dc45000-10dce6000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dce6000-10dce7000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dce7000-10dd88000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dd88000-10dd89000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10dd89000-10de2a000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10de2a000-10de2b000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10de2b000-10decc000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10decc000-10decd000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10decd000-10df6e000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10df6e000-10df6f000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10df6f000-10e010000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e010000-10e011000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e011000-10e0b2000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e0b2000-10e0b3000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e0b3000-10e154000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e154000-10e155000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e155000-10e1f6000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e1f6000-10e1f7000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e1f7000-10e298000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e298000-10e299000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e299000-10e33a000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e33a000-10e33b000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e33b000-10e3dc000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e3dc000-10e3dd000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e3dd000-10e47e000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e47e000-10e47f000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e47f000-10e520000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e520000-10e521000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e521000-10e5c2000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e5c2000-10e5c3000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e5c3000-10e664000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e664000-10e665000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e665000-10e706000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e706000-10e707000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e707000-10e7a8000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e7a8000-10e7a9000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e7a9000-10e84a000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e84a000-10e84b000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e84b000-10e8ec000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e8ec000-10e8ed000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e8ed000-10e98e000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e98e000-10e98f000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10e98f000-10ea30000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ea30000-10ea31000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ea31000-10ead2000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ead2000-10ead3000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ead3000-10eb74000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10eb74000-10eb75000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10eb75000-10ec16000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ec16000-10ec17000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ec17000-10ecb8000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ecb8000-10ecb9000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ecb9000-10ed5a000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ed5a000-10ed5b000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ed5b000-10edfc000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10edfc000-10edfd000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10edfd000-10ee9e000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ee9e000-10ee9f000 --- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ee9f000-10ef40000 rw- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
10ef40000-10f37b000 r-- /Users/philcoggins/.rbenv/versions/3.0.2/lib/libruby.3.0.dylib
110db1000-110e1d000 r-x /usr/lib/dyld
110e1d000-110e31000 r-- /usr/lib/dyld
110e31000-110e35000 rw- /usr/lib/dyld
110e35000-110e66000 r-- /usr/lib/dyld
110e66000-110e69000 r--
600000000000-600008000000 rw-
600008000000-600010000000 rw-
600010000000-600018000000 rw-
600018000000-600020000000 rw-
600020000000-600028000000 rw-
600028000000-600030000000 rw-
600030000000-600038000000 rw-
600038000000-600040000000 rw-
700007c61000-700007c62000 ---
700007c62000-700007ce4000 rw-
7f942a700000-7f942a800000 rw-
7f942a800000-7f942b000000 rw-
7f942b000000-7f942b100000 rw-
7f942b100000-7f942b11b000 rw-
7f942b11b000-7f942b21b000 rw-
7f942b21b000-7f942b22b000 rw-
7f942b22b000-7f942b28b000 rw-
7f942b28b000-7f942b297000 rw-
7f942b297000-7f942b2af000 rw-
7f942b2af000-7f942b2be000 rw-
7f942b2be000-7f942b2db000 rw-
7f942b2db000-7f942b314000 rw-
7f942b400000-7f942b500000 rw-
7f942b500000-7f942b600000 rw-
7f942b600000-7f942b700000 rw-
7f942b800000-7f942c000000 rw-
7f942c000000-7f942e000000 rw-
7f942e000000-7f942e800000 rw-
7f942e800000-7f942f000000 rw-
7f942f000000-7f942f800000 rw-
7ff7aed97000-7ff7b2597000 ---
7ff7b2597000-7ff7b2d97000 rw-
7ff800000000-7ff840000000 r--
7ff840000000-7ff85e64e000 r--
7ff85e64e000-7ff85e800000 rw-
7ff85e800000-7ff85ea00000 rw-
7ff85ea00000-7ff85ec00000 rw-
7ff85ec00000-7ff85ee00000 r--
7ff85ee00000-7ff85f000000 rw-
7ff85f000000-7ff85f200000 rw-
7ff85f200000-7ff860000000 r--
7ff860000000-7ff860200000 rw-
7ff860200000-7ff880000000 r--
7ff880000000-7ffffe000000 r--
7fffffe00000-7fffffe01000 r--
7ffffff82000-7ffffff83000 r-x
[IMPORTANT]
Don't forget to include the Crash Report log file under
DiagnosticReports directory in bug reports.

[1]    99504 abort      ruby repro.rb
$ cat ~/Library/Logs/DiagnosticReports/ruby-2022-02-07-154106.ips
{"app_name":"ruby","timestamp":"2022-02-07 15:41:06.00 -0700","app_version":"","slice_uuid":"b083fc54-098f-3225-99be-d80f4de59f56","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 12.1 (21C52)","incident_id":"F2C50FC0-B849-4300-A3BC-2601ADD3EFB9","name":"ruby"}
{
  "uptime" : 350000,
  "procLaunch" : "2022-02-07 15:40:56.8138 -0700",
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro16,1",
  "procStartAbsTime" : 358751486355820,
  "coalitionID" : 1513,
  "osVersion" : {
    "train" : "macOS 12.1",
    "build" : "21C52",
    "releaseType" : "User"
  },
  "captureTime" : "2022-02-07 15:41:06.0562 -0700",
  "incident" : "F2C50FC0-B849-4300-A3BC-2601ADD3EFB9",
  "bug_type" : "309",
  "pid" : 99504,
  "procExitAbsTime" : 358760727965401,
  "cpuType" : "X86-64",
  "procName" : "ruby",
  "procPath" : "\/Users\/USER\/*\/ruby",
  "parentProc" : "zsh",
  "parentPid" : 86981,
  "coalitionName" : "com.apple.Terminal",
  "crashReporterKey" : "4FAAD540-3092-A61F-4759-EF05C4270430",
  "responsiblePid" : 66601,
  "responsibleProc" : "Terminal",
  "wakeTime" : 29848,
  "bridgeVersion" : {"build":"19P647","train":"6.1"},
  "sleepWakeUUID" : "8EBFA601-0497-4BBD-AF8F-E4AC2106FB87",
  "sip" : "enabled",
  "isCorpse" : 1,
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
  "asi" : {"libsystem_c.dylib":["abort() called"]},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":4547385,"threadState":{"r13":{"value":140274361740568},"rax":{"value":0},"rflags":{"value":582},"cpu":{"value":0},"r14":{"value":6},"rsi":{"value":6},"r8":{"value":140704714233176,"symbolLocation":456,"symbol":"__sFX"},"cr2":{"value":4604592128},"rdx":{"value":0},"r10":{"value":0},"r9":{"value":0},"r15":{"value":22},"rbx":{"value":4578285056,"symbolLocation":0,"symbol":"_main_thread"},"trap":{"value":133},"err":{"value":33554760},"r11":{"value":582},"rip":{"value":140703614935314,"matchesCrashFrame":1},"rbp":{"value":140701834234240},"rsp":{"value":140701834234200},"r12":{"value":259},"rcx":{"value":140701834234200},"flavor":"x86_THREAD_STATE","rdi":{"value":259}},"queue":"com.apple.main-thread","frames":[{"imageOffset":28946,"symbol":"__pthread_kill","symbolLocation":10,"imageIndex":0},{"imageOffset":25108,"symbol":"pthread_kill","symbolLocation":263,"imageIndex":1},{"imageOffset":531728,"symbol":"abort","symbolLocation":123,"imageIndex":2},{"imageOffset":669161,"symbol":"die","symbolLocation":9,"imageIndex":3},{"imageOffset":2714494,"symbol":"rb_bug","symbolLocation":116,"imageIndex":3},{"imageOffset":2721722,"symbol":"transient_heap_block_evacuate.cold.1","symbolLocation":26,"imageIndex":3},{"imageOffset":2390069,"symbol":"transient_heap_block_evacuate","symbolLocation":197,"imageIndex":3},{"imageOffset":2388392,"symbol":"transient_heap_evacuate","symbolLocation":88,"imageIndex":3},{"imageOffset":2685263,"symbol":"rb_postponed_job_flush","symbolLocation":591,"imageIndex":3},{"imageOffset":2243982,"symbol":"rb_threadptr_execute_interrupts","symbolLocation":254,"imageIndex":3},{"imageOffset":2619889,"symbol":"vm_call_cfunc_with_frame","symbolLocation":625,"imageIndex":3},{"imageOffset":2585862,"symbol":"vm_sendish","symbolLocation":1302,"imageIndex":3},{"imageOffset":2475392,"symbol":"vm_exec_core","symbolLocation":14832,"imageIndex":3},{"imageOffset":2567179,"symbol":"rb_vm_exec","symbolLocation":3243,"imageIndex":3},{"imageOffset":2636156,"symbol":"invoke_block_from_c_bh","symbolLocation":1804,"imageIndex":3},{"imageOffset":2533687,"symbol":"rb_yield","symbolLocation":167,"imageIndex":3},{"imageOffset":898279,"symbol":"rb_hash_transform_keys_bang","symbolLocation":535,"imageIndex":3},{"imageOffset":2619599,"symbol":"vm_call_cfunc_with_frame","symbolLocation":335,"imageIndex":3},{"imageOffset":2585862,"symbol":"vm_sendish","symbolLocation":1302,"imageIndex":3},{"imageOffset":2475293,"symbol":"vm_exec_core","symbolLocation":14733,"imageIndex":3},{"imageOffset":2567179,"symbol":"rb_vm_exec","symbolLocation":3243,"imageIndex":3},{"imageOffset":2636156,"symbol":"invoke_block_from_c_bh","symbolLocation":1804,"imageIndex":3},{"imageOffset":2534462,"symbol":"rb_yield_values2","symbolLocation":94,"imageIndex":3},{"imageOffset":611683,"symbol":"collect_i","symbolLocation":19,"imageIndex":3},{"imageOffset":2635431,"symbol":"invoke_block_from_c_bh","symbolLocation":1079,"imageIndex":3},{"imageOffset":2533687,"symbol":"rb_yield","symbolLocation":167,"imageIndex":3},{"imageOffset":20151,"symbol":"rb_ary_each","symbolLocation":55,"imageIndex":3},{"imageOffset":2619599,"symbol":"vm_call_cfunc_with_frame","symbolLocation":335,"imageIndex":3},{"imageOffset":2585862,"symbol":"vm_sendish","symbolLocation":1302,"imageIndex":3},{"imageOffset":2475293,"symbol":"vm_exec_core","symbolLocation":14733,"imageIndex":3},{"imageOffset":2567179,"symbol":"rb_vm_exec","symbolLocation":3243,"imageIndex":3},{"imageOffset":2633170,"symbol":"rb_call0","symbolLocation":1714,"imageIndex":3},{"imageOffset":2536545,"symbol":"iterate_method","symbolLocation":65,"imageIndex":3},{"imageOffset":2536225,"symbol":"rb_iterate0","symbolLocation":545,"imageIndex":3},{"imageOffset":2536809,"symbol":"rb_lambda_call","symbolLocation":105,"imageIndex":3},{"imageOffset":598904,"symbol":"enum_collect","symbolLocation":88,"imageIndex":3},{"imageOffset":2619599,"symbol":"vm_call_cfunc_with_frame","symbolLocation":335,"imageIndex":3},{"imageOffset":2585862,"symbol":"vm_sendish","symbolLocation":1302,"imageIndex":3},{"imageOffset":2475293,"symbol":"vm_exec_core","symbolLocation":14733,"imageIndex":3},{"imageOffset":2567179,"symbol":"rb_vm_exec","symbolLocation":3243,"imageIndex":3},{"imageOffset":715526,"symbol":"rb_ec_exec_node","symbolLocation":310,"imageIndex":3},{"imageOffset":715127,"symbol":"ruby_run_node","symbolLocation":87,"imageIndex":3},{"imageOffset":16141,"symbol":"main","symbolLocation":93,"imageIndex":4},{"imageOffset":21758,"symbol":"start","symbolLocation":462,"imageIndex":5}]},{"id":4547386,"frames":[{"imageOffset":29102,"symbol":"poll","symbolLocation":10,"imageIndex":0},{"imageOffset":2279742,"symbol":"timer_pthread_fn","symbolLocation":158,"imageIndex":3},{"imageOffset":25844,"symbol":"_pthread_start","symbolLocation":125,"imageIndex":1},{"imageOffset":8207,"symbol":"thread_start","symbolLocation":15,"imageIndex":1}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 140703614906368,
    "size" : 225280,
    "uuid" : "5aa1e5be-b5b8-3a02-9885-a8c99e0ca378",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 140703615131648,
    "size" : 49152,
    "uuid" : "6c7561b4-4b92-3f45-921e-abe669299844",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 140703613890560,
    "size" : 561152,
    "uuid" : "e58814cc-dcb7-35a5-badc-e367ed3ac207",
    "path" : "\/usr\/lib\/system\/libsystem_c.dylib",
    "name" : "libsystem_c.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 4520099840,
    "size" : 3407872,
    "uuid" : "99608bb2-9002-3fcc-bdac-0aea28d486c3",
    "path" : "\/Users\/USER\/*\/libruby.3.0.dylib",
    "name" : "libruby.3.0.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 4514549760,
    "size" : 16384,
    "uuid" : "b083fc54-098f-3225-99be-d80f4de59f56",
    "path" : "\/Users\/USER\/*\/ruby",
    "name" : "ruby"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" : 4577759232,
    "size" : 442368,
    "uuid" : "cef5a27a-d50b-3020-af03-1734b19bc8c5",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  }
],
  "sharedCache" : {
  "base" : 140703611904000,
  "size" : 15216738304,
  "uuid" : "40432a03-88d3-305f-9c0c-e7549e71d927"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=397.4M resident=0K(0%) swapped_out_or_unallocated=397.4M(100%)\nWritable regions: Total=1.1G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.1G(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nKernel Alloc Once                    8K        1 \nMALLOC                           847.2M       33 \nMALLOC guard page                   16K        4 \nMALLOC_NANO (reserved)           256.0M        1         reserved VM address space (unallocated)\nSTACK GUARD                       56.0M        2 \nStack                             8712K        2 \nVM_ALLOCATE                       20.3M       66 \n__DATA                            2083K      127 \n__DATA_CONST                      5330K       91 \n__DATA_DIRTY                       208K       51 \n__LINKEDIT                       313.6M       14 \n__OBJC_RO                         81.8M        1 \n__OBJC_RW                         3136K        2 \n__TEXT                            83.9M      138 \n__UNICODE                          588K        1 \ndyld private memory               1024K        1 \nmapped file                       4384K        2 \nshared memory                       12K        2 \n===========                     =======  ======= \nTOTAL                              1.6G      540 \nTOTAL, minus reserved VM space     1.4G      540 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60da5e84ab0ca017dace9abf",
      "factorPackIds" : {

      },
      "deploymentId" : 240000008
    },
    {
      "rolloutId" : "607844aa04477260f58a8077",
      "factorPackIds" : {
        "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"
      },
      "deploymentId" : 240000066
    },
    {
      "rolloutId" : "601d9415f79519000ccd4b69",
      "factorPackIds" : {
        "SIRI_TEXT_TO_SPEECH" : "61f040507303d250981c88d9"
      },
      "deploymentId" : 240000378
    },
    {
      "rolloutId" : "5ffde50ce2aacd000d47a95f",
      "factorPackIds" : {

      },
      "deploymentId" : 240000102
    },
    {
      "rolloutId" : "602ad4dac86151000cf27e46",
      "factorPackIds" : {
        "SIRI_DICTATION_ASSETS" : "6193d03f2171a2330e561dfc"
      },
      "deploymentId" : 240000305
    },
    {
      "rolloutId" : "5fc94383418129005b4e9ae0",
      "factorPackIds" : {

      },
      "deploymentId" : 240000231
    }
  ],
  "experiments" : [

  ]
}
}

Updated by tenderlovemaking (Aaron Patterson) about 2 years ago

Hi,

Thanks for the short repro script! I think this might have been fixed, but I'm not sure what revision. Ruby 3.1.0 doesn't crash with your test script, so maybe there's a commit that needs to be backported.

Updated by PhilCoggins (Phil Coggins) about 2 years ago

tenderlovemaking (Aaron Patterson) wrote in #note-2:

Hi,

Thanks for the short repro script! I think this might have been fixed, but I'm not sure what revision. Ruby 3.1.0 doesn't crash with your test script, so maybe there's a commit that needs to be backported.

Thank you for the response!

I think it is possible that csv version is responsible for this? I updated my test script to pull in csv tag 3.2.2 and it no longer errored with the script in Ruby v3.0.2

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  gem "csv", "3.2.2"
end

require 'csv'
parsed = CSV.parse("Foo,bAr,baZ\nfoo,bar,baz", headers: true)
idx = 0

while true
  parsed.map do |row|
    obj = row.to_h
    obj.transform_keys! { |k| k.strip.downcase }
  end
  puts "ITERATION: #{idx}"
  idx += 1
end

I'm still trying to identify what caused / fixed this between 3.2.1 and 3.2.2, it certainly seems related to CSV::Row#to_h or CSV::Row#each but at least I can bump csv in my application. This still may be a bug in Ruby, but I'll let the smart Ruby folks take it from here. Thanks again!

EDIT: It actually still breaks in CSV v3.2.2, I just didn't wait long enough for it to fail.

Updated by byroot (Jean Boussier) about 2 years ago

How long does it usually takes for you to repro? I tried on macOS and it didn't repro after a long time. No luck either with the ruby:3.0.2 docker image.

Also did you try 3.0.3? Because 3.0.2 had a very nasty memory leak in transform_keys! that was fixed in 3.0.3. https://bugs.ruby-lang.org/issues/18065

Updated by PhilCoggins (Phil Coggins) about 2 years ago

byroot (Jean Boussier) wrote in #note-4:

How long does it usually takes for you to repro? I tried on macOS and it didn't repro after a long time. No luck either with the ruby:3.0.2 docker image.

Also did you try 3.0.3? Because 3.0.2 had a very nasty memory leak in transform_keys! that was fixed in 3.0.3. https://bugs.ruby-lang.org/issues/18065

It should occur in under 10 seconds, though it does seem to be intermittent, if it goes beyond 15 seconds, I'll quit the script and try again until it occurs. I have not gotten this to repro on 3.0.3, so I think I'll try to upgrade my application to that, thanks!

Updated by byroot (Jean Boussier) about 2 years ago

  • Status changed from Open to Closed

Closing assuming it was fixed as part of 3.0.3, if you do happen to see this bug again on 3.0.3 we can re-open.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0