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

technoboy pushed a commit to branch branch-2.11
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.11 by this push:
     new 017db7c1fb0 [Fix][Txn] Unwrap the completion exception. (#20396)
017db7c1fb0 is described below

commit 017db7c1fb0b003c7ff887ebb1d322070908fb2b
Author: thetumbled <[email protected]>
AuthorDate: Tue May 30 10:07:09 2023 +0800

    [Fix][Txn] Unwrap the completion exception. (#20396)
---
 .../org/apache/pulsar/broker/TransactionMetadataStoreService.java    | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/TransactionMetadataStoreService.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/TransactionMetadataStoreService.java
index 4e79184de0f..90ef6d632d8 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/TransactionMetadataStoreService.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/TransactionMetadataStoreService.java
@@ -169,7 +169,8 @@ public class TransactionMetadataStoreService {
                                     tcLoadSemaphore.release();
                                 })).exceptionally(e -> {
                             internalPinnedExecutor.execute(() -> {
-                                
completableFuture.completeExceptionally(e.getCause());
+                                Throwable realCause = 
FutureUtil.unwrapCompletionException(e);
+                                
completableFuture.completeExceptionally(realCause);
                                 // release before handle request queue,
                                 //in order to client reconnect infinite loop
                                 tcLoadSemaphore.release();
@@ -180,7 +181,7 @@ public class TransactionMetadataStoreService {
                                         CompletableFuture<Void> future = 
deque.poll();
                                         if (future != null) {
                                             // this means that this tc client 
connection connect fail
-                                            future.completeExceptionally(e);
+                                            
future.completeExceptionally(realCause);
                                         } else {
                                             break;
                                         }

Reply via email to