JuliaPhysics / Measurements.jl

Error propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration.

Home Page:https://juliaphysics.github.io/Measurements.jl/stable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ERROR: StackOverflowError:

jinsoo opened this issue · comments

while saving array using JLD2, Error occurs. It seems to be due to Measurements.jl package.
How to solve this issue?

Code:

using Measurements, JLD2
a = Array{Complex{Measurement}, 2}
@save "file_path" a

Return:

ERROR: StackOverflowError:
Stacktrace:
 [1] hasfielddata(::Any) at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:55
 [2] hasdata(::DataType) at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:63
 [3] hasfielddata(::Any) at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:56
 ... (the last 2 lines are repeated 18518 more times)
 [37040] #s97#19 at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:96 [inlined]
 [37041] #s97#19(::Any, ::Any, ::Any, ::Any) at ./none:0
 [37042] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any,N} where N) at ./boot.jl:527
 [37043] #s226#27 at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:1380 [inlined]
 [37044] #s226#27(::Any, ::Any, ::Any) at ./none:0
 [37045] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any,N} where N) at ./boot.jl:527
 [37046] objodr at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:145 [inlined]
 [37047] write_dataset at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:524 [inlined]
 [37048] write_ref(::JLD2.JLDFile{JLD2.MmapIO}, ::Measurement{Float32}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:546
 [37049] h5convert!(::JLD2.IndirectPointer, ::Type{JLD2.RelOffset}, ::JLD2.JLDFile{JLD2.MmapIO}, ::Measurement{Float32}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:658
 [37050] macro expansion at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:488 [inlined]
 [37051] h5convert!(::JLD2.IndirectPointer, ::JLD2.OnDiskRepresentation{(0, 8),Tuple{Measurement,Measurement},Tuple{JLD2.RelOffset,JLD2.RelOffset}}, ::JLD2.JLDFile{JLD2.MmapIO}, ::Complex{Measurement}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:488
 [37052] write_data(::JLD2.MmapIO, ::JLD2.JLDFile{JLD2.MmapIO}, ::Complex{Measurement}, ::JLD2.OnDiskRepresentation{(0, 8),Tuple{Measurement,Measurement},Tuple{JLD2.RelOffset,JLD2.RelOffset}}, ::JLD2.HasReferences, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/dataio.jl:111
 [37053] write_dataset(::JLD2.JLDFile{JLD2.MmapIO}, ::JLD2.WriteDataspace{0,Tuple{}}, ::JLD2.CommittedDatatype, ::JLD2.OnDiskRepresentation{(0, 8),Tuple{Measurement,Measurement},Tuple{JLD2.RelOffset,JLD2.RelOffset}}, ::Complex{Measurement}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:431
 [37054] write_dataset at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:525 [inlined]
 [37055] write_ref at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:546 [inlined]
 [37056] h5convert! at /home/nol/.julia/packages/JLD2/4AJn8/src/data.jl:658 [inlined]
 [37057] write_data(::JLD2.MmapIO, ::JLD2.JLDFile{JLD2.MmapIO}, ::Array{Complex{Measurement},2}, ::Type{JLD2.RelOffset}, ::JLD2.HasReferences, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/dataio.jl:178
 [37058] write_dataset(::JLD2.JLDFile{JLD2.MmapIO}, ::JLD2.WriteDataspace{2,Tuple{JLD2.WrittenAttribute{JLD2.WriteDataspace{0,Tuple{}},JLD2.BasicDatatype,JLD2.RelOffset}}}, ::JLD2.BasicDatatype, ::Type{JLD2.RelOffset}, ::Array{Complex{Measurement},2}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:405
 [37059] write_dataset at /home/nol/.julia/packages/JLD2/4AJn8/src/datasets.jl:525 [inlined]
 [37060] write(::JLD2.Group{JLD2.JLDFile{JLD2.MmapIO}}, ::String, ::Array{Complex{Measurement},2}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/groups.jl:119
 [37061] write(::JLD2.JLDFile{JLD2.MmapIO}, ::String, ::Array{Complex{Measurement},2}, ::JLD2.JLDWriteSession{Dict{UInt64,JLD2.RelOffset}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/JLD2.jl:327
 [37062] (::var"#9#10")(::JLD2.JLDFile{JLD2.MmapIO}) at /home/nol/.julia/packages/JLD2/4AJn8/src/loadsave.jl:68
 [37063] jldopen(::var"#9#10", ::String, ::Vararg{String,N} where N; kws::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/nol/.julia/packages/JLD2/4AJn8/src/loadsave.jl:4
 [37064] jldopen(::Function, ::String, ::String) at /home/nol/.julia/packages/JLD2/4AJn8/src/loadsave.jl:2

Was there a fix for this?

I believe it had been fixed two years ago by JuliaIO/JLD2.jl#196