Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can neither add nor remove a corrupted registry #2415

Closed
fonsp opened this issue Mar 1, 2021 · 3 comments
Closed

Can neither add nor remove a corrupted registry #2415

fonsp opened this issue Mar 1, 2021 · 3 comments

Comments

@fonsp
Copy link
Member

fonsp commented Mar 1, 2021

My registry is corrupted, likely because I interrupted during an update:

% cd .julia/registries 
% ls
General
% cd General 
% ls
A	B	C	D	E	F

Note that the folder exists, with some contents, but the Registry.toml file does not.

The point of this issue is: I tried to fix it using the registry REPL commands, but none of them work:

(@v1.5) pkg> registry rm General
registry `General` not found.

(@v1.5) pkg> registry up General
registry `General` not found.

(@v1.5) pkg> registry add General
######################################################################## 100,0%
ERROR: SystemError: opening file "/Users/fons/.julia/registries/General/Registry.toml": No such file or directory
Stacktrace:
 [1] systemerror(::String, ::Int32; extrainfo::Nothing) at ./error.jl:168
 [2] #systemerror#48 at ./error.jl:167 [inlined]
 [3] systemerror at ./error.jl:167 [inlined]
 [4] open(::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing) at ./iostream.jl:284
 [5] open at ./iostream.jl:273 [inlined]
 [6] open(::Base.var"#294#295"{Tuple{}}, ::String; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at ./io.jl:323
 [7] open at ./io.jl:323 [inlined]
 [8] read at ./io.jl:408 [inlined]
 [9] parsefile at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/ext/TOML/src/TOML.jl:50 [inlined]
 [10] read_registry(::String; cache::Bool) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Types.jl:1044
 [11] read_registry at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Types.jl:1039 [inlined]
 [12] (::Pkg.Types.var"#94#97"{Pkg.Types.Context,String,Pkg.Types.RegistrySpec})(::String) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Types.jl:1016
 [13] mktempdir(::Pkg.Types.var"#94#97"{Pkg.Types.Context,String,Pkg.Types.RegistrySpec}, ::String; prefix::String) at ./file.jl:709
 [14] mktempdir at ./file.jl:707 [inlined] (repeats 2 times)
 [15] clone_or_cp_registries(::Pkg.Types.Context, ::Array{Pkg.Types.RegistrySpec,1}, ::String) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Types.jl:980
 [16] clone_or_cp_registries at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Types.jl:973 [inlined]
 [17] #add#6 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Registry.jl:32 [inlined]
 [18] add at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Registry.jl:28 [inlined]
 [19] #add#5 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Registry.jl:26 [inlined]
 [20] add(::Array{Pkg.Types.RegistrySpec,1}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Registry.jl:26
 [21] do_cmd!(::Pkg.REPLMode.Command, ::REPL.LineEditREPL) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/REPLMode.jl:404
 [22] do_cmd(::REPL.LineEditREPL, ::String; do_rethrow::Bool) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/REPLMode.jl:382
 [23] do_cmd at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/REPLMode.jl:377 [inlined]
 [24] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/REPLMode.jl:546
 [25] #invokelatest#1 at ./essentials.jl:710 [inlined]
 [26] invokelatest at ./essentials.jl:709 [inlined]
 [27] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/REPL/src/LineEdit.jl:2355
 [28] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:1144
 [29] (::REPL.var"#38#42"{REPL.LineEditREPL,REPL.REPLBackendRef})() at ./task.jl:356

EDIT: It looks like Pkg tried to install the General registry when installing a package, that's great! But it fails for the same reason:

(@v1.5) pkg> add JSON
  Resolving package versions...
 Installing known registries into `~/.julia`
######################################################################## 100,0%
ERROR: SystemError: opening file "/Users/fons/.julia/registries/General/Registry.toml": No such file or directory
Stacktrace:

[same as above]
@KristofferC
Copy link
Member

Will be fixed in 1.6 (the cause of the corruption has been fixed). You can remove the folder for now.

@fonsp
Copy link
Member Author

fonsp commented Mar 1, 2021

Great to hear that the corruption has been fixed! That removes my stake in this issue, same with #2017

Still, it seems like a bug that Pkg.add("JSON") will:

  1. Detect that there are no registries
  2. Add the General registry
  3. Attempt reading the file .julia/registries/General/Registry.toml

But feel free to close this issue anyhow

@KristofferC
Copy link
Member

KristofferC commented Mar 1, 2021

I think that issue, in particular, should be fixed by #2356.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants