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

Siddharth Seth commented on TEZ-2669:
-------------------------------------

bq. The choice of not having Exception in the API's but then wrapping all 
plugins inside wrapper classes to add an exception to the effective internal 
signature seems incongruous. Simply having the Exception in the signature makes 
things clear and informs implementations that its ok to throw an exception and 
notify the framework vs forcing them to swallow any-and-all exceptions because 
the method signature does not allow throwing exceptions.
It is different from signatures on other interfaces. However, I believe this 
model works better since users have to think about how to handle Exceptions - 
either catch and do something useful, or catch and throw a Runtime. The 
framework cannot do the first part about doing something useful. As an example 
- something like invokeRpc() throws IOException. This, with Exception on the 
plugin signature, could end up being invoked once and the exception trickles 
down to the framework. Without an exception on the plugin signature, the user 
needs to decide on what to do - which could be a retry. I've also heard from 
users that a 'generic throws Exception()' is not very useful.


bq. Could you please remind me why TaskCommunicator.java is inside tez-dag 
instead of inside tez-api/serviceplugins like the rest of the plugins? And how 
does Hive/LLAP end up implementing it in that state?
Primarily because of it's dependencies on IDs. Also things like TezEvent. All 
of this needs to change at some point in the future. LLAP depends on tez-dag to 
implement it's own TaskCommunicator.

[~zjffdu], [~bikassaha], [~hitesh] - any other comments? 

> Propagation of errors from plugins to the AM for error reporting
> ----------------------------------------------------------------
>
>                 Key: TEZ-2669
>                 URL: https://issues.apache.org/jira/browse/TEZ-2669
>             Project: Apache Tez
>          Issue Type: Sub-task
>    Affects Versions: 0.8.0-alpha
>            Reporter: Siddharth Seth
>            Assignee: Siddharth Seth
>            Priority: Blocker
>         Attachments: TEZ-2669.1.txt, TEZ-2669.2.txt, TEZ-2669.3.txt
>
>




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

Reply via email to