Tomek Rękawek created OAK-8930:
----------------------------------

             Summary: More resilient blob listing for the Azure Segment Store
                 Key: OAK-8930
                 URL: https://issues.apache.org/jira/browse/OAK-8930
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: segment-azure
            Reporter: Tomek Rękawek
            Assignee: Tomek Rękawek
             Fix For: 1.26.0


If the Azure Storage is not responsive, then the segment listing method may 
fail with:
{noformat}
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.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
        at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
        at 
org.apache.jackrabbit.oak.segment.azure.AzureUtilities.getBlobs(AzureUtilities.java:76)
        at 
org.apache.jackrabbit.oak.segment.azure.AzureSegmentArchiveReader.<init>(AzureSegmentArchiveReader.java:61)
        at 
org.apache.jackrabbit.oak.segment.azure.AzureArchiveManager.forceOpen(AzureArchiveManager.java:122)
        at 
org.apache.jackrabbit.oak.segment.azure.tool.SegmentStoreMigrator.migrateArchives(SegmentStoreMigrator.java:164)
        at 
org.apache.jackrabbit.oak.segment.azure.tool.SegmentStoreMigrator.migrate(SegmentStoreMigrator.java:92)
...
Caused by: com.microsoft.azure.storage.StorageException: The client could not 
finish the operation within specified maximum execution timeout.
        at 
com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:254)
        at 
com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:109)
        ... 15 common frames omitted
Caused by: java.util.concurrent.TimeoutException: The client could not finish 
the operation within specified maximum execution timeout.
        at 
com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:253)
        ... 16 common frames omitted
{noformat}

We can use the listBlobsSegmented() method and retry it manually, like we do 
for the segment migration.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to