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/02/13 12:37:00 UTC
[jira] [Resolved] (IGNITE-18750) .NET: Compute modificators are not reset properly after task execution.
[ https://issues.apache.org/jira/browse/IGNITE-18750?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Petrov resolved IGNITE-18750.
-------------------------------------
Resolution: Fixed
> .NET: Compute modificators are not reset properly after task execution.
> -----------------------------------------------------------------------
>
> Key: IGNITE-18750
> URL: https://issues.apache.org/jira/browse/IGNITE-18750
> Project: Ignite
> Issue Type: Bug
> Components: platforms
> Reporter: Mikhail Petrov
> Assignee: Mikhail Petrov
> Priority: Major
> Labels: .NET
> Fix For: 2.15
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Consider the followig exampte (It can be placed in ComputeApiTest to run it)
> {code:java}
> [Test]
> public void TestTaskOptionsPropagation()
> {
> ICompute compute = _grid1.GetCompute();
>
> compute.WithTimeout(500).Call(new ComputeFunc());
> compute.ExecuteJavaTask<object>(ComputeClientTests.TestTask, (long)1000);
> }
> {code}
> Currently compute.ExecuteJavaTask call will fail with timeout exception even no "withTimeout" modifier was applied.
> It happens because during PlatformCompute#processInLongOutLong execution we apply task modifiers to both compute instances. As a result after
> `compute.WithTimeout(500).Call(new ComputeFunc());` execution
> `computeForPlatform` compute instance will reset its task modifiers and `compute`
> comput instance will not.
> So the next task execution after `compute.WithTimeout(500).Call(new ComputeFunc());` that uses `compute`instance will be executed with timout modifier applied even it was not applied by the user.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)