You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2016/06/29 14:05:08 UTC
ignite git commit: IGNITE-3329 .NET: Fix TestDeployNodeSingleton and
TestRunActions
Repository: ignite
Updated Branches:
refs/heads/master 40d863246 -> 94ecfe01c
IGNITE-3329 .NET: Fix TestDeployNodeSingleton and TestRunActions
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/94ecfe01
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/94ecfe01
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/94ecfe01
Branch: refs/heads/master
Commit: 94ecfe01cb92d5595611ff31df6b3c7d494b7ea2
Parents: 40d8632
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Wed Jun 29 17:04:40 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Wed Jun 29 17:04:40 2016 +0300
----------------------------------------------------------------------
.../services/PlatformAbstractService.java | 3 +-
.../Compute/ComputeApiTest.cs | 42 ++++++++++++++------
.../Services/ServicesTest.cs | 1 +
.../Impl/Services/Services.cs | 17 ++++----
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 7 +++-
5 files changed, 47 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/94ecfe01/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/services/PlatformAbstractService.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/services/PlatformAbstractService.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/services/PlatformAbstractService.java
index 0840275..d6a6e16 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/services/PlatformAbstractService.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/services/PlatformAbstractService.java
@@ -213,7 +213,8 @@ public abstract class PlatformAbstractService implements PlatformService, Extern
@IgniteInstanceResource
public void setIgniteInstance(Ignite ignite) {
// Ignite instance can be null here because service processor invokes "cleanup" on resource manager.
- platformCtx = ignite != null ? PlatformUtils.platformContext(ignite) : null;
+ if (ignite != null && platformCtx == null)
+ platformCtx = PlatformUtils.platformContext(ignite);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/94ecfe01/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Compute/ComputeApiTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Compute/ComputeApiTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Compute/ComputeApiTest.cs
index d431aed..bc26e4c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Compute/ComputeApiTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Compute/ComputeApiTest.cs
@@ -21,6 +21,7 @@ namespace Apache.Ignite.Core.Tests.Compute
{
using System;
using System.Collections;
+ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
@@ -1008,11 +1009,11 @@ namespace Apache.Ignite.Core.Tests.Compute
[Test]
public void TestBroadcastAction()
{
- ComputeAction.InvokeCount = 0;
+ var id = Guid.NewGuid();
- _grid1.GetCompute().Broadcast(new ComputeAction());
+ _grid1.GetCompute().Broadcast(new ComputeAction(id));
- Assert.AreEqual(2, ComputeAction.InvokeCount);
+ Assert.AreEqual(2, ComputeAction.InvokeCount(id));
}
/// <summary>
@@ -1021,11 +1022,11 @@ namespace Apache.Ignite.Core.Tests.Compute
[Test]
public void TestRunAction()
{
- ComputeAction.InvokeCount = 0;
-
- _grid1.GetCompute().Run(new ComputeAction());
+ var id = Guid.NewGuid();
+
+ _grid1.GetCompute().Run(new ComputeAction(id));
- Assert.AreEqual(1, ComputeAction.InvokeCount);
+ Assert.AreEqual(1, ComputeAction.InvokeCount(id));
}
/// <summary>
@@ -1053,13 +1054,13 @@ namespace Apache.Ignite.Core.Tests.Compute
[Test]
public void TestRunActions()
{
- ComputeAction.InvokeCount = 0;
+ var id = Guid.NewGuid();
- var actions = Enumerable.Range(0, 10).Select(x => new ComputeAction());
+ var actions = Enumerable.Range(0, 10).Select(x => new ComputeAction(id));
_grid1.GetCompute().Run(actions);
- Assert.AreEqual(10, ComputeAction.InvokeCount);
+ Assert.AreEqual(10, ComputeAction.InvokeCount(id));
}
/// <summary>
@@ -1324,16 +1325,33 @@ namespace Apache.Ignite.Core.Tests.Compute
#pragma warning disable 649
private IIgnite _grid;
- public static int InvokeCount;
+ public static ConcurrentBag<Guid> Invokes = new ConcurrentBag<Guid>();
public static Guid LastNodeId;
+ public Guid Id { get; set; }
+
+ public ComputeAction()
+ {
+ // No-op.
+ }
+
+ public ComputeAction(Guid id)
+ {
+ Id = id;
+ }
+
public void Invoke()
{
Thread.Sleep(10);
- Interlocked.Increment(ref InvokeCount);
+ Invokes.Add(Id);
LastNodeId = _grid.GetCluster().GetLocalNode().Id;
}
+
+ public static int InvokeCount(Guid id)
+ {
+ return Invokes.Count(x => x == id);
+ }
}
class InvalidComputeAction : ComputeAction
http://git-wip-us.apache.org/repos/asf/ignite/blob/94ecfe01/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs
index 2bacf50..c6af077 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs
@@ -684,6 +684,7 @@ namespace Apache.Ignite.Core.Tests.Services
{
foreach (var grid in Grids)
Assert.IsTrue(
+ // ReSharper disable once AccessToForEachVariableInClosure
TestUtils.WaitForCondition(() => grid.GetServices()
.GetService<ITestIgniteService>(name) == null, 5000));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/94ecfe01/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Services/Services.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Services/Services.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Services/Services.cs
index 3d55f06..e3e2764 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Services/Services.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Services/Services.cs
@@ -313,18 +313,17 @@ namespace Apache.Ignite.Core.Impl.Services
{
bool hasVal = r.ReadBool();
- if (hasVal)
- {
- var count = r.ReadInt();
+ if (!hasVal)
+ return new T[0];
+
+ var count = r.ReadInt();
- var res = new List<T>(count);
+ var res = new List<T>(count);
- for (var i = 0; i < count; i++)
- res.Add(Marshaller.Ignite.HandleRegistry.Get<T>(r.ReadLong()));
+ for (var i = 0; i < count; i++)
+ res.Add(Marshaller.Ignite.HandleRegistry.Get<T>(r.ReadLong()));
- return res;
- }
- return null;
+ return res;
});
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/94ecfe01/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index 89ed838..408b48f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@ -931,7 +931,12 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
{
SafeCall(() =>
{
- var svc = _handleRegistry.Get<IService>(svcPtr, true);
+ var svc = _handleRegistry.Get<IService>(svcPtr);
+
+ // Ignite does not guarantee that Cancel is called after Execute exits
+ // So missing handle is a valid situation
+ if (svc == null)
+ return;
using (var stream = IgniteManager.Memory.Get(memPtr).GetStream())
{