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]>
