]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/librados/cmd.cc: tolerate thrashing on pg_command tests 542/head
authorSage Weil <sage@inktank.com>
Mon, 26 Aug 2013 19:52:44 +0000 (12:52 -0700)
committerSage Weil <sage@inktank.com>
Mon, 26 Aug 2013 19:52:44 +0000 (12:52 -0700)
We may get ENXIO (osd down) or ENOENT (pg dne (yet) on the target osd) if
there is thrashing going on.

Fixes: #6122
Signed-off-by: Sage Weil <sage@inktank.com>
src/test/librados/cmd.cc

index 71343f2b90872d52619e1b3d6c89b07db8a4622c..a822f558e0589d7cf21b70669c8645752bf59ea5 100644 (file)
@@ -100,8 +100,9 @@ TEST(LibRadosCmd, PGCmd) {
   string pgid = stringify(poolid) + ".0";
 
   cmd[0] = (char *)"asdfasdf";
-  ASSERT_EQ(-22, rados_pg_command(cluster, pgid.c_str(), (const char **)cmd, 1, "", 0, &buf, &buflen, &st, &stlen));
-
+  // note: tolerate NXIO here in case the cluster is thrashing out underneath us.
+  r = rados_pg_command(cluster, pgid.c_str(), (const char **)cmd, 1, "", 0, &buf, &buflen, &st, &stlen);
+  ASSERT_TRUE(r == -22 || r == -ENXIO);
 
   // make sure the pg exists on the osd before we query it
   rados_ioctx_t io;
@@ -114,7 +115,9 @@ TEST(LibRadosCmd, PGCmd) {
 
   string qstr = "{\"prefix\":\"pg\", \"cmd\":\"query\", \"pgid\":\"" +  pgid + "\"}";
   cmd[0] = (char *)qstr.c_str();
-  ASSERT_EQ(0, rados_pg_command(cluster, pgid.c_str(), (const char **)cmd, 1, "", 0,  &buf, &buflen, &st, &stlen));
+  // note: tolerate ENOENT/ENXIO here if hte osd is thrashing out underneath us
+  r = rados_pg_command(cluster, pgid.c_str(), (const char **)cmd, 1, "", 0,  &buf, &buflen, &st, &stlen);
+  ASSERT_TRUE(r == 0 || r == -ENOENT || r == -ENXIO);
 
   ASSERT_LT(0u, buflen);
   rados_buffer_free(buf);