BewareMyPower commented on a change in pull request #14545:
URL: https://github.com/apache/pulsar/pull/14545#discussion_r823808996



##########
File path: 
managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
##########
@@ -2363,13 +2363,13 @@ private void 
maybeOffload(CompletableFuture<PositionImpl> finalPromise) {
                                     + ", total size = {}, already offloaded = 
{}, to offload = {}",
                             name, 
toOffload.stream().map(LedgerInfo::getLedgerId).collect(Collectors.toList()),
                             sizeSummed, alreadyOffloadedSize, toOffloadSize);
+                    offloadLoop(unlockingPromise, toOffload, 
PositionImpl.LATEST, Optional.empty());
                 } else {
                     // offloadLoop will complete immediately with an empty 
list to offload
                     log.debug("[{}] Nothing to offload, total size = {}, 
already offloaded = {}, threshold = {}",
                             name, sizeSummed, alreadyOffloadedSize, threshold);
+                    unlockingPromise.complete(PositionImpl.LATEST);
                 }
-
-                offloadLoop(unlockingPromise, toOffload, PositionImpl.LATEST, 
Optional.empty());

Review comment:
       If whether `unlockingPromise` is completed exceptionally makes no 
difference, changing the current behavior seems useless.
   
   IMO, a PR should usually avoid the unrelated changes. Yes we can treat the 
empty `ledgersToOffload` case as no error, even if the state is `Closed`. 
However, what does it affect after making this change?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to