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 2016/10/10 16:07:46 UTC
svn commit: r1764144 -
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java
Author: alexparvulescu
Date: Mon Oct 10 16:07:46 2016
New Revision: 1764144
URL: http://svn.apache.org/viewvc?rev=1764144&view=rev
Log:
OAK-4917 DefaultStandbyReferencesReader does not re-attempt to read segment upon failure
patch provided by Timothee Maret
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java?rev=1764144&r1=1764143&r2=1764144&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbyReferencesReader.java Mon Oct 10 16:07:46 2016
@@ -21,6 +21,7 @@ import static com.google.common.collect.
import java.util.List;
import java.util.UUID;
+import java.util.concurrent.TimeUnit;
import org.apache.jackrabbit.oak.segment.Segment;
import org.apache.jackrabbit.oak.segment.SegmentId;
@@ -62,12 +63,24 @@ class DefaultStandbyReferencesReader imp
}
private Segment readSegment(SegmentId id) {
- try {
- return store.readSegment(id);
- } catch (SegmentNotFoundException e) {
- log.warn(String.format("Unable to read segment %s", id), e);
+
+ for (int i = 0; i < 10; i++) {
+ try {
+ return store.readSegment(id);
+ } catch (SegmentNotFoundException e) {
+ log.warn("Unable to read segment, waiting...", e);
+ }
+
+ try {
+ TimeUnit.MILLISECONDS.sleep(2000);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return null;
+ }
}
+ log.warn("Unable to read segment %s", id);
+
return null;
}