You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by eo...@apache.org on 2022/10/12 08:58:15 UTC

[pulsar] branch master updated: [bug][broker] fix memory leak in case of error conditions in PendingReadsManager (#17995)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 7ac8e3e003b [bug][broker] fix memory leak in case of error conditions in PendingReadsManager (#17995)
7ac8e3e003b is described below

commit 7ac8e3e003bde0d32049bf0fc09e25cfed4ded58
Author: Enrico Olivelli <eo...@apache.org>
AuthorDate: Wed Oct 12 10:58:05 2022 +0200

    [bug][broker] fix memory leak in case of error conditions in PendingReadsManager (#17995)
    
    Co-authored-by: Enrico Olivelli <il>
---
 .../apache/bookkeeper/mledger/impl/cache/PendingReadsManager.java    | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/cache/PendingReadsManager.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/cache/PendingReadsManager.java
index 4c374d8ace6..30216871e76 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/cache/PendingReadsManager.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/cache/PendingReadsManager.java
@@ -356,6 +356,8 @@ public class PendingReadsManager {
                                         @Override
                                         public void readEntriesFailed(ManagedLedgerException exception,
                                                                       Object dummyCtx3) {
+                                            entries.forEach(Entry::release);
+                                            entriesFromLeft.forEach(Entry::release);
                                             callback.readEntriesFailed(exception, ctx);
                                         }
                                     };
@@ -366,6 +368,7 @@ public class PendingReadsManager {
 
                                 @Override
                                 public void readEntriesFailed(ManagedLedgerException exception, Object dummyCtx4) {
+                                    entries.forEach(Entry::release);
                                     callback.readEntriesFailed(exception, ctx);
                                 }
                             };
@@ -388,6 +391,7 @@ public class PendingReadsManager {
                                         @Override
                                         public void readEntriesFailed(ManagedLedgerException exception,
                                                                       Object dummyCtx6) {
+                                            entries.forEach(Entry::release);
                                             callback.readEntriesFailed(exception, ctx);
                                         }
                                     };
@@ -410,6 +414,7 @@ public class PendingReadsManager {
                                         @Override
                                         public void readEntriesFailed(ManagedLedgerException exception,
                                                                       Object dummyCtx8) {
+                                            entries.forEach(Entry::release);
                                             callback.readEntriesFailed(exception, ctx);
                                         }
                                     };