Skip to content

Segmentation fault CFUNC :vips_foreign_find_load #417

Closed
@brendon

Description

@brendon

Describe the bug
Segfault:

/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/ruby-vips-2.2.3/lib/vips/image.rb:280: [BUG] Segmentation fault at 0x0000000121f90a68
ruby 3.3.7 (2025-01-15 revision be31f993d7) [arm64-darwin24]

-- Crash Report log information --------------------------------------------
   See Crash Report log file in one of the following locations:
     * ~/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:0079 p:---- s:0458 e:000457 CFUNC  :vips_foreign_find_load
c:0078 p:0044 s:0453 e:000452 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/ruby-vips-2.2.3/lib/vips/image.rb:280
c:0077 p:0011 s:0444 e:000443 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vi
c:0076 p:0010 s:0441 e:000440 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210
c:0075 p:0027 s:0438 e:000437 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications/instrumenter
c:0074 p:0023 s:0430 e:000429 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210
c:0073 p:0012 s:0424 e:000423 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer.rb:47
c:0072 p:0007 s:0418 e:000417 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vi
c:0071 p:0025 s:0412 E:000d58 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:15
c:0070 p:0017 s:0408 E:000dc8 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:24
c:0069 p:0017 s:0401 E:000d30 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:12
c:0068 p:0018 s:0391 E:000e38 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/service.rb:92
c:0067 p:0042 s:0384 E:000ea8 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob.rb:305
c:0066 p:0012 s:0377 E:000f08 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer.rb:35
c:0065 p:0011 s:0372 E:000cb0 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vi
c:0064 p:0004 s:0368 E:000c60 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer.rb
c:0063 p:0004 s:0364 E:000f30 METHOD /Users/brendon/Projects/SpikeAtSchool/config/initializers/active_storage.rb:6
c:0062 p:0005 s:0360 E:000f50 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob/analyzable.rb:
c:0061 p:0007 s:0356 E:000f70 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob/analyzable.rb:
c:0060 p:0004 s:0350 E:000f98 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/jobs/active_storage/analyze_job.rb:11
c:0059 p:0008 s:0345 E:000fc0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:68
c:0058 p:0048 s:0342 E:001010 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:120
c:0057 p:0048 s:0332 E:001050 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/bugsnag-6.27.1/lib/bugsnag/integrations/rails/active_job.rb:43 [FINISH]
c:0056 p:---- s:0325 e:000324 CFUNC  :instance_exec
c:0055 p:0127 s:0319 E:0010a0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129
c:0054 p:0026 s:0310 E:0010d0 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353
c:0053 p:0011 s:0304 E:001100 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/translation.rb:9 [FINISH]
c:0052 p:---- s:0299 e:000298 CFUNC  :instance_exec
c:0051 p:0127 s:0293 E:001150 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129
c:0050 p:0027 s:0284 E:001188 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/core_ext/time/zones.rb:65
c:0049 p:0011 s:0277 E:0011c0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/timezones.rb:9 [FINISH]
c:0048 p:---- s:0272 e:000271 CFUNC  :instance_exec
c:0047 p:0127 s:0266 E:001210 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129
c:0046 p:0110 s:0257 E:000030 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:140
c:0045 p:0014 s:0247 E:002370 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:67
c:0044 p:0010 s:0243 E:001230 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:32
c:0043 p:0022 s:0239 E:001260 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:51
c:0042 p:0004 s:0233 E:001280 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:26
c:0041 p:0011 s:0230 E:0012b0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activerecord-8.0.1/lib/active_record/railties/job_runtime.rb:13
c:0040 p:0011 s:0225 E:001348 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:40
c:0039 p:0010 s:0221 E:0013d0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210
c:0038 p:0027 s:0218 E:001440 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications/instrumenter
c:0037 p:0023 s:0210 E:0013b0 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210
c:0036 p:0039 s:0204 E:001318 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:39
c:0035 p:0025 s:0197 E:001758 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activerecord-8.0.1/lib/active_record/railties/job_runtime.rb:11
c:0034 p:0006 s:0190 E:001720 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:26
c:0033 p:0004 s:0186 E:001480 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:32
c:0032 p:0003 s:0183 E:001500 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:143
c:0031 p:0014 s:0180 E:001560 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:38
c:0030 p:0015 s:0174 E:0014e0 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:143
c:0029 p:0047 s:0168 E:0015d8 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/broadcast_logger.rb:241
c:0028 p:0034 s:0159 E:001640 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:39
c:0027 p:0012 s:0153 E:001460 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:32
c:0026 p:0011 s:0149 E:001668 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:29
c:0025 p:0048 s:0145 E:0016c0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:120
c:0024 p:0004 s:0135 E:001710 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/railtie.rb:95
c:0023 p:0008 s:0132 E:001798 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/reloader.rb:77
c:0022 p:0016 s:0128 E:001810 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/execution_wrapper.rb:87
c:0021 p:0016 s:0120 E:001768 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/reloader.rb:74
c:0020 p:0008 s:0115 E:0016f0 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/railtie.rb:94 [FINISH]
c:0019 p:---- s:0110 e:000109 CFUNC  :instance_exec
c:0018 p:0127 s:0104 E:001860 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129
c:0017 p:0110 s:0095 E:001ee0 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:140
c:0016 p:0007 s:0085 E:001e58 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:27
c:0015 p:0020 s:0080 E:001888 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/app/models/solid_queue/claimed_execution.rb:95
c:0014 p:0003 s:0075 E:0018b8 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/app/models/solid_queue/claimed_execution.rb:61
c:0013 p:0005 s:0070 E:001910 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/pool.rb:23
c:0012 p:0024 s:0067 E:001980 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/execution_wrapper.rb:91
c:0011 p:0018 s:0059 E:0019d8 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/app_executor.rb:7
c:0010 p:0005 s:0054 E:0018e8 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/pool.rb:22
c:0009 p:0011 s:0050 E:001a18 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:
c:0008 p:0012 s:0041 E:001a50 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:
c:0007 p:0008 s:0036 E:001a90 METHOD /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/rub
c:0006 p:0041 s:0028 E:001ac8 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/rub
c:0005 p:0018 s:0022 E:000e78 METHOD <internal:kernel>:187
c:0004 p:0004 s:0017 E:000b40 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/rub [FINISH]
c:0003 p:---- s:0014 e:000013 CFUNC  :catch
c:0002 p:0006 s:0009 E:000a68 BLOCK  /Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/rub [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'
<internal:kernel>:187:in `loop'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in `block (3 levels) in create_worker'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in `run_task'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1776:in `block in on_resolvable'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1593:in `evaluate_to'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/pool.rb:22:in `block in post'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/app_executor.rb:7:in `wrap_in_app_executor'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/lib/solid_queue/pool.rb:23:in `block (2 levels) in post'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/app/models/solid_queue/claimed_execution.rb:61:in `perform'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/solid_queue-1.1.4/app/models/solid_queue/claimed_execution.rb:95:in `execute'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:27:in `execute'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:140:in `run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `instance_exec'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/railtie.rb:94:in `block (3 levels) in <class:Railtie>'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/reloader.rb:74:in `wrap'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/execution_wrapper.rb:87:in `wrap'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/reloader.rb:77:in `block in wrap'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/railtie.rb:95:in `block (4 levels) in <class:Railtie>'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:120:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:29:in `block in execute'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:32:in `perform_now'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:39:in `tag_logger'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/broadcast_logger.rb:241:in `method_missing'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:143:in `tagged'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:38:in `tagged'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/tagged_logging.rb:143:in `block in tagged'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/logging.rb:32:in `block in perform_now'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:26:in `perform_now'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activerecord-8.0.1/lib/active_record/railties/job_runtime.rb:11:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:39:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210:in `block in instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:40:in `block in instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activerecord-8.0.1/lib/active_record/railties/job_runtime.rb:13:in `block in instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:26:in `block in perform_now'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:51:in `perform_now'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/instrumentation.rb:32:in `_perform_job'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:67:in `_perform_job'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:140:in `run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `instance_exec'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/timezones.rb:9:in `block (2 levels) in <module:Timezones>'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/core_ext/time/zones.rb:65:in `use_zone'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `instance_exec'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:129:in `instance_exec'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/bugsnag-6.27.1/lib/bugsnag/integrations/rails/active_job.rb:43:in `block (2 levels) in included'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/callbacks.rb:120:in `block in run_callbacks'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activejob-8.0.1/lib/active_job/execution.rb:68:in `block in _perform_job'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/jobs/active_storage/analyze_job.rb:11:in `perform'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob/analyzable.rb:30:in `analyze'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob/analyzable.rb:52:in `extract_metadata_via_analyzer'
/Users/brendon/Projects/SpikeAtSchool/config/initializers/active_storage.rb:6:in `metadata'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer.rb:20:in `metadata'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vips.rb:20:in `read_image'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer.rb:35:in `download_blob_to_tempfile'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/app/models/active_storage/blob.rb:305:in `open'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/service.rb:92:in `open'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:12:in `open'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:24:in `open_tempfile'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/downloader.rb:15:in `block in open'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vips.rb:21:in `block in read_image'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer.rb:47:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-8.0.1/lib/active_support/notifications.rb:210:in `block in instrument'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activestorage-8.0.1/lib/active_storage/analyzer/image_analyzer/vips.rb:23:in `block (2 levels) in read_image'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/ruby-vips-2.2.3/lib/vips/image.rb:280:in `new_from_file'
/Users/brendon/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/ruby-vips-2.2.3/lib/vips/image.rb:280:in `vips_foreign_find_load'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 16

-- Machine register context ------------------------------------------------
  x0: 0x000000016c58b0ac  x1: 0x0000000000000002  x2: 0x000000019c3facdc
  x3: 0x000000016c585a6a  x4: 0x0000000000000008  x5: 0x000000016c585dc0
  x6: 0x0000000000000000  x7: 0x00000000000003a0 x18: 0x0000000000000000
 x19: 0x0000600003956480 x20: 0x0000600003956480 x21: 0x0000000121f90a6a
 x22: 0x00000001f86a2000 x23: 0x000000013284b200 x24: 0x000000000000002d
 x25: 0x00000001f652f000 x26: 0x00000001f652f000 x27: 0x00000001f8704000
 x28: 0x00000001f63d4968  lr: 0x000000018ea7f6b8  fp: 0x000000016c5859f0
  sp: 0x000000016c5859b0

-- C level backtrace information -------------------------------------------
/Users/brendon/.rbenv/versions/3.3.7/lib/libruby.3.3.dylib(rb_vm_bugreport+0xb4c) [0x105556248]
/Users/brendon/.rbenv/versions/3.3.7/lib/libruby.3.3.dylib(rb_bug_for_fatal_signal+0x100) [0x1053976e4]
/Users/brendon/.rbenv/versions/3.3.7/lib/libruby.3.3.dylib(sig_do_nothing+0x0) [0x1054bc338]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x18ed66de4]
/usr/lib/system/libsystem_trace.dylib(_os_log_preferences_refresh+0x24) [0x18ea7f6b8]
[0x18ea8003c]
[0x19c3fae68]
[0x19c3f9f78]
[0x18ebc9cc0]
[0x19608de1c]
[0x19609c58c]
[0x196015264]
[0x1339fc494]
[0x133a0cf54]
[0x1339f8a54]
[0x1339f8960]
[0x13032b210]
[0x126bac078]
[0x126c9dcb0]
[0x126babd70]
[0x126babf9c]

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

[TRUNCATED]

I've attached the full segfault log and the diagnostics report.

segfault.txt

ruby-2025-04-11-180731.ips.txt

To Reproduce
Simply creating a new Blob with ActiveStorage:

    blob = ActiveStorage::Blob.create_and_upload!(
      io: file.open,
      filename: file.basename.to_s
    )

This is the file:

Image

But I don't think it's the file. There are many different images that cause this. I was initially getting [__NSCFConstantString initialize] may have been in progress in another thread when fork() was called errors but managed to work around these by requiring vips early: rails/rails#38560 (comment)

Expected behavior
It should not segfault.

Desktop (please complete the following information):

  • OS: macOS 15.3.2 (24D81)
  • Processor: Apple M1 Pro

Additional context
I've tried updating homebrew vips to the latest version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions