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

Precompiled dll unlinking permission denied error on Windows 1.9.0-beta2 #48074

Closed
jaakkor2 opened this issue Jan 2, 2023 · 1 comment · Fixed by #48137
Closed

Precompiled dll unlinking permission denied error on Windows 1.9.0-beta2 #48074

jaakkor2 opened this issue Jan 2, 2023 · 1 comment · Fixed by #48137
Labels
system:windows Affects only Windows upstream The issue is with an upstream dependency, e.g. LLVM
Milestone

Comments

@jaakkor2
Copy link
Contributor

jaakkor2 commented Jan 2, 2023

On v"1.9.0-beta2" on Windows and using Revise, I see unlinking error if

  • ]dev foo (generated by ]generate foo)
  • using foo on one terminal, edit line greet() = print("Hello World!") to greet() = print("Hello World!!")
  • on another terminal using foo
julia> using foo
[ Info: Precompiling foo [6e7b729e-b3bd-4efc-8e46-b379e954007d]
ERROR: IOError: unlink("C:\\Users\\jaakkor2\\.julia\\compiled\\v1.9\\foo\\ayvbZ_at0N3.dll"): permission denied (EACCES)
Stacktrace:
  [1] uv_error
    @ .\libuv.jl:100 [inlined]
  [2] unlink(p::String)
    @ Base.Filesystem .\file.jl:972
  [3] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:283
  [4] checkfor_mv_cp_cptree(src::String, dst::String, txt::String; force::Bool)
    @ Base.Filesystem .\file.jl:330
  [5] cp(src::String, dst::String; force::Bool, follow_symlinks::Bool)
    @ Base.Filesystem .\file.jl:378
  [6] rename(src::String, dst::String; force::Bool)
    @ Base.Filesystem .\file.jl:981
  [7] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base .\loading.jl:2110
  [8] compilecache
    @ .\loading.jl:2016 [inlined]
  [9] _require(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:1660
 [10] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:1515
 [11] macro expansion
    @ .\loading.jl:1503 [inlined]
 [12] macro expansion
    @ .\lock.jl:267 [inlined]
 [13] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:1466
@KristofferC KristofferC added this to the 1.9 milestone Jan 2, 2023
@vchuravy
Copy link
Member

vchuravy commented Jan 2, 2023

We will need libuv/libuv#3839 to provide the right semantics on Windows.

The other alternative would be to detect this case and then swizzle the tail hash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
system:windows Affects only Windows upstream The issue is with an upstream dependency, e.g. LLVM
Projects
None yet
4 participants