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/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new a19d849a37 [fix][server]fix memory leak when closeRecovered,failed on
clearing newEnsemblesFromRecovery (#3672)
a19d849a37 is described below
commit a19d849a370d0b3eed73bb90f329b47f00730146
Author: StevenLuMT <[email protected]>
AuthorDate: Wed Dec 7 17:30:17 2022 +0800
[fix][server]fix memory leak when closeRecovered,failed on clearing
newEnsemblesFromRecovery (#3672)
Co-authored-by: lushiji <[email protected]>
---
.../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
index 954665404e..9e883a8246 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
@@ -326,11 +326,14 @@ class ReadOnlyLedgerHandle extends LedgerHandle
implements LedgerMetadataListene
return
builder.withClosedState().withLastEntryId(lac).withLength(len).build();
},
this::setLedgerMetadata).run();
- f.thenRun(() -> {
- synchronized (metadataLock) {
- newEnsemblesFromRecovery.clear();
- }
- });
+ f.whenComplete((result, exception) -> {
+ synchronized (metadataLock) {
+ newEnsemblesFromRecovery.clear();
+ }
+ if (exception != null) {
+ LOG.error("When closeRecovered,failed on clearing
newEnsemblesFromRecovery.", exception);
+ }
+ });
return f;
}