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