LinearSolve.jl icon indicating copy to clipboard operation
LinearSolve.jl copied to clipboard

1.26.1 broken on Julia master.

Open oscardssmith opened this issue 2 years ago • 1 comments

Version 1.26.0 works, but on 1.26.1, I get the following error on a recent build of Julia master.

julia> using LinearSolve
[ Info: Precompiling LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]
ERROR: LoadError: MethodError: no method matching SparseArrays.UMFPACK.UmfpackLU(::Ptr{Nothing}, ::Ptr{Nothing}, ::Int64, ::Int64, ::Vector{Int64}, ::Vector{Int64}, ::Vector{Float64}, ::Int64)

Closest candidates are:
  SparseArrays.UMFPACK.UmfpackLU(::SparseArrays.UMFPACK.Symbolic{Tv, Ti}, ::SparseArrays.UMFPACK.Numeric{Tv, Ti}, ::Int64, ::Int64, ::Vector{Ti}, ::Vector{Ti}, ::Vector{Tv}, ::Int64, ::SparseArrays.UMFPACK.UmfpackWS{Ti}, ::Vector{Float64}, ::Vector{Float64}, ::ReentrantLock) where {Tv<:Union{Float64, ComplexF64}, Ti<:Union{Int32, Int64}}
   @ SparseArrays ~/julia/usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/umfpack.jl:224

Stacktrace:
  [1] init_cacheval(alg::LinearSolve.UMFPACKFactorization, A::SparseArrays.SparseMatrixCSC{Float64, Int64}, b::Vector{Float64}, u::Vector{Float64}, Pl::IterativeSolvers.Identity, Pr::IterativeSolvers.Identity, maxiters::Int64, abstol::Float64, reltol::Float64, verbose::Bool, assumptions::LinearSolve.OperatorAssumptions{Nothing})
    @ LinearSolve ~/.julia/packages/LinearSolve/IugPa/src/factorization.jl:277
  [2] init(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization; alias_A::Bool, alias_b::Bool, abstol::Float64, reltol::Float64, maxiters::Int64, verbose::Bool, Pl::IterativeSolvers.Identity, Pr::IterativeSolvers.Identity, assumptions::LinearSolve.OperatorAssumptions{Nothing}, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ LinearSolve ~/.julia/packages/LinearSolve/IugPa/src/common.jl:111
  [3] init(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization)
    @ LinearSolve ~/.julia/packages/LinearSolve/IugPa/src/common.jl:91
  [4] solve(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ LinearSolve ~/.julia/packages/LinearSolve/IugPa/src/common.jl:154
  [5] solve(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization)
    @ LinearSolve ~/.julia/packages/LinearSolve/IugPa/src/common.jl:151
  [6] macro expansion
    @ ~/.julia/packages/LinearSolve/IugPa/src/LinearSolve.jl:67 [inlined]
  [7] top-level scope
    @ ~/.julia/packages/SnoopPrecompile/UWvXF/src/SnoopPrecompile.jl:51
  [8] include
    @ ./Base.jl:439 [inlined]
  [9] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base ./loading.jl:1649
 [10] top-level scope
    @ stdin:1

oscardssmith avatar Oct 06 '22 17:10 oscardssmith

UMFPACK internal functions changed for 1.9. This package used those, probably unnecessarily. Will fix

rayegun avatar Oct 06 '22 18:10 rayegun

Can we prioritize fixing this? It's fairly annoying and 1.9 is getting ever closer to being released (so missing the Diffeq stack from pkgeval is unfortunate).

oscardssmith avatar Oct 19 '22 19:10 oscardssmith

Yep, working on it right now. Should be done by 5pm or 6pm (meeting before I can finish it up)

rayegun avatar Oct 19 '22 19:10 rayegun

I can still reproduce this.

julia> using LinearSolve
[ Info: Precompiling LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]
ERROR: LoadError: MethodError: no method matching SparseArrays.UMFPACK.UmfpackLU(::Ptr{Nothing}, ::Ptr{Nothing}, ::Int64, ::Int64, ::Vector{Int64}, ::Vector{Int64}, ::Vector{Float64}, ::Int64)

Closest candidates are:
  SparseArrays.UMFPACK.UmfpackLU(::SparseArrays.UMFPACK.Symbolic{Tv, Ti}, ::SparseArrays.UMFPACK.Numeric{Tv, Ti}, ::Int64, ::Int64, ::Vector{Ti}, ::Vector{Ti}, ::Vector{Tv}, ::Int64, ::SparseArrays.UMFPACK.UmfpackWS{Ti}, ::Vector{Float64}, ::Vector{Float64}, ::ReentrantLock) where {Tv<:Union{Float64, ComplexF64}, Ti<:Union{Int32, Int64}}
   @ SparseArrays /home/lutfullah/Programs/julia-1.9/share/julia/stdlib/v1.9/SparseArrays/src/solvers/umfpack.jl:224

Stacktrace:
  [1] init_cacheval(alg::LinearSolve.UMFPACKFactorization, A::SparseArrays.SparseMatrixCSC{Float64, Int64}, b::Vector{Float64}, u::Vector{Float64}, Pl::IterativeSolvers.Identity, Pr::IterativeSolvers.Identity, maxiters::Int64, abstol::Float64, reltol::Float64, verbose::Bool, assumptions::LinearSolve.OperatorAssumptions{Nothing})
    @ LinearSolve /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/factorization.jl:279
  [2] init(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization; alias_A::Bool, alias_b::Bool, abstol::Float64, reltol::Float64, maxiters::Int64, verbose::Bool, Pl::IterativeSolvers.Identity, Pr::IterativeSolvers.Identity, assumptions::LinearSolve.OperatorAssumptions{Nothing}, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ LinearSolve /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/common.jl:111
  [3] init(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization)
    @ LinearSolve /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/common.jl:91
  [4] solve(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ LinearSolve /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/common.jl:154
  [5] solve(::SciMLBase.LinearProblem{Nothing, true, SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, SciMLBase.NullParameters, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, ::LinearSolve.UMFPACKFactorization)
    @ LinearSolve /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/common.jl:151
  [6] macro expansion
    @ /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/LinearSolve.jl:67 [inlined]
  [7] top-level scope
    @ /home/lutfullah/Programs/homedir/.julia/packages/SnoopPrecompile/UWvXF/src/SnoopPrecompile.jl:51
  [8] include
    @ ./Base.jl:450 [inlined]
  [9] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base ./loading.jl:1649
 [10] top-level scope
    @ stdin:1
in expression starting at /home/lutfullah/Programs/homedir/.julia/packages/LinearSolve/f5SeN/src/LinearSolve.jl:1
in expression starting at stdin:1
ERROR: Failed to precompile LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae] to /home/lutfullah/Programs/julia-1.9/bin/../../homedir/.julia/compiled/v1.9/LinearSolve/jl_Lk17bK.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
   @ Base ./loading.jl:1802
 [3] compilecache
   @ ./loading.jl:1746 [inlined]
 [4] _require(pkg::Base.PkgId, env::String)
   @ Base ./loading.jl:1432
 [5] _require_prelocked(uuidkey::Base.PkgId, env::String)
   @ Base ./loading.jl:1296
 [6] macro expansion
   @ ./loading.jl:1276 [inlined]
 [7] macro expansion
   @ ./lock.jl:267 [inlined]
 [8] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:1239

tomaklutfu avatar Oct 24 '22 13:10 tomaklutfu

Can you tell me what VERSION prints in the REPL? I cannot reproduce your error.

rayegun avatar Oct 24 '22 14:10 rayegun

also what package versions?

oscardssmith avatar Oct 24 '22 14:10 oscardssmith

I am not on that computer now but the package version was at 1.27.1 and julia is 3 days old and I downloaded it just after a new release with the PR closed this issue. I can only look up at details tomorrow.

tomaklutfu avatar Oct 24 '22 14:10 tomaklutfu

Okay I'll reopen for now, please let us know the environment sometime tomorrow!

rayegun avatar Oct 24 '22 15:10 rayegun

The system details are

(@v1.9) pkg> add LinearSolve
   Resolving package versions...
    Updating `/home/lutfullah/Programs/homedir/.julia/environments/v1.9/Project.toml`
  [7ed4a6bd] + LinearSolve v1.27.1
  No Changes to `/home/lutfullah/Programs/homedir/.julia/environments/v1.9/Manifest.toml`

julia> VERSION
v"1.9.0-DEV.1620"

tomaklutfu avatar Oct 25 '22 09:10 tomaklutfu

I don't know why but when I updated to a newer Julia master, the new realease worked. I guess then this can be closed.

tomaklutfu avatar Oct 25 '22 09:10 tomaklutfu

Yes, apologies, the version tag we branch off of is v"1.9.0-DEV.1622". Glad it got fixed up!

rayegun avatar Oct 25 '22 09:10 rayegun