Skip to content

Cannot abort a data flow with a Python node #29

@J-Loudet

Description

@J-Loudet

If a start a data flow that contains at least one Python node, it is (almost) impossible to abort it.
The only way to stop the data flow is to send a SIGKILL signal on the process of the Zenoh-Flow runtime driving its execution.

The reason is that the async task running the Python asynchronous code is blocked on run_until_complete. This behaviour is particularly easy to exhibit when waiting for an Input (in Python): the task will block until data is received.

The PyO3 documentation mentions calling py::check_signals()? but this is not a viable approach in our situation: the Zenoh-Flow runtime already intercepts some signals (notably SIGINT) to abort all running data flows.

The Zenoh-Flow runtime must convey that information to the node. Through a dedicated channel?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions