Github user sachouche commented on a diff in the pull request:
https://github.com/apache/drill/pull/1237#discussion_r184197278
--- Diff:
exec/memory/base/src/main/java/org/apache/drill/exec/memory/AllocationManager.java
---
@@ -253,10 +261,12 @@ public boolean transferBalance(final BufferLedger
target) {
target.historicalLog.recordEvent("incoming(from %s)",
owningLedger.allocator.name);
}
- boolean overlimit = target.allocator.forceAllocate(size);
+ // Release first to handle the case where the current and target
allocators were part of the same
+ // parent / child tree.
allocator.releaseBytes(size);
+ boolean allocationFit = target.allocator.forceAllocate(size);
--- End diff --
What about debugging:
- An operation fails
- And yet there is a change of ownership
@vrozov, I rather not make this change as I strongly believe the change of
ownership should happen only on success.
---