[
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)