Details
-
Sub-task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
AllocationHelper.allocateNew(...) has the following implementation:
public static boolean allocateNew(ValueVector v, int valueCount){ if (v instanceof FixedWidthVector) { ((FixedWidthVector) v).allocateNew(valueCount); return true; } else { return v.allocateNewSafe(); } }
If it can't allocate the memory it will either return false or throw an OutOfMemoryRuntimeException depending on the class of v.
Some operators that use this method, like NestedLoopJoinBatch don't check if allocateNew() returns false assuming it will throw an exception instead.
Attachments
Issue Links
- Is contained by
-
DRILL-2757 Verify operators correctly handle low memory conditions and cancellations
- Resolved
- is depended upon by
-
DRILL-2587 Random IOBException when doing an inner join on a table with wide strings
- Open