[ 
https://issues.apache.org/jira/browse/TEZ-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15168127#comment-15168127
 ] 

Siddharth Seth commented on TEZ-1911:
-------------------------------------

bq. One more question - does the interrupt status have to be checked before the 
merge starts or is it sufficient to check that once the actual merge kicks in.
I didn't mean to remove the interrupt status check. This was more about 
breaking out early before invoking the merge, but after creating the list in 
case of an interrupt.

> MergeManager's unconditionalReserve() should check for memory limits before 
> allocating memory to IntermediateMemoryToMemoryMerger
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEZ-1911
>                 URL: https://issues.apache.org/jira/browse/TEZ-1911
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Rajesh Balamohan
>            Assignee: Rajesh Balamohan
>         Attachments: TEZ-1911.1.patch, TEZ-1911.2.patch
>
>
> Currently, IntermediateMemoryToMemoryMerger invokes unconditionalReserve() to 
> get the memory needed for intermediate mem-to-mem merging.  It could 
> potentially cause issue in the following scenario
> 1. tez.runtime.io.sort.factor set to 100 and assume shuffled data (e.g 60% 
> memory occupied) haven't reached TEZ_RUNTIME_SHUFFLE_MERGE_PERCENT_DEFAULT
> 2. Assume that it reaches the sort.factor threshold before reaching merge 
> threshold.  This would kick in IntermediateMemoryToMemoryMerger.
> In IntermediateMemoryToMemoryMerger, it would try to allocate additional 60% 
> without any boundary checks.  This could lead to OOM depending on the 
> tez.runtime.io.sort.mb setting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to