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

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

commit a69aa115688327e940193a55602769d6403c0979
Author: ken <[email protected]>
AuthorDate: Wed Nov 5 04:17:14 2025 +0800

    [fix][txn] fix concurrent error cause txn stuck in 
TransactionBufferHandlerImpl#endTxn (#23551)
    
    Co-authored-by: fanjianye <[email protected]>
    (cherry picked from commit c4f125cfa292a8d61e0d037fa2d0fa1e89308b29)
---
 .../broker/transaction/buffer/impl/TransactionBufferHandlerImpl.java  | 4 ++++
 1 file changed, 4 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionBufferHandlerImpl.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionBufferHandlerImpl.java
index 34ee28693b4..181ed3acb1e 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionBufferHandlerImpl.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/TransactionBufferHandlerImpl.java
@@ -128,6 +128,9 @@ public class TransactionBufferHandlerImpl implements 
TransactionBufferHandler {
             }
         } else {
             pendingRequests.add(op);
+            if (currentPermits != REQUEST_CREDITS_UPDATER.get(this)) {
+                checkPendingRequests();
+            }
             return false;
         }
     }
@@ -251,6 +254,7 @@ public class TransactionBufferHandlerImpl implements 
TransactionBufferHandler {
                             invalid.recycle();
                         }
                         endTxn(polled);
+                        break;
                     } else {
                         REQUEST_CREDITS_UPDATER.incrementAndGet(this);
                     }

Reply via email to