-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Weird stackoverflow in inner constructor w/ use of const variable #22787
Comments
We need to fix inference to be non-recursive in order to handle all of the recursive functions in base defined on tuples (in this case, the one that gets it into trouble is |
Both are broken now inside inference |
Was this fixed? On my machine on latest master (a1da84c) actually both of @quinnj's examples work for me! :) However, i'm here because I did see almost this exact same error newly show up during type inference for a part of our system that uses JuMP. It was succeeding on julia 1.5, but now fails with a StackOverflow inside inference as of a recent master.
|
I think c604df0 fixed the examples here. You'd probably need to poke at this in a debugger (same gdb below) to figure out what that case is (probably not quite the same as this).
Also helpful is doing negative backtraces:
|
Partial reduction of the case we've hit:
|
Interestingly optimization level appears to impact segfault versus stackoverflow behavior: The comments above apply at O1, but at O2 it's stackoverflows all around. |
Further reduction
|
(Also, for clarification, the above stackoverflow we're seeing is new as of julia 1.6, and wasn't occurring in 1.5.) |
I just hit this bug like this i think (on 1.6 dev)
and so on |
The MRE in #22787 (comment) allowed me to bisect the stack overflow to 51592ab, i.e. #37616. @vtjnash, any thoughts? :) |
If it's helpful, I just ran julia> timing = SnoopCompileCore.@snoopi_deep begin
@eval TPCH.run_query(conf, 17)
end
2020:10:20 22:24:59 [ tpch | info ] running Q17
Internal error: encountered unexpected error in runtime:
StackOverflowError()
intersect at /Users/nathandaly/src/julia/src/subtype.c:2965
intersect_all at /Users/nathandaly/src/julia/src/subtype.c:3110
intersect_var at /Users/nathandaly/src/julia/src/subtype.c:0
...
julia> show(stdout, MIME"text/plain"(), [node.mi_info for node in Core.Compiler.Timings._timings])
37-element Vector{Core.Compiler.Timings.InferenceFrameInfo}:
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for ROOT(), 0x0000000000000000, Any[], Any[])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for (::MathOptInterface.var"#copy_to##kw")(::NamedTuple{(:copy_names,), Tuple{Bool}}, ::typeof(MathOptInterface.copy_to), ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}), 0x00000000000072ed, Any[], Any[NamedTuple{(:copy_names,), Tuple{Bool}}, Core.Const(MathOptInterface.copy_to), MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for #copy_to#3(::Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:copy_names,), Tuple{Bool}}}, ::typeof(MathOptInterface.copy_to), ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}), 0x00000000000072ed, Any[], Any[Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:copy_names,), Tuple{Bool}}}, Core.Const(MathOptInterface.copy_to), MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for (::MathOptInterface.Utilities.var"#automatic_copy_to##kw")(::NamedTuple{(:copy_names,), Tuple{Bool}}, ::typeof(MathOptInterface.Utilities.automatic_copy_to), ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}), 0x00000000000072ed, Any[], Any[NamedTuple{(:copy_names,), Tuple{Bool}}, Core.Const(MathOptInterface.Utilities.automatic_copy_to), MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for #automatic_copy_to#113(::Bool, ::Nothing, ::typeof(MathOptInterface.Utilities.automatic_copy_to), ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}), 0x00000000000072ed, Any[], Any[Bool, Core.Const(nothing), Core.Const(MathOptInterface.Utilities.automatic_copy_to), MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for default_copy_to(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, ::Bool, ::Nothing), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, Bool, Core.Const(nothing), Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for try_constrain_variables_on_creation(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, ::MathOptInterface.Utilities.IndexMap, ::typeof(MathOptInterface.add_constrained_variables), ::typeof(MathOptInterface.add_constrained_variable)), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, MathOptInterface.Utilities.IndexMap, Core.Const(MathOptInterface.add_constrained_variables), Core.Const(MathOptInterface.add_constrained_variable), Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for copy_vector_of_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, ::MathOptInterface.Utilities.IndexMap, ::Type{var"#s248"} where var"#s248"<:MathOptInterface.AbstractSet, ::typeof(MathOptInterface.add_constrained_variables)), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, MathOptInterface.Utilities.IndexMap, Type{var"#s248"} where var"#s248"<:MathOptInterface.AbstractSet, Core.Const(MathOptInterface.add_constrained_variables), Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.AbstractVectorSet), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.AbstractVectorSet, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::Any), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, Any, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Reals), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_keys_for_bridge(::MathOptInterface.Bridges.Variable.Map, ::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, ::MathOptInterface.Reals), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, MathOptInterface.Reals, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for call_in_context(::MathOptInterface.Bridges.Variable.Map, ::Int64, ::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, Int64, MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for (::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType})(), 0x00000000000072ed, Any[], Any[])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for bridge_constrained_variable(::Type{MathOptInterface.Bridges.Variable.FreeBridge{T}}, ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Reals) where T, 0x00000000000072ed, Any[Any], Any[Type{MathOptInterface.Bridges.Variable.FreeBridge{T}} where T, MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Nonnegatives), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Nonnegatives, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_keys_for_bridge(::MathOptInterface.Bridges.Variable.Map, ::MathOptInterface.Bridges.var"#78#79", ::MathOptInterface.Nonnegatives), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, MathOptInterface.Bridges.var"#78#79", MathOptInterface.Nonnegatives, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for unbridged_map(::MathOptInterface.Bridges.Variable.SOCtoRSOCBridge{T}, ::Vector{MathOptInterface.VariableIndex}) where T, 0x00000000000072ed, Any[Any], Any[MathOptInterface.Bridges.Variable.SOCtoRSOCBridge, Vector{MathOptInterface.VariableIndex}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for rotate_unbridged_map(::Type, ::Vector{MathOptInterface.VariableIndex}, ::Vector{MathOptInterface.VariableIndex}), 0x00000000000072ed, Any[], Any[Type, Vector{MathOptInterface.VariableIndex}, Vector{MathOptInterface.VariableIndex}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for copy_single_variable(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, ::MathOptInterface.Utilities.IndexMap, ::Type{MathOptInterface.GreaterThan{Float64}}, ::typeof(MathOptInterface.add_constrained_variable)), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, MathOptInterface.Utilities.IndexMap, Core.Const(MathOptInterface.GreaterThan{Float64}), Core.Const(MathOptInterface.add_constrained_variable), Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variable(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.GreaterThan{Float64}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_key_for_bridge(::MathOptInterface.Bridges.Variable.Map, ::MathOptInterface.Bridges.var"#80#81"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, DataType}, ::MathOptInterface.GreaterThan{Float64}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, MathOptInterface.Bridges.var"#80#81"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, DataType}, MathOptInterface.GreaterThan{Float64}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for call_in_context(::MathOptInterface.Bridges.Variable.Map, ::Int64, ::MathOptInterface.Bridges.var"#80#81"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, DataType}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, Int64, MathOptInterface.Bridges.var"#80#81"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, DataType}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for (::MathOptInterface.Bridges.var"#80#81"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, DataType})(), 0x00000000000072ed, Any[], Any[])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for bridge_constrained_variable(::Type{MathOptInterface.Bridges.Variable.VectorizeBridge{Float64, S}}, ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.GreaterThan{Float64}) where S, 0x00000000000072ed, Any[Core.Const(Float64), Any], Any[Type{MathOptInterface.Bridges.Variable.VectorizeBridge{Float64, S}} where S, MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.GreaterThan{Float64}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::AbstractVector{var"#s32"} where var"#s32"<:MathOptInterface.AbstractScalarSet), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, AbstractVector{var"#s32"} where var"#s32"<:MathOptInterface.AbstractScalarSet, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variable(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.AbstractScalarSet), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.AbstractScalarSet, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_variable(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Reals), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_keys_for_bridge(::MathOptInterface.Bridges.Variable.Map, ::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, ::MathOptInterface.Reals), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, MathOptInterface.Reals, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for call_in_context(::MathOptInterface.Bridges.Variable.Map, ::Int64, ::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, Int64, MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for (::MathOptInterface.Bridges.var"#78#79"{MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, DataType})(), 0x00000000000072ed, Any[], Any[])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for bridge_constrained_variable(::Type{MathOptInterface.Bridges.Variable.FreeBridge{T}}, ::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Reals) where T, 0x00000000000072ed, Any[Any], Any[Type{MathOptInterface.Bridges.Variable.FreeBridge{T}} where T, MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Reals, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_constrained_variables(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, ::MathOptInterface.Nonnegatives), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{Clp.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, MathOptInterface.Nonnegatives, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for add_keys_for_bridge(::MathOptInterface.Bridges.Variable.Map, ::MathOptInterface.Bridges.var"#78#79", ::MathOptInterface.Nonnegatives), 0x00000000000072ed, Any[], Any[MathOptInterface.Bridges.Variable.Map, MathOptInterface.Bridges.var"#78#79", MathOptInterface.Nonnegatives, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for unbridged_map(::MathOptInterface.Bridges.Variable.SOCtoRSOCBridge{T}, ::Vector{MathOptInterface.VariableIndex}) where T, 0x00000000000072ed, Any[Any], Any[MathOptInterface.Bridges.Variable.SOCtoRSOCBridge, Vector{MathOptInterface.VariableIndex}])
Core.Compiler.Timings.InferenceFrameInfo(MethodInstance for rotate_unbridged_map(::Type, ::Vector{MathOptInterface.VariableIndex}, ::Vector{MathOptInterface.VariableIndex}), 0x00000000000072ed, Any[], Any[Type, Vector{MathOptInterface.VariableIndex}, Vector{MathOptInterface.VariableIndex}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}, Union{}])
julia> (It's probably not relevant, but the chunk containing the last 9 lines are repeated once earlier, so there's some recursion going on here as well.) i think this is more or less just showing the same thing @Sacha0 reduced it to, now that i'm looking at it! |
Further reduction
|
Or taking off from Nathan's snoopi_deep trace, we can more directly trigger what I would hope is the same stack overflow
yielding
|
Reduces to
where |
Given how this affects JuMP, I'm requesting to make sure this is fixed for the 1.6 release. |
A little more information. This call to
|
Reduced:
|
@JeffBezanson do you have a handle on this? Is this branch blocking or just release blocking? |
I would say just release blocking. |
fix #22787, another bounds circularity in type intersection
Latest master, OSX
and
The text was updated successfully, but these errors were encountered: