JuliaLang / Pkg.jl

Pkg - Package manager for the Julia programming language
https://pkgdocs.julialang.org
Other
625 stars 265 forks source link

remove unfinished artifact when there's an exception #2092

Open johnnychen94 opened 4 years ago

johnnychen94 commented 4 years ago
JULIA_DEPOT_PATH=tmp julia-latest --startup=no -e 'using Pkg; pkg"add Polymake"'

and Ctrl-C when there are some artifacts downloading and installing.

then rm -rf tmp would fail with permission error:

rm: cannot remove ‘tmp/artifacts/b801935f313061d64e28d8a28c39cdc24f139920/share/terminfo/t’: Permission denied
rm: cannot remove ‘tmp/artifacts/b801935f313061d64e28d8a28c39cdc24f139920/share/terminfo/j’: Permission denied
rm: cannot remove ‘tmp/artifacts/b801935f313061d64e28d8a28c39cdc24f139920/share/terminfo/7’: Permission denied

that I don't have write permission to the newly extracted tarball

ls -al tmp/artifacts/1a9c9d412428e70857d32b50ef93d251c1468732/share
total 13
drwxr-xr-x  3 jc jc  3 Oct  8 03:46 ./
drwx------  3 jc jc  3 Oct  8 03:46 ../
dr-xr-xr-x 11 jc jc 11 Oct  8 03:46 polymake/
fredrikekre commented 4 years ago

Looks a bit similar to https://github.com/JuliaLang/Pkg.jl/issues/2053

johnnychen94 commented 4 years ago

Oh sorry I forgot to give the version info

julia> versioninfo()
Julia Version 1.6.0-DEV.1150
Commit 5d213f6018 (2020-10-07 16:12 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.5.0)
  CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-10.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 8
  JULIA_PKG_SERVER = https://mirrors.sjtug.sjtu.edu.cn/julia
  JULIA_PKG_PRECOMPILE_AUTO = 1

It seems Ncurses_jll is a smaller test case.

long logs ``` ~  JULIA_DEPOT_PATH=tmp julia-latest --startup=no -e 'using Pkg; pkg"add Polymake"' 2002ms  Thu Oct 8 04:46:02 2020 Installing known registries into `tmp` ######################################################################## 100.0% Added registry `General` to `tmp/registries/General` Resolving package versions... Installed Gettext_jll ────────────────── v0.20.1+6 Installed libpolymake_julia_jll ──────── v0.1.2+0 Installed Ninja_jll ──────────────────── v1.10.0+0 Installed PPL_jll ────────────────────── v1.2.0+0 Installed bliss_jll ──────────────────── v0.73.0+0 Installed libcxxwrap_julia_jll ───────── v0.8.0+0 Installed Libiconv_jll ───────────────── v1.16.0+6 Installed Polymake ───────────────────── v0.5.0 Installed normaliz_jll ───────────────── v3.8.5+0 Installed OpenSSL_jll ────────────────── v1.1.1+5 Installed Readline_jll ───────────────── v8.0.4+0 Installed Zstd_jll ───────────────────── v1.4.5+1 Installed Ncurses_jll ────────────────── v6.1.0+4 Installed CxxWrap ────────────────────── v0.11.0 Installed Mongoc ─────────────────────── v0.6.1 Installed LZO_jll ────────────────────── v2.10.0+2 Installed polymake_jll ───────────────── v4.1.0+2 Installed FLINT_jll ──────────────────── v2.6.3+0 Installed snappy_jll ─────────────────── v1.1.8+0 Installed MPFR_jll ───────────────────── v4.1.0+1 Installed GMP_jll ────────────────────── v6.2.0+2 Installed lrslib_jll ─────────────────── v0.1.0+1 Installed Zlib_jll ───────────────────── v1.2.11+16 Installed JSON ───────────────────────── v0.21.1 Installed boost_jll ──────────────────── v1.71.0+2 Installed CompilerSupportLibraries_jll ─ v0.3.3+0 Installed MongoC_jll ─────────────────── v1.16.2+0 Installed cddlib_jll ─────────────────── v0.94.10+0 Installed XML2_jll ───────────────────── v2.9.10+2 Installed MacroTools ─────────────────── v0.5.5 Installed Parsers ────────────────────── v1.0.11 Installed nauty_jll ──────────────────── v2.6.12+0 Installed Perl_jll ───────────────────── v5.30.3+0 Downloading artifact: Gettext Downloading artifact: libpolymake_julia Downloading artifact: PPL Downloading artifact: Ninja Downloading artifact: bliss Downloading artifact: libcxxwrap_julia Downloading artifact: Libiconv Downloading artifact: normaliz Downloading artifact: OpenSSL Downloading artifact: Readline Downloading artifact: Zstd Downloading artifact: Ncurses ERROR: InterruptException: Stacktrace: [1] poptask(W::Base.InvasiveLinkedListSynchronized{Task}) @ Base ./task.jl:737 [2] wait @ ./task.jl:745 [inlined] [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock}) @ Base ./condition.jl:106 [4] wait(x::Base.Process) @ Base ./process.jl:621 [5] success @ ./process.jl:483 [inlined] [6] run(cmds::Cmd, args::Tuple{Base.DevNull, Base.TTY, Base.TTY}; wait::Bool) @ Base ./process.jl:440 [7] run(cmds::Cmd, args::Tuple{Base.DevNull, Base.TTY, Base.TTY}) @ Base ./process.jl:438 [8] download(url::String, dest::String; verbose::Bool, auth_header::Nothing) @ Pkg.PlatformEngines /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/PlatformEngines.jl:820 [9] download_verify(url::String, hash::Nothing, dest::String; verbose::Bool, force::Bool, quiet_download::Bool) @ Pkg.PlatformEngines /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/PlatformEngines.jl:886 [10] download_verify_unpack(url::String, hash::Nothing, dest::String; tarball_path::Nothing, ignore_existence::Bool, force::Bool, verbose::Bool, quiet_download::Bool) @ Pkg.PlatformEngines /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/PlatformEngines.jl:1124 [11] #20 @ /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:339 [inlined] [12] create_artifact(f::Pkg.Artifacts.var"#20#21"{Bool, Bool, String, Nothing}) @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:41 [13] download_artifact(tree_hash::Base.SHA1, tarball_url::String, tarball_hash::Nothing; verbose::Bool, quiet_download::Bool) @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:338 [14] (::Pkg.Artifacts.var"#24#26"{Bool, Bool, Base.SHA1})() @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:401 [15] with_show_download_info(f::Pkg.Artifacts.var"#24#26"{Bool, Bool, Base.SHA1}, name::String, quiet_download::Bool) @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:434 [16] ensure_artifact_installed(name::String, meta::Dict{String, Any}, artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, verbose::Bool, quiet_download::Bool) @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:400 [17] ensure_all_artifacts_installed(artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, pkg_uuid::Nothing, include_lazy::Bool, verbose::Bool, quiet_download::Bool) @ Pkg.Artifacts /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Artifacts.jl:484 [18] download_artifacts(ctx::Pkg.Types.Context, pkg_roots::Vector{String}; platform::Base.BinaryPlatforms.Platform, verbose::Bool) @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:674 [19] download_artifacts(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; platform::Base.BinaryPlatforms.Platform, verbose::Bool) @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:653 [20] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Vector{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform) @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1171 [21] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Pkg.API /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:192 [22] add @ /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:143 [inlined] [23] add(pkgs::Vector{Pkg.Types.PackageSpec}; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Pkg.API /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:68 [24] add(pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.API /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:68 [25] do_cmd!(command::Pkg.REPLMode.Command, repl::Pkg.REPLMode.MiniREPL) @ Pkg.REPLMode /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:403 [26] do_cmd(repl::Pkg.REPLMode.MiniREPL, input::String; do_rethrow::Bool) @ Pkg.REPLMode /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:381 [27] top-level scope @ none:1 !  ~  rm -rf tmp 22.4s  Thu Oct 8 04:46:25 2020 rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/termcap.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/form.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/nc_tparm.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/unctrl.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/term.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/panel.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/ncurses.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/tic.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/eti.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/ncurses_dll.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/term_entry.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/menu.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw/curses.h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include/ncursesw: Directory not empty rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/include: Directory not empty rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/r: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/u: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/9: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/7: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/i: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/N: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/g: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/6: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/z: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/1: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/8: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/t: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/s: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/A: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/f: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/o: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/h: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/M: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/j: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/c: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/d: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/v: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/Q: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/4: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/x: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/3: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/E: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/b: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/k: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/L: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/2: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/5: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/P: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo/w: Permission denied rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share/terminfo: Directory not empty rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6/share: Directory not empty rm: tmp/artifacts/8344c1b8ea361bf3844084aab5d53294431ca5a6: Directory not empty rm: tmp/artifacts: Directory not empty rm: tmp: Directory not empty ```