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: v10.2.8~56^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F14763%2Fhead;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 (cherry picked from commit 8bc197400d94ee2716d3f2fa454247379a676cf9) --- diff --git a/src/test/librados/misc.cc b/src/test/librados/misc.cc index 3212e03ee3c3..0caaef957a8e 100644 --- a/src/test/librados/misc.cc +++ b/src/test/librados/misc.cc @@ -67,8 +67,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); }