JuliaIO / MAT.jl

Julia module for reading MATLAB files
MIT License
278 stars 76 forks source link

Precompilation fails in Julia 1.6.7 (current LTS) #179

Closed jonas-schulze closed 1 month ago

jonas-schulze commented 1 year ago
julia> versioninfo()
Julia Version 1.6.7
Commit 3b76b25b64 (2022-07-19 15:11 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: 12th Gen Intel(R) Core(TM) i5-12600K
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, goldmont)
Environment:
  JULIA_PROJECT = @.

(@v1.6) pkg> activate --temp
  Activating new environment at `/tmp/jl_csHsWc/Project.toml`

(jl_csHsWc) pkg> add MAT
    Updating registry at `~/.julia/registries/General`
   Resolving package versions...
    Updating `/tmp/jl_csHsWc/Project.toml`
  [23992714] + MAT v0.10.3
    Updating `/tmp/jl_csHsWc/Manifest.toml`
  [e1450e63] + BufferedStreams v1.1.0
  [944b1d66] + CodecZlib v0.7.0
  [34da2185] + Compat v4.5.0
  [f67ccb44] + HDF5 v0.16.13
  [692b3bcd] + JLLWrappers v1.4.1
  [23992714] + MAT v0.10.3
  [21216c6a] + Preferences v1.3.0
  [ae029012] + Requires v1.3.0
  [3bb67fe8] + TranscodingStreams v0.9.10
  [0234f1f7] + HDF5_jll v1.12.2+2
  [458c3c95] + OpenSSL_jll v1.1.19+0
  [0dad84c5] + ArgTools
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads
  [b77e0a4c] + InteractiveUtils
  [b27032c2] + LibCURL
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions
  [44cfe95a] + Pkg
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays
  [fa267f1f] + TOML
  [a4e569a6] + Tar
  [8dfed614] + Test
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [deac9b47] + LibCURL_jll
  [29816b5a] + LibSSH2_jll
  [c8ffd9c3] + MbedTLS_jll
  [14a3606d] + MozillaCACerts_jll
  [83775a58] + Zlib_jll
  [8e850ede] + nghttp2_jll
  [3f19e933] + p7zip_jll

(jl_csHsWc) pkg> ┌ Error: Pkg.precompile error
│   exception =
│    IOError: stat("/root/.julia/packages/TranscodingStreams/DYpJd/src/TranscodingStreams.jl"): permission denied (EACCES)
│    Stacktrace:
│     [1] uv_error
│       @ ./libuv.jl:97 [inlined]
│     [2] stat(path::String)
│       @ Base.Filesystem ./stat.jl:69
│     [3] samefile
│       @ ./stat.jl:319 [inlined]
│     [4] stale_cachefile(modpath::String, cachefile::String; ignore_loaded::Bool)
│       @ Base ./loading.jl:1784
│     [5] stale_cachefile
│       @ ./loading.jl:1727 [inlined]
│     [6] _is_stale
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:905 [inlined]
│     [7] macro expansion
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1132 [inlined]
│     [8] (::Pkg.API.var"#212#239"{Bool, Vector{Task}, Pkg.API.var"#handle_interrupt#231"{Base.Event, ReentrantLock, Base.TTY}, Pkg.API.var"#color_string#229", Base.Event, Base.Event, ReentrantLock, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, Bool}, Dict{Base.PkgId, Base.Event}, Dict{Base.PkgId, Bool}, Pkg.Types.Manifest, Vector{Base.PkgId}, Bool, Base.TTY, Base.Semaphore, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId})()
│       @ Pkg.API ./task.jl:417
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1023
┌ Error: Pkg.precompile error
│   exception =
│    IOError: stat("/root/.julia/packages/Preferences/VmJXL/src/Preferences.jl"): permission denied (EACCES)
│    Stacktrace:
│     [1] uv_error
│       @ ./libuv.jl:97 [inlined]
│     [2] stat(path::String)
│       @ Base.Filesystem ./stat.jl:69
│     [3] samefile
│       @ ./stat.jl:319 [inlined]
│     [4] stale_cachefile(modpath::String, cachefile::String; ignore_loaded::Bool)
│       @ Base ./loading.jl:1784
│     [5] stale_cachefile
│       @ ./loading.jl:1727 [inlined]
│     [6] _is_stale
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:905 [inlined]
│     [7] macro expansion
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1132 [inlined]
│     [8] (::Pkg.API.var"#212#239"{Bool, Vector{Task}, Pkg.API.var"#handle_interrupt#231"{Base.Event, ReentrantLock, Base.TTY}, Pkg.API.var"#color_string#229", Base.Event, Base.Event, ReentrantLock, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, Bool}, Dict{Base.PkgId, Base.Event}, Dict{Base.PkgId, Bool}, Pkg.Types.Manifest, Vector{Base.PkgId}, Bool, Base.TTY, Base.Semaphore, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId})()
│       @ Pkg.API ./task.jl:417
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1023
┌ Error: Pkg.precompile error
│   exception =
│    IOError: stat("/root/.julia/packages/CodecZlib/ruMLE/src/CodecZlib.jl"): permission denied (EACCES)
│    Stacktrace:
│     [1] uv_error
│       @ ./libuv.jl:97 [inlined]
│     [2] stat(path::String)
│       @ Base.Filesystem ./stat.jl:69
│     [3] samefile
│       @ ./stat.jl:319 [inlined]
│     [4] stale_cachefile(modpath::String, cachefile::String; ignore_loaded::Bool)
│       @ Base ./loading.jl:1784
│     [5] stale_cachefile
│       @ ./loading.jl:1727 [inlined]
│     [6] _is_stale
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:905 [inlined]
│     [7] macro expansion
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1132 [inlined]
│     [8] (::Pkg.API.var"#212#239"{Bool, Vector{Task}, Pkg.API.var"#handle_interrupt#231"{Base.Event, ReentrantLock, Base.TTY}, Pkg.API.var"#color_string#229", Base.Event, Base.Event, ReentrantLock, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, Bool}, Dict{Base.PkgId, Base.Event}, Dict{Base.PkgId, Bool}, Pkg.Types.Manifest, Vector{Base.PkgId}, Bool, Base.TTY, Base.Semaphore, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId})()
│       @ Pkg.API ./task.jl:417
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1023
┌ Error: Pkg.precompile error
│   exception =
│    IOError: stat("/root/.julia/packages/JLLWrappers/QpMQW/src/JLLWrappers.jl"): permission denied (EACCES)
│    Stacktrace:
│     [1] uv_error
│       @ ./libuv.jl:97 [inlined]
│     [2] stat(path::String)
│       @ Base.Filesystem ./stat.jl:69
│     [3] samefile
│       @ ./stat.jl:319 [inlined]
│     [4] stale_cachefile(modpath::String, cachefile::String; ignore_loaded::Bool)
│       @ Base ./loading.jl:1784
│     [5] stale_cachefile
│       @ ./loading.jl:1727 [inlined]
│     [6] _is_stale
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:905 [inlined]
│     [7] macro expansion
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1132 [inlined]
│     [8] (::Pkg.API.var"#212#239"{Bool, Vector{Task}, Pkg.API.var"#handle_interrupt#231"{Base.Event, ReentrantLock, Base.TTY}, Pkg.API.var"#color_string#229", Base.Event, Base.Event, ReentrantLock, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, Bool}, Dict{Base.PkgId, Base.Event}, Dict{Base.PkgId, Bool}, Pkg.Types.Manifest, Vector{Base.PkgId}, Bool, Base.TTY, Base.Semaphore, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId})()
│       @ Pkg.API ./task.jl:417
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1023
┌ Error: Pkg.precompile error
│   exception =
│    IOError: stat("/root/.julia/packages/OpenSSL_jll/FyLfZ/src/OpenSSL_jll.jl"): permission denied (EACCES)
│    Stacktrace:
│     [1] uv_error
│       @ ./libuv.jl:97 [inlined]
│     [2] stat(path::String)
│       @ Base.Filesystem ./stat.jl:69
│     [3] samefile
│       @ ./stat.jl:319 [inlined]
│     [4] stale_cachefile(modpath::String, cachefile::String; ignore_loaded::Bool)
│       @ Base ./loading.jl:1784
│     [5] stale_cachefile
│       @ ./loading.jl:1727 [inlined]
│     [6] _is_stale
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:905 [inlined]
│     [7] macro expansion
│       @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1132 [inlined]
│     [8] (::Pkg.API.var"#212#239"{Bool, Vector{Task}, Pkg.API.var"#handle_interrupt#231"{Base.Event, ReentrantLock, Base.TTY}, Pkg.API.var"#color_string#229", Base.Event, Base.Event, ReentrantLock, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, String}, Vector{Base.PkgId}, Vector{Base.PkgId}, Dict{Base.PkgId, Bool}, Dict{Base.PkgId, Base.Event}, Dict{Base.PkgId, Bool}, Pkg.Types.Manifest, Vector{Base.PkgId}, Bool, Base.TTY, Base.Semaphore, String, Vector{String}, Vector{Base.PkgId}, Base.PkgId})()
│       @ Pkg.API ./task.jl:417
└ @ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1023
jonas-schulze commented 1 year ago

I may have been a little quick in opening an issue. The problem happens as well when adding TransformingStreams in version 0.6 and up. Version 0.5 is the last one to succeed:

(@v1.6) pkg> activate --temp
  Activating new environment at `/tmp/jl_63X6P2/Project.toml`

(jl_63X6P2) pkg> add TranscodingStreams@v0.5
    Updating registry at `~/.julia/registries/General`
   Resolving package versions...
   Installed Compat ───────────── v2.2.1
   Installed TranscodingStreams ─ v0.5.4
    Updating `/tmp/jl_63X6P2/Project.toml`
  [3bb67fe8] + TranscodingStreams v0.5.4
    Updating `/tmp/jl_63X6P2/Manifest.toml`
  [34da2185] + Compat v2.2.1
  [3bb67fe8] + TranscodingStreams v0.5.4
  [0dad84c5] + ArgTools
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [8bb1440f] + DelimitedFiles
  [8ba89e20] + Distributed
  [f43a241f] + Downloads
  [b77e0a4c] + InteractiveUtils
  [b27032c2] + LibCURL
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions
  [44cfe95a] + Pkg
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA
  [9e88b42a] + Serialization
  [1a1011a3] + SharedArrays
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays
  [10745b16] + Statistics
  [fa267f1f] + TOML
  [a4e569a6] + Tar
  [8dfed614] + Test
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [deac9b47] + LibCURL_jll
  [29816b5a] + LibSSH2_jll
  [c8ffd9c3] + MbedTLS_jll
  [14a3606d] + MozillaCACerts_jll
  [83775a58] + Zlib_jll
  [8e850ede] + nghttp2_jll
  [3f19e933] + p7zip_jll
Precompiling project...
  3 dependencies successfully precompiled in 1 seconds (2 already precompiled)

As both packages belong to the JuliaIO organization, do you know who to ping? If not, I can open another issue over there.