ioctx.snap_set_read(my_snaps[0]);
+ // stop and scrub this pg (to make sure scrub can handle missing
+ // clones in the cache tier)
+ {
+ IoCtx cache_ioctx;
+ ASSERT_EQ(0, cluster.ioctx_create(cache_pool_name.c_str(), cache_ioctx));
+ ostringstream ss;
+ ss << "{\"prefix\": \"pg scrub\", \"pgid\": \""
+ << cache_ioctx.get_id() << "."
+ << ioctx.get_object_pg_hash_position("foo")
+ << "\"}";
+ ASSERT_EQ(0, cluster.mon_command(ss.str(), inbl, NULL, NULL));
+
+ // give it a few seconds to go. this is sloppy but is usually enough time
+ cout << "waiting for scrub..." << std::endl;
+ sleep(15);
+ cout << "done waiting" << std::endl;
+ }
+
// read foo snap
{
bufferlist bl;