Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-3273

NPE in AsyncKuduClient.discoverTablets() instead of NonCoveredRangeException

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.11.1, 1.13.0, 1.14.0
    • 1.15.0
    • client, java

    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)

      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)
      

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            aserbin Alexey Serbin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment