X-Git-Url: https://git.proxmox.com/?p=ceph.git;a=blobdiff_plain;f=ceph%2Fsrc%2Ftest%2Fobjectstore%2FFileStoreDiff.cc;h=3bdcec8f6b697e6d2ec7f517576fe4f60b5e8b78;hp=5134522017abad421efac494097c9abd50752ae9;hb=28e407b858acd3bddc89f68583571f771bb42e46;hpb=dfcb7b53b2e4fcd2a5af0240d4975adc711ab96e diff --git a/ceph/src/test/objectstore/FileStoreDiff.cc b/ceph/src/test/objectstore/FileStoreDiff.cc index 513452201..3bdcec8f6 100644 --- a/ceph/src/test/objectstore/FileStoreDiff.cc +++ b/ceph/src/test/objectstore/FileStoreDiff.cc @@ -51,14 +51,14 @@ bool FileStoreDiff::diff_attrs(std::map& b, std::map::iterator a_it = a.begin(); for (; b_it != b.end(); ++b_it, ++a_it) { if (b_it->first != a_it->first) { - dout(0) << "diff_attrs name mismatch (verify: " << b_it->first - << ", store: " << a_it->first << ")" << dendl; + cout << "diff_attrs name mismatch (verify: " << b_it->first + << ", store: " << a_it->first << ")" << std::endl; ret = true; continue; } if (!b_it->second.cmp(a_it->second)) { - dout(0) << "diff_attrs contents mismatch on attr " << b_it->first << dendl; + cout << "diff_attrs contents mismatch on attr " << b_it->first << std::endl; ret = true; continue; } @@ -73,15 +73,21 @@ static bool diff_omap(std::map& b, std::map::iterator b_it = b.begin(); std::map::iterator a_it = a.begin(); for (; b_it != b.end(); ++b_it, ++a_it) { + if (a_it == a.end()) { + cout << __func__ << " a reached end before b, a missing " << b_it->first + << std::endl; + ret = true; + break; + } if (b_it->first != a_it->first) { - dout(0) << "diff_attrs name mismatch (verify: " << b_it->first - << ", store: " << a_it->first << ")" << dendl; + cout << "diff_attrs name mismatch (verify: " << b_it->first + << ", store: " << a_it->first << ")" << std::endl; ret = true; continue; } if (!(b_it->second == a_it->second)) { - dout(0) << "diff_attrs contents mismatch on attr " << b_it->first << dendl; + cout << "diff_attrs contents mismatch on attr " << b_it->first << std::endl; ret = true; continue; } @@ -94,32 +100,32 @@ bool FileStoreDiff::diff_objects_stat(struct stat& a, struct stat& b) bool ret = false; if (a.st_uid != b.st_uid) { - dout(0) << "diff_objects_stat uid mismatch (A: " - << a.st_uid << " != B: " << b.st_uid << ")" << dendl; + cout << "diff_objects_stat uid mismatch (A: " + << a.st_uid << " != B: " << b.st_uid << ")" << std::endl; ret = true; } if (a.st_gid != b.st_gid) { - dout(0) << "diff_objects_stat gid mismatch (A: " - << a.st_gid << " != B: " << b.st_gid << ")" << dendl; + cout << "diff_objects_stat gid mismatch (A: " + << a.st_gid << " != B: " << b.st_gid << ")" << std::endl; ret = true; } if (a.st_mode != b.st_mode) { - dout(0) << "diff_objects_stat mode mismatch (A: " - << a.st_mode << " != B: " << b.st_mode << ")" << dendl; + cout << "diff_objects_stat mode mismatch (A: " + << a.st_mode << " != B: " << b.st_mode << ")" << std::endl; ret = true; } if (a.st_nlink != b.st_nlink) { - dout(0) << "diff_objects_stat nlink mismatch (A: " - << a.st_nlink << " != B: " << b.st_nlink << ")" << dendl; + cout << "diff_objects_stat nlink mismatch (A: " + << a.st_nlink << " != B: " << b.st_nlink << ")" << std::endl; ret = true; } if (a.st_size != b.st_size) { - dout(0) << "diff_objects_stat size mismatch (A: " - << a.st_size << " != B: " << b.st_size << ")" << dendl; + cout << "diff_objects_stat size mismatch (A: " + << a.st_size << " != B: " << b.st_size << ")" << std::endl; ret = true; } return ret; @@ -127,8 +133,6 @@ bool FileStoreDiff::diff_objects_stat(struct stat& a, struct stat& b) bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t coll) { - dout(2) << __func__ << " coll " << coll << dendl; - bool ret = false; int err; @@ -136,21 +140,21 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t err = b_store->collection_list(coll, ghobject_t(), ghobject_t::get_max(), INT_MAX, &b_objects, NULL); if (err < 0) { - dout(0) << "diff_objects list on verify coll " << coll.to_str() - << " returns " << err << dendl; + cout << "diff_objects list on verify coll " << coll.to_str() + << " returns " << err << std::endl; return true; } err = a_store->collection_list(coll, ghobject_t(), ghobject_t::get_max(), INT_MAX, &a_objects, NULL); if (err < 0) { - dout(0) << "diff_objects list on store coll " << coll.to_str() - << " returns " << err << dendl; + cout << "diff_objects list on store coll " << coll.to_str() + << " returns " << err << std::endl; return true; } if (b_objects.size() != a_objects.size()) { - dout(0) << "diff_objects num objs mismatch (A: " << a_objects.size() - << ", B: " << b_objects.size() << ")" << dendl; + cout << "diff_objects num objs mismatch (A: " << a_objects.size() + << ", B: " << b_objects.size() << ")" << std::endl; ret = true; } @@ -159,9 +163,9 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t for (; b_it != b_objects.end(); ++b_it, ++a_it) { ghobject_t b_obj = *b_it, a_obj = *a_it; if (b_obj.hobj.oid.name != a_obj.hobj.oid.name) { - dout(0) << "diff_objects name mismatch on A object " + cout << "diff_objects name mismatch on A object " << coll << "/" << a_obj << " and B object " - << coll << "/" << b_obj << dendl; + << coll << "/" << b_obj << std::endl; ret = true; continue; } @@ -169,20 +173,20 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t struct stat b_stat, a_stat; err = b_store->stat(coll, b_obj, &b_stat); if (err < 0) { - dout(0) << "diff_objects error stating B object " - << coll.to_str() << "/" << b_obj.hobj.oid.name << dendl; + cout << "diff_objects error stating B object " + << coll.to_str() << "/" << b_obj.hobj.oid.name << std::endl; ret = true; } err = a_store->stat(coll, a_obj, &a_stat); if (err < 0) { - dout(0) << "diff_objects error stating A object " - << coll << "/" << a_obj << dendl; + cout << "diff_objects error stating A object " + << coll << "/" << a_obj << std::endl; ret = true; } if (diff_objects_stat(a_stat, b_stat)) { - dout(0) << "diff_objects stat mismatch on " - << coll << "/" << b_obj << dendl; + cout << "diff_objects stat mismatch on " + << coll << "/" << b_obj << std::endl; ret = true; } @@ -191,29 +195,29 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t a_store->read(coll, a_obj, 0, a_stat.st_size, a_obj_bl); if (!a_obj_bl.contents_equal(b_obj_bl)) { - dout(0) << "diff_objects content mismatch on " - << coll << "/" << b_obj << dendl; + cout << "diff_objects content mismatch on " + << coll << "/" << b_obj << std::endl; ret = true; } std::map a_obj_attrs_map, b_obj_attrs_map; err = a_store->getattrs(coll, a_obj, a_obj_attrs_map); if (err < 0) { - dout(0) << "diff_objects getattrs on A object " << coll << "/" << a_obj - << " returns " << err << dendl; + cout << "diff_objects getattrs on A object " << coll << "/" << a_obj + << " returns " << err << std::endl; ret = true; } err = b_store->getattrs(coll, b_obj, b_obj_attrs_map); if (err < 0) { - dout(0) << "diff_objects getattrs on B object " << coll << "/" << b_obj - << "returns " << err << dendl; + cout << "diff_objects getattrs on B object " << coll << "/" << b_obj + << "returns " << err << std::endl; ret = true; } if (diff_attrs(b_obj_attrs_map, a_obj_attrs_map)) { - dout(0) << "diff_objects attrs mismatch on A object " + cout << "diff_objects attrs mismatch on A object " << coll << "/" << a_obj << " and B object " - << coll << "/" << b_obj << dendl; + << coll << "/" << b_obj << std::endl; ret = true; } @@ -221,32 +225,34 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t std::set a_omap_keys, b_omap_keys; err = a_store->omap_get_keys(coll, a_obj, &a_omap_keys); if (err < 0) { - dout(0) << "diff_objects getomap on A object " << coll << "/" << a_obj - << " returns " << err << dendl; + cout << "diff_objects getomap on A object " << coll << "/" << a_obj + << " returns " << err << std::endl; ret = true; } err = a_store->omap_get_values(coll, a_obj, a_omap_keys, &a_obj_omap); if (err < 0) { - dout(0) << "diff_objects getomap on A object " << coll << "/" << a_obj - << " returns " << err << dendl; + cout << "diff_objects getomap on A object " << coll << "/" << a_obj + << " returns " << err << std::endl; ret = true; } err = b_store->omap_get_keys(coll, b_obj, &b_omap_keys); if (err < 0) { - dout(0) << "diff_objects getomap on A object " << coll << "/" << b_obj - << " returns " << err << dendl; + cout << "diff_objects getomap on A object " << coll << "/" << b_obj + << " returns " << err << std::endl; ret = true; } err = b_store->omap_get_values(coll, b_obj, b_omap_keys, &b_obj_omap); if (err < 0) { - dout(0) << "diff_objects getomap on A object " << coll << "/" << b_obj - << " returns " << err << dendl; + cout << "diff_objects getomap on A object " << coll << "/" << b_obj + << " returns " << err << std::endl; ret = true; } if (diff_omap(a_obj_omap, b_obj_omap)) { - dout(0) << "diff_objects omap mismatch on A object " + cout << "diff_objects omap mismatch on A object " << coll << "/" << a_obj << " and B object " - << coll << "/" << b_obj << dendl; + << coll << "/" << b_obj << std::endl; + cout << "a: " << a_obj_omap << std::endl; + cout << "b: " << b_obj_omap << std::endl; ret = true; } } @@ -266,7 +272,7 @@ bool FileStoreDiff::diff() for (; it != b_coll_list.end(); ++it) { coll_t b_coll = *it; if (!a_store->collection_exists(b_coll)) { - dout(0) << "diff B coll " << b_coll.to_str() << " DNE on A" << dendl; + cout << "diff B coll " << b_coll.to_str() << " DNE on A" << std::endl; ret = true; continue; } @@ -283,7 +289,7 @@ bool FileStoreDiff::diff() } for (std::vector::iterator it = a_coll_list.begin(); it != a_coll_list.end(); ++it) { - dout(0) << "diff A coll " << *it << " DNE on B" << dendl; + cout << "diff A coll " << *it << " DNE on B" << std::endl; ret = true; }