Alexey Serbin has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/15032 )

Change subject: KUDU-3042: Fix invalid DCHECK when rpc is cancelled then times 
out
......................................................................

KUDU-3042: Fix invalid DCHECK when rpc is cancelled then times out

The timeout handling code in Connection::HandleOutboundCallTimeout
assumes that when a timeout is triggered the OutboundCall must still
be valid. In the case of an asynchronous rpc that was cancelled before
the timeout was hit, this will not be the case.

The fix is to check if the OutboundCall is still valid and return
without processing the timeout if it is not.

Testing:
- Added timeout tests to TestCancellation to inject timeouts at
  OutboundCall states from READY to SENT.
- Tested in Impala in the context of implementing IMPALA-8712.

Change-Id: I5b97ccc4787809fca8fbc991bb1151940477efca
Reviewed-on: http://gerrit.cloudera.org:8080/15032
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <aser...@cloudera.com>
---
M src/kudu/rpc/connection.cc
M src/kudu/rpc/rpc-test-base.h
M src/kudu/rpc/rpc-test.cc
3 files changed, 22 insertions(+), 9 deletions(-)

Approvals:
  Kudu Jenkins: Verified
  Alexey Serbin: Looks good to me, approved

--
To view, visit http://gerrit.cloudera.org:8080/15032
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I5b97ccc4787809fca8fbc991bb1151940477efca
Gerrit-Change-Number: 15032
Gerrit-PatchSet: 4
Gerrit-Owner: Thomas Tauber-Marshall <tmarsh...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Thomas Tauber-Marshall <tmarsh...@cloudera.com>
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to