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

Bikas Saha commented on TEZ-2193:
---------------------------------

Dont see references to this new constructor?
{code}
+  public AMUserCodeException(Source source, String message) {
+    super(message);
+    this.source = source;
+  }{code}

Messages are inconsistent
{code}+          "PhysicalInputCount must be positive," 
...
+          "PhysicalOutputs should not be negative,"
{code}

Check for srcTaskIndex should happen before using it in the next method. Right?
{code}           numConsumers = edgeManager.getNumDestinationConsumerTasks(
               srcTaskIndex);
+          Preconditions.checkArgument(srcTaskIndex >=0,
+              "SourceTaskIndex must be non-negative,"
+              + "srcTaskIndex=" + srcTaskIndex
+              + "srcVertex=" + sourceVertex.getLogIdentifier()
+              + "destVertex=" + destinationVertex.getLogIdentifier()
+              + "EdgeManager=" + edgeManager.getClass().getName());{code}

0 should be a legal value because vertices can have 0 tasks. E.g. after split 
calculation mapper had 0 tasks. The reducer task inputs would get 0 physical 
inputs right?

The approach in the patch is more general and better than the ones I had 
suggested. However, it would be good to add a check in the 
ScatterGatherEdgeManager to check that num destination tasks >= 0. Then the 
error message would be more specific and useful. The patch adds a generic 
catch-all error message.

> Check returned value from EdgeManagerPlugin before using it
> -----------------------------------------------------------
>
>                 Key: TEZ-2193
>                 URL: https://issues.apache.org/jira/browse/TEZ-2193
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Jeff Zhang
>            Assignee: Jeff Zhang
>         Attachments: TEZ-2193-1.patch, TEZ-2193-2.patch
>
>
> e.g. dag has vertices v1, v2 and shuffle edge between them, and v2 has custom 
> vertex manager and -1 parallelism. In this case v1's output spec may be has 
> -1 physical edge which will cause task hangs in TezChild.  



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

Reply via email to