madsjulia / Mads.jl

MADS: Model Analysis & Decision Support
http://mads.gitlab.io
GNU General Public License v3.0
101 stars 20 forks source link

Broken symlinks #57

Closed maleadt closed 10 months ago

maleadt commented 1 year ago

This package contains several symlinks whose destination are Julia code...

❯ stat /tmp/pkgeval_GeoThermalCloud_6pzviG/upper/home/pkgeval/.julia/packages/Mads/U3jYH/examples/model_analysis/models/internal-polynomial.jl
  File: /tmp/pkgeval_GeoThermalCloud_6pzviG/upper/home/pkgeval/.julia/packages/Mads/U3jYH/examples/model_analysis/models/internal-polynomial.jl -> import Mads
import OrderedCollections

function makemadsmodelrun_internal_polynomial(madsdata::AbstractDict)
    times = Mads.getobstime(madsdata)
    names = Mads.getobskeys(madsdata)
    function madsmodelrun(parameters::AbstractDict) # model run
        f(t) = parameters["a"] * (t ^ parameters["n"]) + parameters["b"] * t + parameters["c"] # a * t^n + b * t + c
        predictions = OrderedCollections.OrderedDict{String, Float64}(zip(names, map(f, times)))
        return predictions
    end
end

  Size: 472         Blocks: 8          IO Block: 4096   symbolic link
Device: 29h/41d Inode: 5281952480  Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (23493/ tbesard)   Gid: (23493/ tbesard)
Access: 2023-05-15 18:10:53.667355813 -0400
Modify: 2023-05-15 18:10:53.667355813 -0400
Change: 2023-05-15 18:10:53.667355813 -0400
 Birth: 2023-05-15 18:10:53.667355813 -0400

Even just cloning the repository throws errors:

error: unable to create symlink examples/svr/svr.jl: File name too long
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
montyvesselinov commented 1 year ago

I will create a workaround.

c42f commented 1 year ago

I just hit this too, it broke my test tooling for the general registry haha :sweat_smile:

Here's the full list of corrupt links for Mads 1.4.3

$ find -type l | xargs ls
ls: cannot access './examples/svr/svr.jl': File name too long
ls: cannot access './examples/optimization/external-jld-linearmodel.jl': File name too long
ls: cannot access './examples/optimization/external-jld.mads': File name too long
ls: cannot access './examples/optimization/external-ascii.mads': File name too long
ls: cannot access './examples/optimization/external-yaml.mads': File name too long
ls: cannot access './examples/optimization/external-ascii-linearmodel.jl': File name too long
ls: cannot access './examples/optimization/external-yaml-linearmodel.jl': File name too long
ls: cannot access './examples/restart/external-jld-linearmodel.jl': File name too long
ls: cannot access './examples/restart/external-jld.mads': File name too long
ls: cannot access './examples/restart/internal-linearmodel.mads': File name too long
ls: cannot access './examples/restart/w01-v01.mads': File name too long
ls: cannot access './examples/slurm/internal-linearmodel.jl': File name too long
ls: cannot access './examples/slurm/external-linearmodel+template+instruction.jl': File name too long
ls: cannot access './examples/sensitivity/internal-linearmodel.jl': File name too long
ls: cannot access './examples/model_analysis/models/internal-polynomial.mads': File name too long
ls: cannot access './examples/model_analysis/models/internal-polynomial.jl': File name too long
./examples/bayesian_sampling/internal-linearmodel.jl        ./examples/model_coupling/internal-linearmodel.jl
./examples/bayesian_sampling/internal-linearmodel.mads      ./examples/model_coupling/internal-linearmodel.mads
./examples/getting_started/madsjl.jl                ./examples/montecarlo/internal-linearmodel.jl
./examples/gsl/internal-linearmodel.jl              ./examples/montecarlo/internal-linearmodel.mads
./examples/gsl/internal-linearmodel.mads            ./examples/optimization/internal-linearmodel.jl
./examples/model_coupling/external-linearmodel-ascii.jl     ./examples/optimization/internal-linearmodel.mads
./examples/model_coupling/external-linearmodel-ascii.mads   ./examples/optimization/internal-linearmodel-parameters.tpl
./examples/model_coupling/external-linearmodel-jld2.jl      ./examples/optimization/internal-linearmodel+template.jl
./examples/model_coupling/external-linearmodel-jld2.mads    ./examples/optimization/internal-linearmodel+template.mads
./examples/model_coupling/external-linearmodel-jld.jl       ./examples/slurm/external-linearmodel-parameters.inst
./examples/model_coupling/external-linearmodel-jld.mads     ./examples/slurm/external-linearmodel-parameters.tpl
./examples/model_coupling/external-linearmodel-json-exp.mads    ./examples/slurm/external-linearmodel+template+instruction.mads
./examples/model_coupling/external-linearmodel-json.jl      ./examples/slurm/internal-linearmodel.mads
./examples/model_coupling/external-linearmodel-json.mads    ./examples/wells/w01.inst
./examples/model_coupling/external-linearmodel-parameters.inst  ./notebooks/blind_source_separation/Readme.md
./examples/model_coupling/external-linearmodel-parameters.tpl   ./notebooks/contamination/Readme.md
./examples/model_coupling/external-linearmodel-yaml.jl      ./notebooks/model_diagnostics/Readme.md
./examples/model_coupling/external-linearmodel-yaml.mads
c42f commented 1 year ago

The "File name too long" cases above all contain julia code within the symlink destination itself (ie, they are not linking to anything). It's not a matter of needing a workaround for long file names: these symlinks are simply corrupt.

montyvesselinov commented 10 months ago

simlinks should work now!

giordano commented 10 months ago

https://github.com/madsjulia/Mads.jl/blob/2599231b32c7dce7fafb67f424b50e92328e88fd/examples/model_analysis/models/internal-polynomial.jl still looks to me the completely broken symlink, and that's just the first one I checked.