-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Precompilation lock file not released when process exits #50746
Comments
What OS is this on? cc: @IanButterworth |
@vtjnash the message indicates the hostname matches so it seems the live process check isn’t working? |
Live process isn't a criteria though |
Isn’t |
This is running directly on the host (no VM). |
julia/stdlib/FileWatching/src/pidfile.jl Lines 181 to 183 in 3c64bc3
(what @IanButterworth mentioned) |
Just a +1, this is a big problem, IMO. One can very easily end up in this scenario, over the last couple of days I've hit this all the time: for example, on Windows, simply closing the terminal window by clicking on the red X in the top right corner will cause this, and then one has to wait six minutes until Julia will try to precompile that package again. I think this issue should be a release blocker for the 1.10 release. There are many other scenarios where this can be triggered. For example, the VS Code extension will kill Julia processes in many situations in entirely "normal" user scenarios, and then each time a user can end up in this state where things won't work for six minutes. I don't fully understand how the pid locking here is implemented, but at least for Juliaup I'm simply taking locks on the pid file, and they very reliably get released when the locking process is terminated. So there is never a situation where a process might wait for a process that no longer exists, and that implementation requires no polling, and as far as I can tell is a pretty standard pattern of solving this kind of problem. Seems to me that something along those lines would be helpful here too? Or maybe there is some other solution, primarily I just think the current implementation needs to be fixed. |
I seem to have gotten myself into this infinite loop while trying out 1.10 (on VSCode, Mac M2). I'm not very knowledgeable when it comes to lockfiles etc. Is there a way to get myself out of this at the command line? Killing the process doesn't seem to work... |
Which 1.10? |
By 1.10.2 I assume you mean 1.10.0-beta2 etc. Are you able to share an environment that reproduces this? |
Exactly. By environment you mean Project.toml and Manifest.toml? |
Project.toml
Manifest.toml
|
Which version was that manifest resolved with? It's in the old format so you should also consider upgrading it so that it records the julia version
|
Hi I found something similar for Julia v1.10-beta 3 when using it on HPC. (@v1.10) pkg> add ExTinyMD
Updating registry at `~/.julia/registries/General.toml`
Resolving package versions...
No Changes to `~/.julia/environments/v1.10/Project.toml`
No Changes to `~/.julia/environments/v1.10/Manifest.toml`
Precompiling project...
Progress [> ] 0/51
◑ Compat Being precompiled by another machine (hostname: login1.*.*.*, pid: 855648) which shows the precompiling process is still running on the login node and the process got killed. |
Just hit this on a fresh install after killing precompilation with Ctrl-C on 1.10.0-beta3
|
Is this fixed by #51714? |
Yes, also Pkg changes from JuliaLang/Pkg.jl#3654 in #51732 |
but
The text was updated successfully, but these errors were encountered: