The following error occurs during testing under Windows with Julia 1.8, leading to crashing Julia (see CI.log):
Test_psfutils
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x0 -- unknown function (ip: 0000000000000000)
in expression starting at D:\a\PeriodicSystems.jl\PeriodicSystems.jl\test\test_pschur.jl:15
unknown function (ip: 0000000000000000)
Allocations: 107208134 (Pool: 107190352; Big: 17782); GC: 43
ERROR: LoadError: Package PeriodicSystems errored during testing
Stacktrace:
[1] pkgerror(msg::String)
@ Pkg.Types C:\hostedtoolcache\windows\julia\1.8.1\x64\share\julia\stdlib\v1.8\Pkg\src\Types.jl:67
[2] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
@ Pkg.Operations C:\hostedtoolcache\windows\julia\1.8.1\x64\share\julia\stdlib\v1.8\Pkg\src\Operations.jl:1813
[3] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Vector{String}, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::Base.Pairs{Symbol, IOContext{Base.PipeEndpoint}, Tuple{Symbol}, NamedTuple{(:io,), Tuple{IOContext{Base.PipeEndpoint}}}})
@ Pkg.API C:\hostedtoolcache\windows\julia\1.8.1\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:431
[4] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{Base.PipeEndpoint}, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version), Tuple{Bool, Vector{String}, Bool}}})
@ Pkg.API C:\hostedtoolcache\windows\julia\1.8.1\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:156
[5] test(; name::Nothing, uuid::Nothing, version::Nothing, url::Nothing, rev::Nothing, path::Nothing, mode::Pkg.Types.PackageMode, subdir::Nothing, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version), Tuple{Bool, Vector{String}, Bool}}})
@ Pkg.API C:\hostedtoolcache\windows\julia\1.8.1\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:171
[6] top-level scope
@ D:\a\_actions\julia-actions\julia-runtest\v1\test_harness.jl:15
[7] include(fname::String)
@ Base.MainInclude .\client.jl:476
[8] top-level scope
@ none:1
in expression starting at D:\a\_actions\julia-actions\julia-runtest\v1\test_harness.jl:7
This error can be reproduced using the following code (this will probably crash Julia):
using PeriodicSystems
using LinearAlgebra
using LinearAlgebra: BlasInt
# MB03BD example
A1 = Matrix{Float64}(I,3,3); A2 = [ 1.0 2.0 0.0; 4.0 -1.0 3.0; 0.0 3.0 1.0]; A3 = Matrix{Float64}(I,3,3);
E1 = [2.0 0.0 1.0; 0.0 -2.0 -1.0; 0.0 0.0 3.0]; E2 = Matrix{Float64}(I,3,3);
E3 = [ 1.0 0.0 1.0; 0.0 4.0 -1.0; 0.0 0.0 -2.0];
ihess = 2
# using the SLICOT wrapper mb03bd!
A = reshape([E1 A2 E3],3,3,3);
KMAX = 3
NMAX = 3
LDA1 = NMAX
LDA2 = NMAX
LDQ1 = NMAX
LDQ2 = NMAX
LDWORK = KMAX + max( 2*NMAX, 8*KMAX )
LIWORK = 2*KMAX + NMAX
QIND = Array{BlasInt,1}(undef, KMAX)
S = [-1,1,-1];
Q = Array{Float64,3}(undef, LDQ1, LDQ2, KMAX)
ALPHAR = Array{Float64,1}(undef, NMAX)
ALPHAI = Array{Float64,1}(undef, NMAX)
BETA = Array{Float64,1}(undef, NMAX)
SCAL = Array{BlasInt,1}(undef, NMAX)
IWORK = Array{BlasInt,1}(undef, LIWORK)
DWORK = Array{Float64,1}(undef, LDWORK)
mb03bd!('T','C','I',QIND,3,3,ihess,1,3,S,A,Q,ALPHAR, ALPHAI, BETA, SCAL, LIWORK, LDWORK)
Because the above sequence correctly works under Linux with Julia 1.8, this error should originate from the generation of the SLICOT_jll binary library.