You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "László Bodor (Jira)" <ji...@apache.org> on 2021/02/04 11:44:00 UTC

[jira] [Commented] (TEZ-4282) Possible NPE in LocalClient after TEZ-4236

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

László Bodor commented on TEZ-4282:
-----------------------------------

https://github.com/apache/tez/pull/103

> Possible NPE in LocalClient after TEZ-4236
> ------------------------------------------
>
>                 Key: TEZ-4282
>                 URL: https://issues.apache.org/jira/browse/TEZ-4282
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: László Bodor
>            Assignee: László Bodor
>            Priority: Major
>
> It can be detected in hive unit tests:
> {code}
> Caused by: java.lang.NullPointerException
> 	at org.apache.tez.client.LocalClient.getAMStatus(LocalClient.java:406)
> 	at org.apache.tez.client.TezClient.getAppMasterStatus(TezClient.java:843)
> 	at org.apache.tez.client.TezClient.waitTillReady(TezClient.java:977)
> 	at org.apache.tez.client.TezClient.preWarm(TezClient.java:924)
> 	at org.apache.tez.client.TezClient.preWarm(TezClient.java:879)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.startSessionAndContainers(TezSessionState.java:546)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.openInternal(TezSessionState.java:374)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.open(TezSessionState.java:313)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.open(TezSessionState.java:220)
> 	at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:711)
> {code}
> the problem only affects LocalClient, so not a production-level issue, but unit tests can fail with this problem
> the original getAMStatus in FrameworkClient detected the non-readiness of the AM through the proxy:
> {code}
>     if (proxy == null) {
>       return TezAppMasterStatus.INITIALIZING;
>     }
>     GetAMStatusResponseProto response =
>         proxy.getAMStatus(null, GetAMStatusRequestProto.newBuilder().build());
>     return DagTypeConverters.convertTezAppMasterStatusFromProto(response.getStatus());
> {code}
> a similar solution should go to LocalClient, and only if isLocalWithoutNetwork is on
> {code}
>     if (clientHandler == null){
>       return TezAppMasterStatus.INITIALIZING;
>     }
>     return clientHandler.getTezAppMasterStatus();
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)