Hello Michael Ho, Sahil Takiar, Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/14641
to look at the new patch set (#2).
Change subject: IMPALA-8138: Reintroduce rpc debugging options
......................................................................
IMPALA-8138: Reintroduce rpc debugging options
In the past, Impala had a very simple 'fault injection' framework for
simulating failed rpcs between impalads. With the move to KRPC, that
framework was not carried over, and we lost the ability to test
certain failure scenarios.
This patch reintroduces this functionality. It removes the prior fault
injection framework in favor of the existing debug action framework,
which is more flexible.
To facilitate this, a few modifications are made to the debug action
framework:
- In addition to matching on a label, debug actions may now match on
optional arguments. In this patch, the debug action RPC_SERVICE_POOL
takes the arguments 'host', 'port', and 'rpc name' to allow
simulating the failure of specific rpcs to specific impalads.
- The FAIL action now takes an optional 'error message' parameter. In
this patch, the debug action RPC_SERVICE_POOL uses this to simulate
different types of rpc errors, eg. 'service too busy'.
- The FAIL action increments a metric, 'impala.debug_action.fail', so
that tests can check that it has actually been hit. Prior to this
patch the tests in test_rpc_exception.py where all passing
spuriously as the faults they were supposed to be testing were no
longer being injected.
This patch uses these new mechanisms to introduce tests that simulate
failures in DataStreamService rpcs. Follow up patches will add test
cases for ControlService rpcs.
Change-Id: I9c047ebce6d32c5ae461f70279391fa2df4c2029
---
M be/src/rpc/impala-service-pool.cc
M be/src/rpc/impala-service-pool.h
M be/src/rpc/rpc-mgr-kerberized-test.cc
M be/src/rpc/rpc-mgr-test.cc
M be/src/rpc/rpc-mgr-test.h
M be/src/rpc/rpc-mgr.cc
M be/src/rpc/rpc-mgr.h
M be/src/runtime/backend-client.h
M be/src/runtime/data-stream-test.cc
M be/src/runtime/exec-env.cc
M be/src/runtime/test-env.cc
M be/src/service/control-service.cc
M be/src/service/data-stream-service.cc
M be/src/service/impala-internal-service.cc
M be/src/testutil/CMakeLists.txt
D be/src/testutil/fault-injection-util.cc
D be/src/testutil/fault-injection-util.h
M be/src/util/debug-util.cc
M be/src/util/debug-util.h
M common/thrift/ImpalaService.thrift
M common/thrift/metrics.json
M tests/common/impala_cluster.py
M tests/common/impala_service.py
M tests/custom_cluster/test_rpc_exception.py
24 files changed, 204 insertions(+), 279 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/41/14641/2
--
To view, visit http://gerrit.cloudera.org:8080/14641
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9c047ebce6d32c5ae461f70279391fa2df4c2029
Gerrit-Change-Number: 14641
Gerrit-PatchSet: 2
Gerrit-Owner: Thomas Tauber-Marshall <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Michael Ho <[email protected]>
Gerrit-Reviewer: Sahil Takiar <[email protected]>