Todd Lipcon has submitted this change and it was merged. Change subject: KUDU-1962. Fix NPE when master returns SERVER_TOO_BUSY ......................................................................
KUDU-1962. Fix NPE when master returns SERVER_TOO_BUSY If the master's RPC queue overflows, it returns a TOO_BUSY error to the clients. We were not properly handling this in the case of ConnectToMaster RPCs. This adds a new unit test which provokes the behavior by setting a short queue and injecting latency into tablet location lookups while starting several threads which make clients and perform lookups. This also fixes the issue by reverting back to passing the placeholder 'masterTable' into these RPCs. Longer term we should avoid this 'masterTable' hack, since the master is not a table, but given that this causes serious problems, a more targeted fix is desirable for 1.3.1 and 1.4.0. Change-Id: Ic4aba2e39f05488da500c18247c72181c8e9dceb Reviewed-on: http://gerrit.cloudera.org:8080/6516 Reviewed-by: Jean-Daniel Cryans <[email protected]> Tested-by: Kudu Jenkins --- M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToCluster.java M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectToMasterRequest.java M java/kudu-client/src/main/java/org/apache/kudu/client/KuduClient.java M java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java A java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java 8 files changed, 160 insertions(+), 36 deletions(-) Approvals: Jean-Daniel Cryans: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6516 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic4aba2e39f05488da500c18247c72181c8e9dceb Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Jean-Daniel Cryans <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs <[email protected]> Gerrit-Reviewer: Todd Lipcon <[email protected]>
