Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

cache_drop_all seg fault

Abierto
#430 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
ruby

Línea de trabajo

Comienza con la secuencia IRB reproducible del issue, especialmente con Vips.cache_drop_all seguido de Vips::Image.new_from_file. Inspecciona lib/vips/operation.rb alrededor de la línea 225 y lib/vips/image.rb alrededor de la línea 288, y luego compara las advertencias de GLib con la traza del fallo. Se considera terminado cuando la secuencia ya no produce un segfault y el estado de caché informado se gestiona de forma segura.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

While trying to isolate my seg fault from https://github.com/libvips/ruby-vips/issues/429, I found another seg fault which is easy to reproduce:

require 'vips' 
path = "/Users/curi/w/test/test.png"
# vi1 = Vips::Image.new_from_file(path) # loads fine. irrelevant to crash
Vips.cache_drop_all # causes seg fault on next image load
vi2 = Vips::Image.new_from_file(path) # seg fault

macOS Tahoe 26.1, M1 chip, ruby 3.4.7, ruby-vips 2.3.0, vips 8.16.1 via homebrew.

irb(main):001> require 'vips' 
irb(main):002> path = "/Users/curi/w/test/test.png"
irb(main):003> vi1 = Vips::Image.new_from_file(path) # removing this doesn't change the result
irb(main):004> Vips.cache_drop_all # causes seg fault on next image load
irb(main):005> vi2 = Vips::Image.new_from_file(path) # seg fault

(process:41415): GLib-CRITICAL **: 13:19:13.336: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(process:41415): GLib-CRITICAL **: 13:19:13.336: g_hash_table_lookup: assertion 'hash_table != NULL' failed

(process:41415): GLib-CRITICAL **: 13:19:13.336: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed

(process:41415): GLib-CRITICAL **: 13:19:13.336: g_hash_table_lookup: assertion 'hash_table != NULL' failed
/Users/curi/.gem/ruby/3.4.7/gems/ruby-vips-2.3.0/lib/vips/operation.rb:225: [BUG] Segmentation fault at 0x0000000000000018
ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [arm64-darwin25]

-- 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:0025 p:---- s:0160 e:000159 CFUNC  :vips_cache_operation_build
c:0024 p:0005 s:0155 e:000154 METHOD /Users/curi/.gem/ruby/3.4.7/gems/ruby-vips-2.3.0/lib/vips/operation.rb:225
c:0023 p:0277 s:0150 E:000690 METHOD /Users/curi/.gem/ruby/3.4.7/gems/ruby-vips-2.3.0/lib/vips/operation.rb:481
c:0022 p:0072 s:0128 e:000127 METHOD /Users/curi/.gem/ruby/3.4.7/gems/ruby-vips-2.3.0/lib/vips/image.rb:288
c:0021 p:0029 s:0119 E:0018e8 EVAL   (irb):5 [FINISH]
c:0020 p:---- s:0113 e:000112 CFUNC  :eval
c:0019 p:0020 s:0105 e:000104 METHOD /Users/curi/.gem/ruby/3.4.7/gems/irb-1.15.3/lib/irb/workspace.rb:101
c:0018 p:0090 s:0098 e:000097 METHOD /Users/curi/.gem/ruby/3.4.7/gems/irb-1.15.3/lib/irb/context.rb:591
c:0017 p:0057 s:0090 e:000089 METHOD /Users/curi/.gem/ruby/3.4.7/gems/irb-1.15.3/lib/irb/context.rb:557
Lenguaje dominante
Ruby
Estrellas
904
Forks
64
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de libvips/ruby-vips

Todos los issues de libvips/ruby-vips

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.