-
-
Notifications
You must be signed in to change notification settings - Fork 553
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
[Fix] Update Cell execution result and align client and server state #5561
base: main
Are you sure you want to change the base?
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/nteract/site/Hp8zdfYHJGovWJX56xSjmprDdex2 |
Putting this back into draft to think through using errors message type vs. execute_reply.status for error. |
Heads up that automatic releases are now enabled on the repo (see #5568 for more info). To support automated releases, please make sure that the commits in this PR adhere to the conventional commit format (see https://www.conventionalcommits.org/en/v1.0.0/). Once this PR is merged, a release will be triggered for the modified packages based on the commit message. |
@shibbas any input needed to help get the last issue you mentioned putting it back into draft status? |
Checklist
Context
Related Issue - #5549
This PR addresses a few things:
Proposal
It looks like client and kernel states on the cell execution get out of alignment around cell errors. Jupyter defaults stop_on_error for execute_request to true which stops execution on the server for the queued up cells. However, the default in nteract/messaging is set to false, so even though on error the client cells are no longer shown as executing, the execution is till happening on the kernel causing the client and kernel to get out of sync.
Before
Due to the error in cell 3, execution on cells 4 and 5 is stopped, but the execution is still happening on the kernel. So when cell 5 is executed, the printed value is something that was never technically executed by the client. (Expected: 1, got 2)
After
Server sends "aborted" for cells 4, 5 which cancels the cell execution and re-running the cell 5 shows the expected output keeping client and kernel in sync.