Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
Description
We shouldn't process the blobs in the foreach loop. The blob list is loaded lazily and too long delays between reading segments can result in timeout:
Exception in thread "main" java.util.NoSuchElementException: An error occurred while enumerating the result, check the original exception for details. at com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:113) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) at org.apache.jackrabbit.oak.segment.azure.AzureArchiveManager.renameTo(AzureArchiveManager.java:134) at org.apache.jackrabbit.oak.segment.file.tar.TarReader.backupSafely(TarReader.java:208) at org.apache.jackrabbit.oak.segment.file.tar.TarReader.collectFileEntries(TarReader.java:154) at org.apache.jackrabbit.oak.segment.file.tar.TarReader.open(TarReader.java:99) at org.apache.jackrabbit.oak.segment.file.tar.TarFiles.<init>(TarFiles.java:395) at org.apache.jackrabbit.oak.segment.file.tar.TarFiles.<init>(TarFiles.java:65) at org.apache.jackrabbit.oak.segment.file.tar.TarFiles$Builder.build(TarFiles.java:213) at org.apache.jackrabbit.oak.segment.file.FileStore.<init>(FileStore.java:171) at org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.build(FileStoreBuilder.java:430)