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

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


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new e4815119b13 [fix][txn] fix concurrent error cause txn stuck in 
TransactionBufferHandlerImpl#endTxn (#23551)
e4815119b13 is described below

commit e4815119b13190cf5aa1b1d32a2c36e18b6152ff
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 9aac9ab64d0..f67aa62c951 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
@@ -127,6 +127,9 @@ public class TransactionBufferHandlerImpl implements 
TransactionBufferHandler {
             }
         } else {
             pendingRequests.add(op);
+            if (currentPermits != REQUEST_CREDITS_UPDATER.get(this)) {
+                checkPendingRequests();
+            }
             return false;
         }
     }
@@ -250,6 +253,7 @@ public class TransactionBufferHandlerImpl implements 
TransactionBufferHandler {
                             invalid.recycle();
                         }
                         endTxn(polled);
+                        break;
                     } else {
                         REQUEST_CREDITS_UPDATER.incrementAndGet(this);
                     }

Reply via email to