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 mr...@apache.org on 2016/12/15 21:28:15 UTC

svn commit: r1774524 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java

Author: mreutegg
Date: Thu Dec 15 21:28:14 2016
New Revision: 1774524

URL: http://svn.apache.org/viewvc?rev=1774524&view=rev
Log:
OAK-5060: Make DocumentNodeStore.alignWithExternalRevisions more chatty

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1774524&r1=1774523&r2=1774524&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Thu Dec 15 21:28:14 2016
@@ -2247,9 +2247,16 @@ public final class DocumentNodeStore
                                 "Current _lastRev entries: {}",
                         new Date(localTime), new Date(externalTime), lastRevMap.values());
                 double delay = ((double) externalTime - localTime) / 1000d;
-                String msg = String.format("Background read will be delayed by %.1f seconds. " +
-                        "Please check system time on cluster nodes.", delay);
+                String fmt = "Background read will be delayed by %.1f seconds. " +
+                        "Please check system time on cluster nodes.";
+                String msg = String.format(fmt, delay);
                 LOG.warn(msg);
+                while (localTime + 60000 < externalTime) {
+                    clock.waitUntil(localTime + 60000);
+                    localTime = clock.getTime();
+                    delay = ((double) externalTime - localTime) / 1000d;
+                    LOG.warn(String.format(fmt, delay));
+                }
                 clock.waitUntil(externalTime + 1);
             } else if (localTime == externalTime) {
                 // make sure local time is past external time

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1774524&r1=1774523&r2=1774524&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Thu Dec 15 21:28:14 2016
@@ -1637,6 +1637,7 @@ public class DocumentNodeStoreTest {
     @Test
     public void concurrentChildOperations() throws Exception {
         Clock clock = new Clock.Virtual();
+        clock.waitUntil(System.currentTimeMillis());
         Revision.setClock(clock);
         MemoryDocumentStore store = new MemoryDocumentStore();
         DocumentNodeStore ns1 = builderProvider.newBuilder()
@@ -1701,6 +1702,7 @@ public class DocumentNodeStoreTest {
     @Test
     public void concurrentChildOperations2() throws Exception {
         Clock clock = new Clock.Virtual();
+        clock.waitUntil(System.currentTimeMillis());
         Revision.setClock(clock);
         MemoryDocumentStore store = new MemoryDocumentStore();
         DocumentNodeStore ns1 = builderProvider.newBuilder()