]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_test_librados_api_misc: fix stupid LibRadosMiscConnectFailure.ConnectFailure...
authorSage Weil <sage@redhat.com>
Fri, 31 Mar 2017 14:06:42 +0000 (10:06 -0400)
committerSage Weil <sage@redhat.com>
Fri, 31 Mar 2017 14:06:42 +0000 (10:06 -0400)
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 <sage@redhat.com>
src/test/librados/misc.cc

index 96348a1090ceb8b3b64a8090fd0edb546d381631..d3791dfa09d6d0346033816f07c0cbe222a8e564 100644 (file)
@@ -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);
 }