mreutegg commented on code in PR #2467:
URL: https://github.com/apache/jackrabbit-oak/pull/2467#discussion_r2294018574


##########
oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureArchiveManager.java:
##########
@@ -80,38 +80,16 @@ public AzureArchiveManager(BlobContainerClient 
readBlobContainerClient, BlobCont
     @Override
     public List<String> listArchives() throws IOException {
         try {
-            List<String> archiveNames = 
readBlobContainerClient.listBlobsByHierarchy(rootPrefix).stream()
+            return 
readBlobContainerClient.listBlobsByHierarchy(rootPrefix).stream()

Review Comment:
   I agree on the need to improve the archive delete operation and we can 
certainly do it in a separate task.
   
   > The code in `trunk` right now assumes the archive is empty if the segment 
"0000.*" is absent. If we do filtering based on that, the question is how to 
distinguish intentional archive deletion from data corruption, when a segment 
is deleted or not successfully uploaded for any reason.
   
   The first segment with position 0000 should only be deleted when the archive 
is deleted. I'm not aware of another code path where this happens. Or you mean 
when someone manually deletes the blob in Azure? If the segment is not 
successfully uploaded, then the segment write should simply fail or retried. 
Can you clarify why this is relevant in this context? 
   
   My concern is that not filtering out those archives anymore in 
AzureArchiveManager.listArchives() is a change in behavior. There must be a 
reason why the code in trunk filters out those archives. Is this not relevant 
anymore? Why?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: oak-dev-unsubscr...@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to