Alexey Serbin created KUDU-1698:
Summary: Kudu C++ client: add a new unit test to make sure
default_rpc_timeout and session timeout are separate entities
Issue Type: Task
Reporter: Alexey Serbin
Assignee: Alexey Serbin
We need a new unit test that makes sure there is a difference between top-level
operation timeout and per-call RPC timeout in Kudu C++ client library. Prior
to change introduced in 5195ce573850653e0e53094cdd35a1da93d33444 it was the
same (which was a bug).
The test should:
* set per-call RPC timeout when creating KuduClient object
* set KuduSession::SetTimeoutMillis() for the target session: the value should
be 2 times of per-call RPC timeout or such.
* create a tablet with replication factor of 2 at least.
* find current tablet replica leader and pause it (send SIGSTOP)
* make a write into the table
* make sure the write operation was successful
Prior to change introduced in 5195ce573850653e0e53094cdd35a1da93d33444 such a
test would fail because the C++ client used the full operation deadline on
every RPC call.
I.e., it would wait till the call to current leader times out, and that would
consume time budget of the whole operation. Once RPC timeout is less thatn the
timeout for the whole write operation, the call to the frozen tablet server
should timeout, and the client should re-discover a new tablet replicate leader
and complete the write operation successfully.
This message was sent by Atlassian JIRA