Skip to content

<debug_request> publish the <status:idle> while an <execute_request> is running #799

Open
@mizililo

Description

@mizililo

In ipykernel 5.5.6,both <control_stream> and <shell_stream> put msgs into <msg_queue> and process the msg with <schedule_dispatch>. Although both <dispatch_control> and <dispatch_shell> publish the <status: busy/idle>,there are no conflicts.

When it comes to ipykernel 6.5.0, <control_stream> put msgs into <control_queue> and process the msg with <dispatch_control>, while shell_stream still works in the old way. This means <process_control> and <dispatch_shell> will publish the <status: busy/idle> in the same time.

I found this problem in jupyterlab when i executed a cell(sleep 600s) in an ipykernel with <metadata: {debugger: True}>,i switched to another ipynb and switched back. The cell was still running, but the kernel execution_state became idle. Then i found the ipykernel received multi <debug_requests> and published the status to idle.

As https://jupyter-client.readthedocs.io/en/latest/messaging.html said "Debug requests and replies are sent over the control channel to prevent queuing behind execution requests". It confuses me that why control_requests affect the kernel's execution_state? Should we use another state like control_state?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions