Alexey Serbin created KUDU-3273:
-----------------------------------

             Summary: NPE in AsyncKuduClient.discoverTablets() instead of 
NonRecoverableException
                 Key: KUDU-3273
                 URL: https://issues.apache.org/jira/browse/KUDU-3273
             Project: Kudu
          Issue Type: Bug
          Components: client, java
    Affects Versions: 1.14.0, 1.13.0, 1.11.1, 1.12.0, 1.11.0, 1.10.1, 1.10.0
            Reporter: Alexey Serbin


It's reported that in some scenarios {{AsyncKuduClient.discoverTablets()}} 
throws NullPointerException instead of NonRecoverableException.  As the source 
code suggests, that might happen when {{TableLocationsCache.get()}} returns 
{{null}}: 
https://github.com/apache/kudu/blob/0e1a1545b827d9a3d5d50fd3d54f60bdea83f40c/java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java#L84

The exact sequence of actions to reproduce the issue wasn't provided, but the 
following trace was reported with {{kudu-client}} of 1.10.0 version, but I 
guess the issue is present even in Kudu 1.14.0 (see 
https://github.com/apache/kudu/blob/f396e485089f43c925ccbd41efe951b2ad5187b9/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java#L2428)

{noformat}
java.lang.NullPointerException
        at 
org.apache.kudu.client.AsyncKuduClient.discoverTablets(AsyncKuduClient.java:2335)
        at 
org.apache.kudu.client.AsyncKuduClient$MasterLookupCB.call(AsyncKuduClient.java:2192)
        at 
org.apache.kudu.client.AsyncKuduClient$MasterLookupCB.call(AsyncKuduClient.java:2173)
        at com.stumbleupon.async.Deferred.doCall(Deferred.java:1280)
        at com.stumbleupon.async.Deferred.addCallbacks(Deferred.java:685)
        at com.stumbleupon.async.Deferred.addCallback(Deferred.java:721)
        at 
org.apache.kudu.client.AsyncKuduClient.locateTablet(AsyncKuduClient.java:1726)
        at 
org.apache.kudu.client.AsyncKuduClient.loopLocateTable(AsyncKuduClient.java:1851)
        at 
org.apache.kudu.client.AsyncKuduClient.locateTable(AsyncKuduClient.java:1894)
        at 
org.apache.kudu.client.AsyncKuduClient.syncLocateTable(AsyncKuduClient.java:1798)
        at 
org.apache.kudu.client.KuduTable.getTabletsLocations(KuduTable.java:233)
        at 
org.apache.kudu.client.KuduTable.getTabletsLocations(KuduTable.java:213)
{noformat}



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

Reply via email to