You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2015/07/22 15:36:54 UTC

svn commit: r1692272 - in /jackrabbit/oak/trunk/oak-tarmk-standby/src: main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/ test/java/org/apache/jackrabbit/oak/plugins/segment/ test/java/org/apache/jackrabbit/oak/plugins/segment/standby/

Author: alexparvulescu
Date: Wed Jul 22 13:36:54 2015
New Revision: 1692272

URL: http://svn.apache.org/r1692272
Log:
OAK-3109 OOME in tarkmk standby tests

Modified:
    jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/SegmentLoaderHandler.java
    jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java
    jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java
    jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/NetworkErrorProxy.java
    jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/ExternalSharedStoreIT.java
    jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/SegmentLoaderHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/SegmentLoaderHandler.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/SegmentLoaderHandler.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/SegmentLoaderHandler.java Wed Jul 22 13:36:54 2015
@@ -206,11 +206,6 @@ public class SegmentLoaderHandler extend
 
     @Override
     public void close() {
-        ctx.close();
-        if (loaderExecutor != null && !loaderExecutor.isShuttingDown()) {
-            loaderExecutor.shutdownGracefully(1, 2, TimeUnit.SECONDS)
-                    .syncUninterruptibly();
-        }
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java Wed Jul 22 13:36:54 2015
@@ -207,13 +207,17 @@ public final class StandbyClient impleme
 
     private void shutdownNetty() {
         if (group != null && !group.isShuttingDown()) {
-            group.shutdownGracefully(1, 2, TimeUnit.SECONDS)
+            group.shutdownGracefully(1, 1, TimeUnit.SECONDS)
                     .syncUninterruptibly();
         }
         if (executor != null && !executor.isShuttingDown()) {
-            executor.shutdownGracefully(1, 2, TimeUnit.SECONDS)
+            executor.shutdownGracefully(1, 1, TimeUnit.SECONDS)
                     .syncUninterruptibly();
         }
+        if (handler != null) {
+            handler.close();
+            handler = null;
+        }
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java Wed Jul 22 13:36:54 2015
@@ -19,6 +19,7 @@
 package org.apache.jackrabbit.oak.plugins.segment.standby.client;
 
 import static org.apache.jackrabbit.oak.plugins.segment.standby.codec.Messages.newGetHeadReq;
+import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.SimpleChannelInboundHandler;
 import io.netty.util.concurrent.DefaultEventExecutorGroup;
@@ -87,7 +88,6 @@ public class StandbyClientHandler extend
         if (store.getHead().getRecordId().equals(head)) {
             // all sync'ed up
             log.debug("no changes on sync.");
-            ctx.close();
             return;
         }
 
@@ -114,14 +114,17 @@ public class StandbyClientHandler extend
     }
 
     @Override
-    public void close() {
-        ctx.close();
-        if (!executor.isShuttingDown()) {
-            executor.shutdownGracefully(1, 2, TimeUnit.SECONDS)
-                    .syncUninterruptibly();
+    public synchronized void close() {
+        if (ctx != null) {
+            for (ChannelHandler h : ctx.pipeline().toMap().values()) {
+                ctx.pipeline().remove(h);
+            }
+
+            ctx.close();
+            ctx = null;
         }
         if (loaderExecutor != null && !loaderExecutor.isShuttingDown()) {
-            loaderExecutor.shutdownGracefully(1, 2, TimeUnit.SECONDS)
+            loaderExecutor.shutdownGracefully(1, 1, TimeUnit.SECONDS)
                     .syncUninterruptibly();
         }
     }

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/NetworkErrorProxy.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/NetworkErrorProxy.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/NetworkErrorProxy.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/NetworkErrorProxy.java Wed Jul 22 13:36:54 2015
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 import java.util.concurrent.TimeUnit;
 
 public class NetworkErrorProxy {
-    private static final Logger log = LoggerFactory
+    static final Logger log = LoggerFactory
             .getLogger(NetworkErrorProxy.class);
 
     private final int inboundPort;
@@ -168,7 +168,7 @@ class ForwardHandler extends ChannelInbo
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
-        cause.printStackTrace();
+        NetworkErrorProxy.log.debug(cause.getMessage(), cause);
         ctx.close();
     }
 }
@@ -233,7 +233,7 @@ class SendBackHandler implements Channel
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
-        cause.printStackTrace();
+        NetworkErrorProxy.log.debug(cause.getMessage(), cause);
         this.target.close();
     }
 

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/ExternalSharedStoreIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/ExternalSharedStoreIT.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/ExternalSharedStoreIT.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/ExternalSharedStoreIT.java Wed Jul 22 13:36:54 2015
@@ -19,17 +19,13 @@
 package org.apache.jackrabbit.oak.plugins.segment.standby;
 
 import static org.apache.jackrabbit.oak.plugins.segment.SegmentTestUtils.createTmpTargetDir;
-import static org.junit.Assume.assumeTrue;
 
 import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.jackrabbit.oak.commons.CIHelper;
 import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
-
 import org.junit.After;
-import org.junit.Before;
 
 public class ExternalSharedStoreIT extends DataStoreTestBase {
     private File externalStore;
@@ -39,11 +35,6 @@ public class ExternalSharedStoreIT exten
         this.storesCanBeEqual = true;
     }
 
-    @Before
-    public void checkEnvironment() {
-        assumeTrue(!CIHelper.travis());
-    }
-
     @After
     public void after() {
         closeServerAndClient();

Modified: jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java?rev=1692272&r1=1692271&r2=1692272&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java (original)
+++ jackrabbit/oak/trunk/oak-tarmk-standby/src/test/java/org/apache/jackrabbit/oak/plugins/segment/standby/TestBase.java Wed Jul 22 13:36:54 2015
@@ -19,18 +19,26 @@
 package org.apache.jackrabbit.oak.plugins.segment.standby;
 
 import static org.apache.jackrabbit.oak.plugins.segment.SegmentTestUtils.createTmpTargetDir;
+import static org.junit.Assume.assumeTrue;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Set;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.SystemUtils;
+import org.apache.jackrabbit.oak.commons.CIHelper;
+import org.apache.jackrabbit.oak.commons.FixturesHelper;
+import org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture;
 import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
+import org.junit.BeforeClass;
 
 public class TestBase {
     int port = Integer.valueOf(System.getProperty("standby.server.port", "52800"));
     final static String LOCALHOST = "127.0.0.1";
 
+    private static final Set<Fixture> FIXTURES = FixturesHelper.getFixtures();
+
     File directoryS;
     FileStore storeS;
 
@@ -46,6 +54,12 @@ public class TestBase {
     */
     protected final boolean noDualStackSupport = SystemUtils.IS_OS_WINDOWS && SystemUtils.IS_JAVA_1_6;
 
+    @BeforeClass
+    public static void assumptions() {
+        assumeTrue(!CIHelper.travis());
+        assumeTrue(FIXTURES.contains(Fixture.SEGMENT_MK));
+    }
+
     public void setUpServerAndClient() throws IOException {
         // server
         directoryS = createTmpTargetDir("FailoverServerTest");