[ 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)