Recently, PkgEval testing of lots of packages broke because of a corrupt entry in .julia/packages (which is shared and persistent). MWE:
$ rm -rf ~/.julia/packages/Distributions/39PV5
$ mkdir ~/.julia/packages/Distributions/39PV5
julia> using Distributions
ERROR: ArgumentError: Package Distributions [31c24e10-a181-5473-b8eb-7969acd0382f] is required but does not seem to be installed:
- Run `Pkg.instantiate()` to install all recorded dependencies.
It would be great if Julia/Pkg were robust against such corruption, reinstalling the affected package when needed. Alternatively, avoiding the corruption in the first place would be great as well. I think it was either caused by multiple testers writing to the package store at the same time (which would require locking), or a well-timed cancellation signal leaving the folder in a bad state (which would require the final operation to be atomic). I'm not familiar with Pkg so don't know if either of these is already the case.
Recently, PkgEval testing of lots of packages broke because of a corrupt entry in
.julia/packages
(which is shared and persistent). MWE:Actual backtrace:
It would be great if Julia/Pkg were robust against such corruption, reinstalling the affected package when needed. Alternatively, avoiding the corruption in the first place would be great as well. I think it was either caused by multiple testers writing to the package store at the same time (which would require locking), or a well-timed cancellation signal leaving the folder in a bad state (which would require the final operation to be atomic). I'm not familiar with Pkg so don't know if either of these is already the case.