Circuitscape / Circuitscape.jl

Algorithms from circuit theory to predict connectivity in heterogeneous landscapes
https://circuitscape.org
MIT License
128 stars 35 forks source link

ERROR: LoadError: Some tests did not pass: 383 passed, 0 failed, 2 errored, 0 broken. #336

Closed jamiefaselt closed 2 years ago

jamiefaselt commented 2 years ago

I just updated Julia to 1.6.4 and updated circuitscape but am getting errors when I run the test. Is this a bug with the version? Spoke to someone who ran on version 1.7 and got the same errors when running the test. Thanks! I didn't have anything else running on my computer at the time. This is not the full output but just the errors for clarity.

julia> using Pkg
julia> Pkg.add(PackageSpec(name="Circuitscape", rev="master"))
julia> Pkg.test("Circuitscape")

Raster Pairwise: Error During Test at /Users/jamiefaselt/.julia/packages/Circuitscape/GMT6U/src/utils.jl:308
  Got exception outside of a @test
  Not enough memory.

Raster Advanced: Error During Test at /Users/jamiefaselt/.julia/packages/Circuitscape/GMT6U/src/utils.jl:328
  Got exception outside of a @test
  Not enough memory.

ERROR: LoadError: Some tests did not pass: 383 passed, 0 failed, 2 errored, 0 broken.
in expression starting at /Users/jamiefaselt/.julia/packages/Circuitscape/GMT6U/test/runtests.jl:15
ERROR: Package Circuitscape errored during testing

Circuitscape and Julia version Circuitscape v5.10.1 and Julia Version 1.6.4

I am running it on a Macbook Pro, 2.3 GHz Quad-Core Intel Core i7, Big Surv11.6

mattwilliamson13 commented 2 years ago

I am able to replicate this on my my Mac with Julia version 1.7 (Monterey OS)

Based on the stacktrace it appears it might be something to do with pardiso, not sure if that needs to be updated separately.

Raster Advanced: Error During Test at /Users/matthewwilliamson/.julia/packages/Circuitscape/GMT6U/src/utils.jl:328
  Got exception outside of a @test
  Not enough memory.
  Stacktrace:
    [1] check_error(ps::Pardiso.MKLPardisoSolver, err::Int32)
      @ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/mkl_pardiso.jl:79
    [2] ccall_pardiso(ps::Pardiso.MKLPardisoSolver, N::Int64, nzval::Vector{Float64}, colptr::Vector{Int64}, rowval::Vector{Int64}, NRHS::Int64, B::Vector{Float64}, X::Vector{Float64})
      @ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/mkl_pardiso.jl:73
    [3] pardiso(ps::Pardiso.MKLPardisoSolver, X::Vector{Float64}, A::SparseArrays.SparseMatrixCSC{Float64, Int64}, B::Vector{Float64})
      @ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/Pardiso.jl:346
mattwilliamson13 commented 2 years ago

just to clarify, I have no idea how to figure out the Pardiso issues; maybe @vlandau or @ranjanan have an idea about how to fix this.

ranjanan commented 2 years ago

Let's see if this can be reproduced here: https://github.com/Circuitscape/Circuitscape.jl/pull/337

mattwilliamson13 commented 2 years ago

Looks like it only fails for MacOS on Julia 1.7. (the other tests passed). Is Circuitscape using MKL Pardiso or Pardiso 6.0? I'm trying to figure out if there are known issues for either with Mac OS -I wonder if one of the recent updates changed the compiler?

ranjanan commented 2 years ago

I'm checking on Pardiso.jl here https://github.com/JuliaSparse/Pardiso.jl/pull/84

mattwilliamson13 commented 2 years ago

I'm checking on Pardiso.jl here JuliaSparse/Pardiso.jl#84

Do I need to do something here? Or are we waiting on the Pardiso.jl folks to approve the CI trigger? (I've not actually run into this particular issue on GitHub before, apologies for the noob question)

vlandau commented 2 years ago

I think there is nothing needed at the moment on your end Matt. @ranjanan it might be better to just open a new issue in Pardiso.jl and ask them to trigger CI rather than relying on a PR trigger?

mattwilliamson13 commented 2 years ago

Do you all have any sense for how consequential these Errors are; I can't tell what their implications are, but it seems like a different problem than Failing the tests?

ranjanan commented 2 years ago

So I was able to reproduce this, full bug report here: https://github.com/JuliaSparse/Pardiso.jl/issues/86. Unfortunately, I don't quite have access to an Intel mac to debug fully. But this is coming from Pardiso. Perhaps, for now, if you're on an Intel Mac using Julia v1.7, don't use the pardiso solver.

ranjanan commented 2 years ago

@mattwilliamson13 or @jamiefaselt could you see if it's possible to reproduce this error on an Intel Mac on Julia v1.6?

mattwilliamson13 commented 2 years ago

@ranjanan All tests pass on Intel Mac on Julia 1.6.5, but you do get two warnings:

Warning: 2022-01-11 11:11:16 : CHOLMOD only works with double precision. Converting single precision matrix to double
└ @ Circuitscape ~/.julia/packages/Circuitscape/QbA2E/src/logging.jl:25

And

Warning: 2022-01-11 11:12:07 : Code to include pairs is activated, some entries did not match with focal node file. Some focal nodes may have been dropped
└ @ Circuitscape ~/.julia/packages/Circuitscape/QbA2E/src/logging.jl:25

But all tests pass otherwise

ranjanan commented 2 years ago

Thanks @mattwilliamson13 . those two warnings are expected. Let me report this on https://github.com/JuliaSparse/Pardiso.jl/issues/86

ViralBShah commented 2 years ago

We are disabling Pardiso tests for now (#346), and recommend that you don't use Pardiso as a solver.