Differentiating across `add_edges` causes Zygote to segfault
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- julia
- Área
- machine-learning
Línea de trabajo
Reproduce el fallo con el ejemplo de Julia y Zygote del issue y, después, inspecciona add_edges en GNNGraphs/src/transform.jl:326, donde entra el stack trace. Compara el comportamiento con el issue relacionado de Zygote. Se considera terminado cuando diferenciar loss_fn devuelve un gradiente sin provocar un segfault ni finalizar el proceso de Julia.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Using the add_edges function on a path that is differentiated with Zygote.jl causes a segfault and kills the julia process. The version is v1.1.0
Could be related to https://github.com/FluxML/Zygote.jl/issues/1580
using GraphNeuralNetworks
using Zygote
s = [1, 2]
t = [2, 3]
w = Float32[0.5, 0.7]
g = GNNGraph((s, t, w))
function loss_fn(wnew)
# fixed new edges, only weights are differentiable
snew = [1, 2]
tnew = [2, 3]
g2 = add_edges(g, (snew, tnew, wnew))
return sum(get_edge_weight(g2))
end
wnew = Float32[0.1, 0.2]
gradient(loss_fn, wnew)
The resulting segfault is
[205339] signal 11 (1): Segmentation fault
in expression starting at REPL[8]:2
emit_unboxed_coercion at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/intrinsics.cpp:394 [inlined]
emit_unbox at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/intrinsics.cpp:458
emit_condition at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/codegen.cpp:6089
emit_condition at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/codegen.cpp:6102 [inlined]
emit_function at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/codegen.cpp:9294
jl_emit_code at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/codegen.cpp:9750
jl_emit_codeinst at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/codegen.cpp:9821
jl_emit_codeinst_to_jit_impl at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/jitlayers.cpp:770
jl_add_codeinst_to_jit at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:3376
add_codeinsts_to_jit! at ./../usr/share/julia/Compiler/src/typeinfer.jl:1433
typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1440 [inlined]
typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1448
jfptr_typeinf_ext_toplevel_80206.1 at /home/numerik/amartine/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_type_infer at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:466
jl_compile_method_internal at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:3516
_jl_invoke at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:4006 [inlined]
ijl_apply_generic at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:4214
#add_edges#170 at /scratch/htc/amartine/julia_thunderstorm/packages/GNNGraphs/Z9SPx/src/transform.jl:326 [inlined]
_pullback at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface2.jl:0
_pullback at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface2.jl:81
unknown function (ip: 0x7f90f3be47fb) at (unknown file)
loss_fn at ./REPL[6]:5 [inlined]
_pullback at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface2.jl:0
pullback at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface.jl:96
pullback at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface.jl:94 [inlined]
gradient at /scratch/htc/amartine/julia_thunderstorm/packages/Zygote/55SqB/src/compiler/interface.jl:153
unknown function (ip: 0x7f90f3b2b6c6) at (unknown file)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
do_call at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:123
eval_value at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:243
eval_stmt_value at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:194 [inlined]
eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:707
jl_interpret_toplevel_thunk at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:898
jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1035
__repl_entry_eval_expanded_with_loc at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:301
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:881
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:308
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:312
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:305 [inlined]
eval_user_input at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:330
repl_backend_loop at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:452
#start_repl_backend#41 at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:427
start_repl_backend at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:424 [inlined]
#run_repl#50 at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:653
run_repl at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:639
jfptr_run_repl_19665.1 at /home/numerik/amartine/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/share/julia/compiled/v1.12/REPL/u0gqU_E4m7X.so (unknown line)
run_std_repl at ./client.jl:478
jfptr_run_std_repl_24985.1 at /home/numerik/amartine/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:881
run_main_repl at ./client.jl:499
repl_main at ./client.jl:586 [inlined]
_start at ./client.jl:561
jfptr__start_63319.1 at /home/numerik/amartine/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
true_main at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/jlapi.c:971
jl_repl_entrypoint at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/jlapi.c:1139
main at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/cli/loader_exe.c:58
unknown function (ip: 0x7f916469a249) at /lib/x86_64-linux-gnu/libc.so.6
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8) at /workspace/srcdir/glibc-2.17/csu/../sysdeps/x86_64/start.S
Allocations: 42089800 (Pool: 42089498; Big: 302); GC: 26
zsh: segmentation fault (core dumped) julia -g2 --project
- Lenguaje dominante
- Julia
- Estrellas
- 309
- Forks
- 74
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaGraphs/GraphNeuralNetworks.jl
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Mooncake on CUDA issue trackerAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
JuliaGraphs/GraphNeuralNetworks.jl#702 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Test against Enzyme / Reactant?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
JuliaGraphs/GraphNeuralNetworks.jl#655 · 7 comentarios ·
-
check compatibility with Mooncake on CPUQuizá libre de nuevo @muskan-101 la tomó hace 205 días y no hay ningún pull request abierto. Abiertogood first issue
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaGraphs/GraphNeuralNetworks.jl#640 · 8 comentarios · 1 reacción ·
Todos los issues de JuliaGraphs/GraphNeuralNetworks.jl
Issues similares
-
Add DocStringExtensionsAbiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ohno/Antique.jl#165 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SciML/DiffEqNoiseProcess.jl#342 ·
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día