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 am...@apache.org on 2018/09/12 08:44:18 UTC

svn commit: r1840642 - in /jackrabbit/oak/trunk: oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java

Author: amitj
Date: Wed Sep 12 08:44:17 2018
New Revision: 1840642

URL: http://svn.apache.org/viewvc?rev=1840642&view=rev
Log:
OAK-7749: Fix random failures in S3 related tests

- Add retry for blob creation to handle intermittent n/w problems

Modified:
    jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java
    jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java

Modified: jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java?rev=1840642&r1=1840641&r2=1840642&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/S3SharedBlobStoreGCTest.java Wed Sep 12 08:44:17 2018
@@ -61,6 +61,7 @@ public class S3SharedBlobStoreGCTest ext
 
     @Override
     protected DataStoreBlobStore getBlobStore(File rootFolder) throws Exception {
+        retryCreation = true;
         Properties props = S3DataStoreUtils.getS3Config();
         bucket = rootFolder.getName();
         props.setProperty(S3Constants.S3_BUCKET, bucket);

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java?rev=1840642&r1=1840641&r2=1840642&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java Wed Sep 12 08:44:17 2018
@@ -65,7 +65,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertTrue;
 
 /**
- * Test for gc in a shared data store among hetrogeneous oak node stores.
+ * Test for gc in a shared data store among heterogeneous oak node stores.
  */
 public class SharedBlobStoreGCTest {
     private static final Logger log = LoggerFactory.getLogger(SharedBlobStoreGCTest.class);
@@ -76,6 +76,7 @@ public class SharedBlobStoreGCTest {
     protected Cluster cluster1;
     protected Cluster cluster2;
     private Clock clock;
+    protected boolean retryCreation = false;
 
     @Before
     public void setUp() throws Exception {
@@ -283,7 +284,29 @@ public class SharedBlobStoreGCTest {
                 }
             }
             for (int i = 0; i < number; i++) {
-                Blob b = ds.createBlob(randomStream(i + seed, 16516));
+                Blob b = null;
+                // Simple retry
+                if (retryCreation) {
+                    for (int retry = 0; retry < 5; retry++) {
+                        try {
+                            b = ds.createBlob(randomStream(i + seed, 16516));
+                            if (b != null) {
+                                break;
+                            }
+                        } catch (Exception e) {
+                            if (retry >= 5) {
+                                log.warn("Error in writing record", e);
+                                throw e;
+                            } else {
+                                log.warn("Error in writing record...retrying", e);
+                                Thread.sleep(100);
+                            }
+                        }
+                    }
+                } else {
+                    b = ds.createBlob(randomStream(i + seed, 16516));
+                }
+
                 if (!deletes.contains(i)) {
                     Iterator<String> idIter =
                             ((GarbageCollectableBlobStore) ds.getBlobStore())