From: Sage Weil Date: Fri, 31 Mar 2017 14:06:42 +0000 (-0400) Subject: ceph_test_librados_api_misc: fix stupid LibRadosMiscConnectFailure.ConnectFailure... X-Git-Tag: v12.0.2~143^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8bc197400d94ee2716d3f2fa454247379a676cf9;p=ceph.git ceph_test_librados_api_misc: fix stupid LibRadosMiscConnectFailure.ConnectFailure test Sometimes the cond doesn't time out and it wakes up instead. Just repeat the test many times to ensure that at least once it times out (usually it doesn't; it's pretty infrequent that it doesn't). Fixes: http://tracker.ceph.com/issues/15368 Signed-off-by: Sage Weil --- diff --git a/src/test/librados/misc.cc b/src/test/librados/misc.cc index 96348a1090ce..d3791dfa09d6 100644 --- a/src/test/librados/misc.cc +++ b/src/test/librados/misc.cc @@ -66,8 +66,18 @@ TEST(LibRadosMiscConnectFailure, ConnectFailure) { ASSERT_EQ(-ENOTCONN, rados_monitor_log(cluster, "error", test_rados_log_cb, NULL)); - ASSERT_NE(0, rados_connect(cluster)); - ASSERT_NE(0, rados_connect(cluster)); + // try this a few times; sometimes we don't schedule fast enough for the + // cond to time out + int r; + for (unsigned i=0; i<16; ++i) { + cout << i << std::endl; + r = rados_connect(cluster); + if (r < 0) + break; // yay, we timed out + // try again + rados_shutdown(cluster); + } + ASSERT_NE(0, r); rados_shutdown(cluster); }