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 2023/01/17 08:41:00 UTC

[jira] [Updated] (IGNITE-18545) Compute "withXXX" modifiers in some cases are not applied to the user compute method call.

     [ https://issues.apache.org/jira/browse/IGNITE-18545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mikhail Petrov updated IGNITE-18545:
------------------------------------
    Description: 
When the "withXXX" IgniteCompute methods are called, we set the corresponding thread-local parameters that are applied to the first task executed (see IgniteComputeImpl#withName).
When we run the task, we clear all the thread-local settings that were set earlier.

Consider the IgniteCompute#affinityCall method.
During its execution, in some cases we run a system task to get the affinity distribution from other nodes before user task execution (see GridAffinityProcessor#affinityKey and GridAffinityProcessor#affinityInfoFromNode). As a result, the mentioned above modifiers are applied to the system task that requests the affinity distribution but not the user task.

It seems that the current approach to setting task parameters via thread-local variables is  error-prone and should be refactored.



  was:
When the "withXXX" IgniteCompute methods are called, we set the corresponding thread-local parameters that are applied to the first task executed (see IgniteComputeImpl#withName).
When we run the task, we clear all the thread-local settings that were set earlier.

Consider the IgniteCompute#affinityCall method.
During its execution, in some cases we run a system task to get the affinity distribution from other nodes (see GridAffinityProcessor#affinityKey and GridAffinityProcessor#affinityInfoFromNode). As a result, the mentioned above modifiers are applied to the system task that requests the affinity distribution but not the user task.

It seems that the current approach to setting task parameters via thread-local variables is  error-prone and should be refactored.




> Compute "withXXX" modifiers in some cases are not applied to the user compute method call.
> ------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18545
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18545
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mikhail Petrov
>            Assignee: Mikhail Petrov
>            Priority: Minor
>
> When the "withXXX" IgniteCompute methods are called, we set the corresponding thread-local parameters that are applied to the first task executed (see IgniteComputeImpl#withName).
> When we run the task, we clear all the thread-local settings that were set earlier.
> Consider the IgniteCompute#affinityCall method.
> During its execution, in some cases we run a system task to get the affinity distribution from other nodes before user task execution (see GridAffinityProcessor#affinityKey and GridAffinityProcessor#affinityInfoFromNode). As a result, the mentioned above modifiers are applied to the system task that requests the affinity distribution but not the user task.
> It seems that the current approach to setting task parameters via thread-local variables is  error-prone and should be refactored.



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