-
Notifications
You must be signed in to change notification settings - Fork 98
Description
Hi all,
After the update from v1.46 to v.1.47, some of my codes now trigger this error.
This might be related to this recent change: #2882
(which btw has sped up the resolution of some of my problems by a factor ~2, so that's very nice!)
I did not manage to isolate a MWE yet but I verified that my code works with v.1.46.
Here is the stacktrace in case it evokes something to you (it's with Ipopt but I get the same with MadNLP)
ERROR: AssertionError: k == rinfo.nnz + N Stacktrace: [1] _indirect_recover_structure(rinfo::MathOptInterface.Nonlinear.ReverseAD.Coloring.RecoveryInfo) @ MathOptInterface.Nonlinear.ReverseAD.Coloring ~/.julia/packages/MathOptInterface/9lCV5/src/Nonlinear/ReverseAD/Coloring/Coloring.jl:447 [2] hessian_color_preprocess(edgelist::Set{…}, num_total_var::Int64, seen_idx::MathOptInterface.Nonlinear.ReverseAD.Coloring.IndexedSet) @ MathOptInterface.Nonlinear.ReverseAD.Coloring ~/.julia/packages/MathOptInterface/9lCV5/src/Nonlinear/ReverseAD/Coloring/Coloring.jl:489 [3] MathOptInterface.Nonlinear.ReverseAD._FunctionStorage(nodes::Vector{…}, const_values::Vector{…}, num_variables::Int64, coloring_storage::MathOptInterface.Nonlinear.ReverseAD.Coloring.IndexedSet, want_hess::Bool, subexpressions::Vector{…}, dependent_subexpressions::Vector{…}, subexpression_linearity::Vector{…}, subexpression_edgelist::Vector{…}, subexpression_variables::Vector{…}, moi_index_to_consecutive_index::Dict{…}) @ MathOptInterface.Nonlinear.ReverseAD ~/.julia/packages/MathOptInterface/9lCV5/src/Nonlinear/ReverseAD/types.jl:97 [4] initialize(d::MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator, requested_features::Vector{Symbol}) @ MathOptInterface.Nonlinear.ReverseAD ~/.julia/packages/MathOptInterface/9lCV5/src/Nonlinear/ReverseAD/mathoptinterface_api.jl:123 [5] initialize(evaluator::MathOptInterface.Nonlinear.Evaluator{…}, features::Vector{…}) @ MathOptInterface.Nonlinear ~/.julia/packages/MathOptInterface/9lCV5/src/Nonlinear/evaluator.jl:105 [6] _setup_model(model::IpoptMathOptInterfaceExt.Optimizer) @ IpoptMathOptInterfaceExt ~/.julia/packages/Ipopt/qJgV6/ext/IpoptMathOptInterfaceExt/MOI_wrapper.jl:1341 [7] optimize!(model::IpoptMathOptInterfaceExt.Optimizer) @ IpoptMathOptInterfaceExt ~/.julia/packages/Ipopt/qJgV6/ext/IpoptMathOptInterfaceExt/MOI_wrapper.jl:1356 [8] optimize! @ ~/.julia/packages/MathOptInterface/9lCV5/src/Bridges/bridge_optimizer.jl:367 [inlined] [9] optimize! @ ~/.julia/packages/MathOptInterface/9lCV5/src/MathOptInterface.jl:122 [inlined] [10] optimize!(m::MathOptInterface.Utilities.CachingOptimizer{…}) @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/9lCV5/src/Utilities/cachingoptimizer.jl:370 [11] optimize!(model::JuMP.Model; ignore_optimize_hook::Bool, _differentiation_backend::MathOptInterface.Nonlinear.SparseReverseMode, kwargs::@Kwargs{}) @ JuMP ~/.julia/packages/JuMP/e83v9/src/optimizer_interface.jl:609 [12] optimize! @ ~/.julia/packages/JuMP/e83v9/src/optimizer_interface.jl:560 [inlined]