[ https://issues.apache.org/jira/browse/KUDU-3273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Serbin updated KUDU-3273: -------------------------------- Description: It's reported that in some scenarios {{AsyncKuduClient.discoverTablets()}} throws NullPointerException instead of NonCoveredRangeException. 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} was: 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} > 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.10.0, 1.10.1, 1.11.0, 1.12.0, 1.11.1, 1.13.0, 1.14.0 > Reporter: Alexey Serbin > Priority: Major > Labels: Java, client > > It's reported that in some scenarios {{AsyncKuduClient.discoverTablets()}} > throws NullPointerException instead of NonCoveredRangeException. 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)