diff --git a/datafusion/execution/src/memory_pool/mod.rs b/datafusion/execution/src/memory_pool/mod.rs index 30ad658d0d390..5a51bb12bf6ef 100644 --- a/datafusion/execution/src/memory_pool/mod.rs +++ b/datafusion/execution/src/memory_pool/mod.rs @@ -387,7 +387,9 @@ impl MemoryReservation { atomic::Ordering::Relaxed, |prev| prev.checked_sub(capacity), ) - .expect("capacity exceeds reservation size"); + .unwrap_or_else(|prev| { + panic!("Cannot free the capacity {capacity} out of allocated size {prev}") + }); self.registration.pool.shrink(self, capacity); } @@ -403,8 +405,7 @@ impl MemoryReservation { atomic::Ordering::Relaxed, |prev| prev.checked_sub(capacity), ) - .map_err(|_| { - let prev = self.size.load(atomic::Ordering::Relaxed); + .map_err(|prev| { internal_datafusion_err!( "Cannot free the capacity {capacity} out of allocated size {prev}" )