Skip to content

Taking the gradient of x->sum(cumsum(x)) triggers segmentation fault #15

@YingboMa

Description

@YingboMa

MWE:

julia> versioninfo()
Julia Version 1.0.0
Commit 5d4eaca0c9 (2018-08-08 20:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)
Environment:
  JULIA_PKG3_PRECOMPILE = 1

julia> using Zygote: gradient
[ Info: Precompiling Zygote [e88e6eb3-aa80-5325-afca-941959d7151f]
┌ Warning: error processing module Zygote signature expressions Expr[:(Tuple{Core.Typeof(typeinf_code3), Method, Any, SimpleVector, Bool, Params})] from :(@eval Core.Compiler function typeinf_code3(method::Method, @nospecialize(atypes), sparams::SimpleVector, run_optimizer::Bool, params::Params)
│           code = code_for_method(method, atypes, sparams, params.world)
│           code === nothing && return (nothing, Any)
│           ccall(:jl_typeinf_begin, Cvoid, ())
│           result = InferenceResult(code)
│           frame = InferenceState(result, false, params)
│           frame === nothing && return (nothing, Any)
│           if typeinf(frame) && run_optimizer
│               opt = OptimizationState(frame)
│               optimize(opt, result.result)
│               (opt.src).inferred = trueendccall(:jl_typeinf_end, Cvoid, ())
│           frame.inferred || return (nothing, Any)
│           return frame
│       end)
└ @ Revise ~/.julia/packages/Revise/51oQc/src/exprutils.jl:94

julia> gradient(x->sum(cumsum(x)), zeros(5))

signal (11): Segmentation fault
in expression starting at no file:0
CreateConstInBoundsGEP1_32 at /buildworker/worker/package_linux64/build/usr/include/llvm/IR/IRBuilder.h:1292 [inlined]
emit_sparam at /buildworker/worker/package_linux64/build/src/codegen.cpp:3262
emit_expr at /buildworker/worker/package_linux64/build/src/codegen.cpp:3923
emit_ssaval_assign at /buildworker/worker/package_linux64/build/src/codegen.cpp:3615
emit_stmtpos at /buildworker/worker/package_linux64/build/src/codegen.cpp:3801 [inlined]
emit_function at /buildworker/worker/package_linux64/build/src/codegen.cpp:6254
jl_compile_linfo at /buildworker/worker/package_linux64/build/src/codegen.cpp:1159
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1794
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2182
cumsum at ./accumulate.jl:116 [inlined]
_forward at /home/scheme/.julia/packages/Zygote/g8WMA/src/compiler/interface2.jl:0
#3 at ./REPL[3]:1 [inlined]
_forward at /home/scheme/.julia/packages/Zygote/g8WMA/src/compiler/interface2.jl:0
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1829
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2182
_forward at /home/scheme/.julia/packages/Zygote/g8WMA/src/compiler/interface.jl:21
forward at /home/scheme/.julia/packages/Zygote/g8WMA/src/compiler/interface.jl:27
gradient at /home/scheme/.julia/packages/Zygote/g8WMA/src/compiler/interface.jl:32
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1829
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2182
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:324
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:428
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:363 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:686
jl_interpret_toplevel_thunk_callback at /buildworker/worker/package_linux64/build/src/interpreter.c:799
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7fc57b60581f)
unknown function (ip: 0x7)
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:808
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:787
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/builtins.c:622
eval at ./boot.jl:319
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2182
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:85
run_backend at /home/scheme/.julia/packages/Revise/51oQc/src/Revise.jl:766
#58 at ./task.jl:259
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1829
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2182
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1536 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:268
unknown function (ip: 0xffffffffffffffff)
Allocations: 35859323 (Pool: 35853151; Big: 6172); GC: 79
[1]    22985 segmentation fault (core dumped)  $HOME/julia-1.0.0/bin/julia

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions