You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Mikhail Petrov (Jira)" <ji...@apache.org> on 2026/10/13 12:11:00 UTC

[jira] [Commented] (IGNITE-29116) Fix Operation Context propagation for Ignite Compute

    [ https://issues.apache.org/jira/browse/IGNITE-29116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18126712#comment-18126712 ] 

Mikhail Petrov commented on IGNITE-29116:
-----------------------------------------

[~NSAmelchev] Thank you for the review.

> Fix Operation Context propagation for Ignite Compute 
> -----------------------------------------------------
>
>                 Key: IGNITE-29116
>                 URL: https://issues.apache.org/jira/browse/IGNITE-29116
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Mikhail Petrov
>            Assignee: Mikhail Petrov
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Ignite Compute handles tasks and jobs the way thread pools and futures handle runnables and listeners. A task or job is submitted, stored in an internal collection, and later run by an arbitrary thread. So Compute has the same Operation Context propagation problem we already solved for Ignite futures and thread pools.
> A task or job can also react to signals that arrive on other threads, such as a cluster node leaving. Its phases can then run under an Operation Context that belongs to whoever triggered the signal, not to the task initiator.
> Affected paths:
> - Job side (GridJobWorker):
>   - A queued job is activated, or rejected, by the collision SPI in the request thread of another job.
>   - A running job is cancelled from another thread: by the collision SPI, or by a task cancellation request.
>   - A job suspended with holdcc() is resumed by callcc() in whatever thread calls it.
>   - ComputeJobMasterLeaveAware.onMasterNodeLeft runs in the discovery thread.
> - Task side (GridTaskWorker): job responses, and with them ComputeTask.result() and ComputeTask.reduce(), are processed in foreign threads. Examples are the response synthesized from a node-left event (discovery thread), and a rejection triggered by another task's job.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)