Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/11449


Change subject: KUDU-2580 [c++ client] authn token reacquisition fix
......................................................................

KUDU-2580 [c++ client] authn token reacquisition fix

Updated the authn token reacquisition logic to handle the following
scenario:

1. Client is running against a multi-master cluster.
2. Client successfully authenticates and gets an authn token by calling
   ConnectToCluster().
3. Client keeps the connection to leader master open, but follower
   masters close connections to the client due to inactivity.
4. After the authn token expires, a change in the master leadership
   happens.
5. Client tries to open a table, making a request to the former leader
   master. The former leader returns NOT_THE_LEADER error.

The original authn token reacquisition logic was straightforwardly
retrying RPCs in case of error responses with code
FATAL_INVALID_AUTHENTICATION_TOKEN only.  The scenario described
above was not handled properly, so the opening table operation would
fail with the following error:
   Timed out: GetTableSchema timed out after deadline expired

This patch also enables the ClientReacquiresAuthnToken scenario
of MultiMasterIdleConnectionsITest since it passes with this fix.

Change-Id: I4477d0f2bb36ee5ef580b585cae189a634d5002f
---
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/master_rpc.cc
M src/kudu/integration-tests/authn_token_expire-itest.cc
4 files changed, 57 insertions(+), 33 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/49/11449/1
--
To view, visit http://gerrit.cloudera.org:8080/11449
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4477d0f2bb36ee5ef580b585cae189a634d5002f
Gerrit-Change-Number: 11449
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <[email protected]>

Reply via email to