Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-45-ipc-debug 4f9dc3e83 -> f884b267e


# IPC debug


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f884b267
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f884b267
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f884b267

Branch: refs/heads/ignite-45-ipc-debug
Commit: f884b267e05acc37cdd98b68a35ffe8e7c3a588f
Parents: 4f9dc3e
Author: Valentin Kulichenko <vkuliche...@gridgain.com>
Authored: Tue Mar 24 11:35:14 2015 -0700
Committer: Valentin Kulichenko <vkuliche...@gridgain.com>
Committed: Tue Mar 24 11:35:14 2015 -0700

----------------------------------------------------------------------
 .../shmem/IpcSharedMemoryServerEndpoint.java    | 14 ++++++++----
 .../IpcSharedMemoryCrashDetectionSelfTest.java  | 24 ++++++++++++++++++--
 2 files changed, 32 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f884b267/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
index 0f3954e..bda5fd6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
@@ -114,7 +114,10 @@ public class IpcSharedMemoryServerEndpoint implements 
IpcServerEndpoint {
     private final Collection<IpcSharedMemoryClientEndpoint> endpoints =
         new GridConcurrentHashSet<>();
 
-    /** Use this constructor when dependencies could be injected with {@link 
GridResourceProcessor#injectGeneric(Object)}. */
+    /**
+     * Use this constructor when dependencies could be injected
+     * with {@link GridResourceProcessor#injectGeneric(Object)}.
+     */
     public IpcSharedMemoryServerEndpoint() {
         // No-op.
     }
@@ -524,9 +527,9 @@ public class IpcSharedMemoryServerEndpoint implements 
IpcServerEndpoint {
 
             while (true) {
                 try {
-                    U.sleep(GC_FREQ);
+                    Thread.sleep(GC_FREQ);
                 }
-                catch (IgniteInterruptedCheckedException e) {
+                catch (InterruptedException e) {
                     // No-op.
                 }
 
@@ -554,8 +557,11 @@ public class IpcSharedMemoryServerEndpoint implements 
IpcServerEndpoint {
                 if (isCancelled()) {
                     if (lastRunNeeded)
                         lastRunNeeded = false;
-                    else
+                    else {
+                        Thread.currentThread().interrupt();
+
                         break;
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f884b267/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryCrashDetectionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryCrashDetectionSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryCrashDetectionSelfTest.java
index 8fffa11..4e8338d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryCrashDetectionSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryCrashDetectionSelfTest.java
@@ -45,6 +45,25 @@ public class IpcSharedMemoryCrashDetectionSelfTest extends 
GridCommonAbstractTes
         IpcSharedMemoryNativeLoader.load();
     }
 
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        // Start and stop server endpoint to let GC worker
+        // make a run and cleanup resources.
+
+        U.setWorkDirectory(null, U.getIgniteHome());
+
+        IpcSharedMemoryServerEndpoint srv = new 
IpcSharedMemoryServerEndpoint();
+
+        new IgniteTestResources().inject(srv);
+
+        try {
+            srv.start();
+        }
+        finally {
+            srv.close();
+        }
+    }
+
     /**
      * @throws Exception If failed.
      */
@@ -207,7 +226,7 @@ public class IpcSharedMemoryCrashDetectionSelfTest extends 
GridCommonAbstractTes
         try {
             // Run client endpoint.
             client = (IpcSharedMemoryClientEndpoint) 
IpcEndpointFactory.connectEndpoint(
-                    "shmem:" + IpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, 
log);
+                "shmem:" + IpcSharedMemoryServerEndpoint.DFLT_IPC_PORT, log);
 
             OutputStream os = client.outputStream();
 
@@ -238,7 +257,8 @@ public class IpcSharedMemoryCrashDetectionSelfTest extends 
GridCommonAbstractTes
             assertTrue(i >= interactionsCntBeforeSrvKilling);
 
             assertTrue(X.hasCause(e, IgniteCheckedException.class));
-            assertTrue(X.cause(e, 
IgniteCheckedException.class).getMessage().contains("Shared memory segment has 
been closed"));
+            assertTrue(X.cause(e, 
IgniteCheckedException.class).getMessage().contains(
+                "Shared memory segment has been closed"));
         }
         finally {
             U.closeQuiet(client);

Reply via email to