Hello Alexey Serbin, Andrew Wong, Todd Lipcon,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/11819

to look at the new patch set (#5).

Change subject: rpc-test: fix TestClientConnectionMetrics
......................................................................

rpc-test: fix TestClientConnectionMetrics

Every now and then, this test would fail with:

  rpc-test.cc:542: Failure
  Expected: (dump_resp.outbound_connections(0).outbound_queue_size()) > (0), 
actual: 0 vs 0

Unfortunately, the test would go on to crash (and trigger a TSAN warning)
due to the lack of proper cleanup in the event of an ASSERT failure. I've
fixed that in this patch.

I also tried to address the root of the test flakiness (that the outbound
transfer queue contains at least one element), but I couldn't find a good
way to do it. Blocking the server reactor thread has no effect on
client-side queuing. And we can't block the client reactor thread outright
because DumpRunningRpcs runs on it. Some of this is touched on in the
original code review[1] that committed the test.

Having given up, I wrapped the whole thing in an ASSERT_EVENTUALLY. It's
ham-fisted for sure, but it seems to work: without it, the test fails every
100-200 runs on my laptop, and with it I can't get it to fail at all. I also
looped it 1000 times in TSAN mode with 8 stress threads and didn't see any
failures. I don't understand the krpc subsystem very well, so if there's a
better way, I'm all ears.

1. https://gerrit.cloudera.org/c/9343/

Change-Id: I9c565b80bdca435d18787c7df0ec992728363980
---
M src/kudu/rpc/rpc-test.cc
1 file changed, 45 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/11819/5
--
To view, visit http://gerrit.cloudera.org:8080/11819
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9c565b80bdca435d18787c7df0ec992728363980
Gerrit-Change-Number: 11819
Gerrit-PatchSet: 5
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to