|
Ran
|
Files
350
|
Run time
8s
|
Badge
README BADGES
|
push
buildkite
fix pkg loading from read-only filesystems on unix (#61253) On our HPC systems `/home` is mounted read-only on the compute nodes, and if you load a precompiled pkg you'll see errors like the following: ``` julia> using DataFrames ERROR: SystemError: futimes: Permission denied Stacktrace: [1] systemerror(p::Symbol, errno::Int32; extrainfo::Nothing) @ Base ./error.jl:186 [2] systemerror @ ./error.jl:185 [inlined] [3] touch @ ./filesystem.jl:361 [inlined] [4] touch(path::String) @ Base.Filesystem ./file.jl:546 [5] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String}) @ Base ./loading.jl:2090 ... ``` But touching read-only files is supposed to be fine, according to the code comments: https://github.com/JuliaLang/julia/blob/<a class=hub.com/JuliaLang/julia/commit/74d12302d74928dbe8c8883bdd395cd3e35481b9">74d12302d/base/loading.jl#L2058-L2064 However, only `IOError`s are ignored. On unix `touch()` calls `futimes` in the C stdlib and throws `SystemError`: https://github.com/JuliaLang/julia/blob/74d12302d74928dbe8c8883bdd395cd3e35481b9/base/filesystem.jl#L359-L368 This patch ignores all exceptions thrown when touching precompilation files.
61881 of 82485 relevant lines covered (75.02%)
8163084.19 hits per line
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
|---|