ceph_test_rados_api_tier: fix cleanup of whiteouts
Doing a normal DELETE on a whiteout returns ENOENT. Use the IGNORE_CACHE
flag to make sure it removes the whiteout, too.
for it of type ObjectIterator:
- use it->first instead of it->get_oid()
- use it->second instead of it->get_locator()
#3 Updated by Sage Weil over 4 years ago
- Status changed from New to In Progress
- Source changed from other to Q/A
// read baz
ASSERT_EQ(-ENOENT, ioctx.read("baz", bl, 1, 0));
I think this usually doesn't trigger a whiteout, but if there is any failure injection is may. And when it does, the test cleanup code enumerates objects and then does remove()... which fails with ENOENT on a whiteout. Strange that we haven't seen this before. :/
Fix is to make the test cleanup code use a stronger remove() function that also zaps whiteouts. I'll use the IGNORE_CACHE for this ...