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

Bikas Saha commented on TEZ-1631:
---------------------------------

This patch looks similar to TEZ-1433-v1.patch on TEZ-1433 right?

What will actually happen when waitForProxy() is called is that it will end up 
throwing a SessionNotRunning exception that will go all the way to the high 
level component. So the internal stop() code will not be triggered. This is 
exactly what the new test is verifying by asserting that the exception is 
instance of SessionNotRunning.

The test needs some change though to mimic what actually happens. First, we 
need to let the session time out, then submit the DAG for the first time, catch 
and verify the exception. Then create a new session and submit the same DAG to 
the session. Verify that it runs and succeeds. So the successful run has to be 
from the second submission of the same DAG.

> Session dag submission timeout can result in duplicate DAG submissions
> ----------------------------------------------------------------------
>
>                 Key: TEZ-1631
>                 URL: https://issues.apache.org/jira/browse/TEZ-1631
>             Project: Apache Tez
>          Issue Type: Bug
>    Affects Versions: 0.4.1
>            Reporter: Bikas Saha
>            Assignee: Jeff Zhang
>         Attachments: Tez-1631-2.patch, Tez-1631-3.patch, Tez-1631.patch
>
>
> In TezSession.submitDAG() we could first check if the session is ready and 
> throw a SessionNotRunning exception if that is not the case. This should be 
> done before processing the DAG and thus will prevent unnecessary modification 
> of the DAG.
> If the session is ready then we can submit the DAG as usual. Higher level 
> components already handle SessionNotRunning exception.



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

Reply via email to