Impala Public Jenkins has submitted this change and it was merged. Change subject: KUDU-2041: Fix negotiation deadlock ......................................................................
KUDU-2041: Fix negotiation deadlock With N threads in the negotiation threadpool, N or more concurrent client negotiation attempts could starve any incoming server negotiation tasks which used the same threadpool. If the set of negotiation attempts forms a graph with a N cycles, the negotiation could deadlock (at least until the negotiation timeout expires) as all nodes in the system wait for a server request to complete, but all nodes have dedicated all their resources to client requests. Fix: split the server and client tasks into two separate pools. Testing: add a unit test which reproduces the issue, and passes with the fix applied. Change-Id: I38379eeaf7516d432708c2a2a285839f96c86d4f Reviewed-on: http://gerrit.cloudera.org:8080/7177 Reviewed-by: Todd Lipcon <[email protected]> Tested-by: Kudu Jenkins Reviewed-on: http://gerrit.cloudera.org:8080/7742 Reviewed-by: Henry Robinson <[email protected]> Tested-by: Impala Public Jenkins --- M be/src/kudu/rpc/messenger.cc M be/src/kudu/rpc/messenger.h M be/src/kudu/rpc/reactor.cc M be/src/kudu/rpc/rpc-test-base.h M be/src/kudu/rpc/rpc-test.cc 5 files changed, 65 insertions(+), 10 deletions(-) Approvals: Impala Public Jenkins: Verified Henry Robinson: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/7742 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I38379eeaf7516d432708c2a2a285839f96c86d4f Gerrit-PatchSet: 3 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Michael Ho <[email protected]> Gerrit-Reviewer: Henry Robinson <[email protected]> Gerrit-Reviewer: Impala Public Jenkins Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Michael Ho <[email protected]> Gerrit-Reviewer: Sailesh Mukil <[email protected]> Gerrit-Reviewer: Todd Lipcon <[email protected]>
