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

Siddharth Seth commented on HIVE-12957:
---------------------------------------

Throwing a meaningful error would be ideal. However, a negative values comes 
directly from the YARN scheduler. In the past, getting certain parameters like 
headroom right on the YARN schedulers has required multiple iterations - and 
may still have corner cases which have not been explored. If a value like this 
comes in - we'd end up in a situation where jobs would fail randomly - until 
the issue is fixed by YARN.
Also, given that the number of splits is determined by available capacity - 
there's other cases where we ask for a single split - e.g. when the cluster is 
fully occupied and available capacity is 0. That scenario is almost as bad.
Requesting 1 split from FileInputFormat does not mean it returns only 1 split - 
it would still return 1 split per block.

The biggest problem with masking this is that we will not be able to report 
these issues so that they eventually get fixed.

> hive/tez query intermittently vertex initialize failure  Illegal Capacity: -1
> -----------------------------------------------------------------------------
>
>                 Key: HIVE-12957
>                 URL: https://issues.apache.org/jira/browse/HIVE-12957
>             Project: Hive
>          Issue Type: Bug
>          Components: Tez
>    Affects Versions: 1.2.0
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>         Attachments: HIVE-12957.1.patch
>
>
> {noformat}
> org.apache.tez.dag.app.dag.impl.AMUserCodeException: 
> java.lang.IllegalArgumentException: Illegal Capacity: -1
>       at 
> org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallback.onFailure(RootInputInitializerManager.java:292)
>       at com.google.common.util.concurrent.Futures$4.run(Futures.java:1140)
>       at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:293)
>       at 
> com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:150)
>       at 
> com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:135)
>       at 
> com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91)
>       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:380)
>       at java.util.concurrent.FutureTask.setException(FutureTask.java:247)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:267)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Illegal Capacity: -1
>       at java.util.ArrayList.<init>(ArrayList.java:142)
>       at 
> org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:332)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:305)
>       at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:407)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155)
>       at 
> org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:246)
>       at 
> org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:240)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:415)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
>       at 
> org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:240)
>       at 
> org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:227)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       ... 3 more
> {noformat}



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

Reply via email to