-
Notifications
You must be signed in to change notification settings - Fork 1.3k
exp show: lockless behavior #7574
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
Conversation
|
@iterative/vs-code I'm not 100% sure this will work, but I think it should solve the worst of the remaining In summary, the minimum changes needed on the vscode side w/this PR would be:
Optionally:
|
|
Discussed this with the rest of the core team and we think we can actually just completely drop the repo lock usage in |
|
Thanks @pmrowla I'll wait for the update. |
7640354 to
aa810d5
Compare
aa810d5 to
c6f5c72
Compare
|
@mattseddon please try the latest version of the PR |
|
My first impression is that this definitely fixes an issue with running experiments in the workspace. Previously I would be able to get to 3/4 runs in the demo before I would run into a lock issue where I could no longer generate experiments. This is where I got up to with this branch before I said "that's enough": The plan to call One thing that I started running into was the branch name switching from the current one back to Screen.Recording.2022-04-21.at.12.57.16.pm.movNote: We might be able to mitigate this on our end if we have to. Would it be possible to remove the Would another way around be to have the new Lastly, the version of I very much appreciate the work that you've done on this. It is really going to help the release effort. Thank you. Let me know if there is anything you need from me. Please LMK when it's been released so I can update the extension and bump the min required version of |
|
ππ» |
@skshetry can confirm but afaik the current plan on the DVC side is that the new command will be lockless, but we won't be changing the lock behavior for the existing status implementation. |
c6f5c72 to
79e6a70
Compare
I think this is just a side effect of how we use |

β I have followed the Contributing to DVC checklist.
π If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
Thank you for the contribution - we'll try to review it as soon as possible. π
Closes #5739
exp showno longer requires acquiring the repo lock--no-fetchoption to disable fetching of exp refs for temp/queue experimentsexp showon any changes torefs/exps/..., soexp showwill end up triggering repeated calls to itself when fetching intorefs/expsexp runand then only callexp show --no-fetchonce at that time (so the infinite recursive calls should be resolved)Note that using
--no-fetchdisables active ref update for checkpoint runs in vscode. Currently in DVC there is no way to automate updating these refs, so we implemented manual updates on any CLIexp showcall. For CLI users there is no difference between automating it and doing it onexp show, either way theexp showUI will reflect the proper current checkpoint status.Based on the discussion with @mattseddon this was not a formally supported use case in the vscode extension anyways, so this behavior change should not make a major difference right now. After the dvc-task queueing changes, we will be able to properly implement automatically fetching those refs when needed in DVC, and at that point we should end up with parity between the dvc CLI and vscode wrt checkpoint updating.
One potential temporary workaround to allow the checkpoint updating would be for vscode to schedule a periodic
exp showcall (without--no-fetch) to force refreshing everything. The scheduled call would end up triggering the file watcher when it updates the checkpoint exp refs, but as long as the file watcher was setup so that it only triggersexp show --no-fetch, it would still avoid the infinite recursive calls.