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 re...@apache.org on 2017/02/27 12:42:27 UTC

svn commit: r1784551 - in /jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi: AbstractRepositoryFactoryTest.groovy DocumentNodeStoreConfigTest.groovy

Author: reschke
Date: Mon Feb 27 12:42:26 2017
New Revision: 1784551

URL: http://svn.apache.org/viewvc?rev=1784551&view=rev
Log:
OAK-5612: Test failure: org.apache.jackrabbit.oak.run.osgi.DocumentNodeStoreConfigTest.testRDBDocumentStoreRestart

Change test to use retry loop waiting for success; also extended wait to 5s max (from original 0,5s)

Modified:
    jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
    jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy

Modified: jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy?rev=1784551&r1=1784550&r2=1784551&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy (original)
+++ jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy Mon Feb 27 12:42:26 2017
@@ -132,6 +132,10 @@ abstract class AbstractRepositoryFactory
     }
 
     static retry(int timeoutSeconds, int intervalBetweenTriesMsec, Closure c) {
+        retry(timeoutSeconds, intervalBetweenTriesMsec, null, c)
+    }
+
+    static retry(int timeoutSeconds, int intervalBetweenTriesMsec, String message, Closure c) {
         long timeout = System.currentTimeMillis() + timeoutSeconds * 1000L;
         while (System.currentTimeMillis() < timeout) {
             try {
@@ -148,7 +152,6 @@ abstract class AbstractRepositoryFactory
             }
         }
 
-        fail("RetryLoop failed, condition is false after " + timeoutSeconds + " seconds: ");
+        fail("RetryLoop failed, condition is false after " + timeoutSeconds + " seconds" + (message ?: (":" + message)));
     }
-
 }

Modified: jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy?rev=1784551&r1=1784550&r2=1784551&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy (original)
+++ jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/DocumentNodeStoreConfigTest.groovy Mon Feb 27 12:42:26 2017
@@ -129,8 +129,15 @@ class DocumentNodeStoreConfigTest extend
 
         //3. Shut down ds
         srds.unregister();
-        TimeUnit.MILLISECONDS.sleep(1000);
-        assertNoService(NodeStore.class)
+
+        // Check for service to be unregistered after at most 5s, retrying every 500ms.
+        // Previously, we waited only 500ms; this was extended due to
+        // occasional test failures on Jenkins (see OAK-5612). If 5s
+        // are not sufficient, we should investigate some more.
+        retry (5, 500, "NodeStore should be unregistered") {
+            ServiceReference<NodeStore> sr = registry.getServiceReference(NodeStore.class.name)
+            return sr == null
+        }
 
         //4. Restart ds, service should still be down
         srds = registry.registerService(DataSource.class.name, ds, ['datasource.name': 'oak'] as Hashtable)