This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new a183d08  Fix flaky test with s3 backend (#1841)
a183d08 is described below

commit a183d080963553ce8dbef447959a93c13415551e
Author: Jia Zhai <[email protected]>
AuthorDate: Fri May 25 00:31:08 2018 +0800

    Fix flaky test with s3 backend (#1841)
    
    * fix flaky ut
    
    * add try catch to avoid future complete hang
    
    * add more info in log
    
    * add upload id in log
---
 .../broker/s3offload/S3ManagedLedgerOffloader.java       | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/s3offload/S3ManagedLedgerOffloader.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/s3offload/S3ManagedLedgerOffloader.java
index 43e4dda..5e46350 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/s3offload/S3ManagedLedgerOffloader.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/s3offload/S3ManagedLedgerOffloader.java
@@ -172,9 +172,14 @@ public class S3ManagedLedgerOffloader implements 
LedgerOffloader {
                     .withUploadId(dataBlockRes.getUploadId())
                     .withPartETags(etags));
             } catch (Throwable t) {
+                try {
+                    s3client.abortMultipartUpload(
+                        new AbortMultipartUploadRequest(bucket, dataBlockKey, 
dataBlockRes.getUploadId()));
+                } catch (Throwable throwable) {
+                    log.error("Failed abortMultipartUpload in bucket - {} with 
key - {}, uploadId - {}.",
+                        bucket, dataBlockKey, dataBlockRes.getUploadId(), 
throwable);
+                }
                 promise.completeExceptionally(t);
-                s3client.abortMultipartUpload(
-                    new AbortMultipartUploadRequest(bucket, dataBlockKey, 
dataBlockRes.getUploadId()));
                 return;
             }
 
@@ -191,8 +196,13 @@ public class S3ManagedLedgerOffloader implements 
LedgerOffloader {
                     metadata));
                 promise.complete(null);
             } catch (Throwable t) {
+                try {
+                    s3client.deleteObject(bucket, dataBlockKey);
+                } catch (Throwable throwable) {
+                    log.error("Failed deleteObject in bucket - {} with key - 
{}.",
+                        bucket, dataBlockKey, throwable);
+                }
                 promise.completeExceptionally(t);
-                s3client.deleteObject(bucket, dataBlockKey);
                 return;
             }
         });

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to