[Fix] Update Cell execution result and align client and server state #5561
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.