You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gluten.apache.org by "FelixYBW (via GitHub)" <gi...@apache.org> on 2026/04/04 08:12:17 UTC
[I] [VL] table scan allocated more memory than used and caused OOM [gluten]
FelixYBW opened a new issue, #11876:
URL: https://github.com/apache/gluten/issues/11876
### Backend
VL (Velox)
### Bug description
It's a very simple query:
```sql
select max(ss_wholesale_cost),max(ss_list_price)
from store_sales
where ss_quantity between 1 and 20
```
table scan reports OOM while the system memory utilization is only 64% and has 22G free memory available
```
org.apache.gluten.exception.GlutenException: org.apache.gluten.exception.GlutenException: Error during calling Java code from native code: org.apache.gluten.exception.GlutenException: org.apache.gluten.exception.GlutenException: Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: Operator::addInput failed for [operator: PartialAggregation, plan node ID: 2]: Error during calling Java code from native code: org.apache.gluten.memory.memtarget.ThrowOnOomMemoryTarget$OutOfMemoryException: Not enough spark off-heap execution memory. Acquired: 8.0 MiB, granted: 2.1 MiB. Try tweaking config option spark.memory.offHeap.size to get larger space to run this application (if spark.gluten.memory.dynamic.offHeap.sizing.enabled is not enabled).
Current config settings:
spark.memory.offHeap.enabled=True
spark.gluten.memory.dynamic.offHeap.sizing.enabled=N/A
spark.gluten.memory.offHeap.size.in.bytes=17.2 GiB
spark.gluten.memory.task.offHeap.size.in.bytes=1098.1 MiB
spark.gluten.memory.conservative.task.offHeap.size.in.bytes=549.1 MiB
Memory consumer stats:
Task.96: Current used bytes: 1096.0 MiB, peak bytes: N/A
\- Gluten.Tree.95: Current used bytes: 1096.0 MiB, peak bytes: 1098.1 MiB
\- Capacity[8.0 EiB].94: Current used bytes: 1096.0 MiB, peak bytes: 1098.1 MiB
+- NativePlanEvaluator-93.0: Current used bytes: 1096.0 MiB, peak bytes: 1098.1 MiB
| \- single: Current used bytes: 1096.0 MiB, peak bytes: 1096.0 MiB
| +- root: Current used bytes: 1088.0 MiB, peak bytes: 1089.0 MiB
| | +- task.Gluten_Stage_3_TID_96_VTID_93: Current used bytes: 1088.0 MiB, peak bytes: 1089.0 MiB
| | | +- node.0: Current used bytes: 1087.9 MiB, peak bytes: 1088.0 MiB
| | | | +- op.0.0.0.TableScan: Current used bytes: 1087.9 MiB, peak bytes: 1088.0 MiB
| | | | \- op.0.0.0.TableScan.test-hive: Current used bytes: 0.0 B, peak bytes: 0.0 B
| | | +- node.2: Current used bytes: 64.4 KiB, peak bytes: 1024.0 KiB
| | | | \- op.2.0.0.PartialAggregation: Current used bytes: 64.4 KiB, peak bytes: 64.4 KiB
| | | \- node.1: Current used bytes: 0.0 B, peak bytes: 0.0 B
| | | \- op.1.0.0.FilterProject: Current used bytes: 0.0 B, peak bytes: 0.0 B
| | \- default_leaf: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- gluten::MemoryAllocator: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- default: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- ShuffleWriter.93: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- single: Current used bytes: 0.0 B, peak bytes: 0.0 B
| +- gluten::MemoryAllocator: Current used bytes: 0.0 B, peak bytes: 0.0 B
| | \- default: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- root: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- default_leaf: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- VeloxBatchResizer.97.OverAcquire.0: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- IteratorMetrics.92: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- single: Current used bytes: 0.0 B, peak bytes: 0.0 B
| +- gluten::MemoryAllocator: Current used bytes: 0.0 B, peak bytes: 0.0 B
| | \- default: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- root: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- default_leaf: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- NativePlanEvaluator-93.0.OverAcquire.0: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- ShuffleWriter.93.OverAcquire.0: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- IteratorMetrics.92.OverAcquire.0: Current used bytes: 0.0 B, peak bytes: 0.0 B
\- VeloxBatchResizer.97: Current used bytes: 0.0 B, peak bytes: 0.0 B
\- single: Current used bytes: 0.0 B, peak bytes: 0.0 B
+- root: Current used bytes: 0.0 B, peak bytes: 0.0 B
| \- default_leaf: Current used bytes: 0.0 B, peak bytes: 0.0 B
\- gluten::MemoryAllocator: Current used bytes: 0.0 B, peak bytes: 0.0 B
\- default: Current used bytes: 0.0 B, peak bytes: 0.0 B
```
### Gluten version
_No response_
### Spark version
None
### Spark configurations
_No response_
### System information
_No response_
### Relevant logs
```bash
```
--
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: commits-unsubscribe@gluten.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org
Re: [I] [VL] table scan allocated more memory than used and caused OOM [gluten]
Posted by "FelixYBW (via GitHub)" <gi...@apache.org>.
FelixYBW closed issue #11876: [VL] table scan allocated more memory than used and caused OOM
URL: https://github.com/apache/gluten/issues/11876
--
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: commits-unsubscribe@gluten.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org
Re: [I] [VL] table scan allocated more memory than used and caused OOM [gluten]
Posted by "FelixYBW (via GitHub)" <gi...@apache.org>.
FelixYBW commented on issue #11876:
URL: https://github.com/apache/gluten/issues/11876#issuecomment-5839512322
The root cause is that memory utilization measured from sar/telegraf is the physical memory allocated. While the used bytes tracked by the memory manager are logical memory. This happens during table scans because we started too many I/O threads, which allocated a large block of memory to be filled by remote reads, but it's not yet filled. Finally, OOM was raised.
the solution is to reduce the inflight IO.
--
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: commits-unsubscribe@gluten.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org