-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
Notebook cell execution isn't managed in the renderer #125668
Comments
hello @jrieken, is this issue is still open, I am new to open source and wanted to contribute. |
@yash112-lang, thanks, this isn't a good issue to start with @jrieken I don't really see the problem with the current state because to me the real source of truth is the kernel, and in vscode this is reflected in internalMetadata in the renderer process. The execution object just emits edits and isn't a source of truth. If the EH goes down, won't we totally refresh the notebook and call the serializer/provider again?
If the extension doesn't tell us the execution is done, I don't think we can override this. |
@roblourens, can you please suggest me some good issues to start with. |
Depends - if one extension host goes down, other extension hosts are unaffected. Therefore extension host can never store truth. And you do that, e.g by checking in the extension host that an execution already exists.
That's only one dimension of it. Take the following scenario
|
One problem with
is that we decided that
I guess we need to reset all the execution states in internalMetadata when changing kernels. We need to keep track of per-kernel executions on the renderer and clear them out when changing the kernel or the EH goes down. I guess that is basically what you propose, one place to do that with more info than exists in |
That's the easy path of blaming the API rules but the truth is that this isn't much different from: user presses run, execution is created, user presses cancel (all of that happening insanely fast). In that case the execution needs to transition into a canceled/discarded state and ignore further updates etc. Now, a duplicate execution would act exactly like that. |
…he notebook, deleting cells, and changing the kernel #125668
Adopt for status bar item controller. #125668
Adopt for status bar item controller. #125668
Notebook execution is stored in "internal metadata" That's fine but the problem is this source of truth is held in the extension host and not in the renderer. You can run into all kinds of trouble, e.g
Instead there should be one central place, maybe
INotebookKernelService
or a new service, that owns the truth about all executions and "projects" that truth onto internal metadata. ThemainThreadXYZ
parts should interact with that service and handle things like restart ext host etcThe text was updated successfully, but these errors were encountered: