Joe McDonnell has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/20065 )
Change subject: IMPALA-12208: Avoid registering RPCs with ClientRequestState after Finalization ...................................................................... IMPALA-12208: Avoid registering RPCs with ClientRequestState after Finalization This patch fixes a timing hole where concurrent RPCs could register with ClientRequestState after Finalize() had already been called, resulting in DCHECK(pending_rpcs_.empty()) failure in debug builds since the RPCs were not unregistered before the ClientRequestState was destroyed. This DCHECK ensures that timing info for registered RPCs is reaped wherever possible. Prod builds did not exhibit any negative symptoms. Testing: -Ran tests/hs2/test_hs2.py::TestHS2::test_concurrent_unregister in a loop for several minutes. Previously this would fail within seconds. Change-Id: I66415e5695c2ed65518efee2d9dbaaec224910e9 Reviewed-on: http://gerrit.cloudera.org:8080/20065 Reviewed-by: Joe McDonnell <[email protected]> Reviewed-by: Csaba Ringhofer <[email protected]> Tested-by: Impala Public Jenkins <[email protected]> --- M be/src/service/client-request-state.cc M be/src/service/client-request-state.h 2 files changed, 9 insertions(+), 3 deletions(-) Approvals: Joe McDonnell: Looks good to me, approved Csaba Ringhofer: Looks good to me, approved Impala Public Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/20065 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I66415e5695c2ed65518efee2d9dbaaec224910e9 Gerrit-Change-Number: 20065 Gerrit-PatchSet: 3 Gerrit-Owner: Kurt Deschler <[email protected]> Gerrit-Reviewer: Csaba Ringhofer <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Joe McDonnell <[email protected]> Gerrit-Reviewer: Kurt Deschler <[email protected]>
