This is an automated email from the ASF dual-hosted git repository.
lhotari 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 e0d7faa087f [fix][ml]Revert a behavior change of releasing idle
offloaded ledger handle: only release idle BlobStoreBackedReadHandle (#24384)
e0d7faa087f is described below
commit e0d7faa087f7ae6895f139b89ef333c8211f71d3
Author: fengyubiao <[email protected]>
AuthorDate: Mon Jun 9 21:33:46 2025 +0800
[fix][ml]Revert a behavior change of releasing idle offloaded ledger
handle: only release idle BlobStoreBackedReadHandle (#24384)
---
.../java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 3 ++-
.../mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
index 88272ac8f1f..61a54f8d595 100644
---
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
+++
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
@@ -2753,7 +2753,8 @@ public class ManagedLedgerImpl implements ManagedLedger,
CreateCallback {
ReadHandle readHandle = ledger.join();
if (readHandle instanceof OffloadedLedgerHandle
offloadedLedgerHandle) {
int pendingRead =
offloadedLedgerHandle.getPendingRead();
- if (pendingRead == 0) {
+ long lastAccessTimestamp =
offloadedLedgerHandle.lastAccessTimestamp();
+ if (lastAccessTimestamp >= 0 && pendingRead == 0) {
long delta = now -
offloadedLedgerHandle.lastAccessTimestamp();
if (delta >=
inactiveOffloadedLedgerEvictionTimeMs) {
log.info("[{}] Offloaded ledger {} can be
released ({} ms elapsed since last access)",
diff --git
a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java
b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java
index 84d9d118728..916e33c3642 100644
---
a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java
+++
b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImpl.java
@@ -135,8 +135,8 @@ public class BlobStoreBackedReadHandleImpl implements
ReadHandle, OffloadedLedge
// is better.
PENDING_READ_UPDATER.incrementAndGet(this);
promise.whenComplete((__, ex) -> {
-
PENDING_READ_UPDATER.decrementAndGet(BlobStoreBackedReadHandleImpl.this);
lastAccessTimestamp = System.currentTimeMillis();
+
PENDING_READ_UPDATER.decrementAndGet(BlobStoreBackedReadHandleImpl.this);
});
executor.execute(() -> {
if (state == State.Closed) {