Skip to content

Commit

Permalink
osd/PG: fix cleanup of pgmeta-like objects on PG deletion
Browse files Browse the repository at this point in the history
If an object has an empty 'name' field, it "looks" like a pgmeta object,
and the PG cleanup code was skipping it.  However, we were letting these
objects get created.

Fix by only skipping *our* pgmeta object.  If there are other pgmeta-like
objects in the PG collection, clean them up.

Fixes: https://tracker.ceph.com/issues/38724
Signed-off-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed May 6, 2019
1 parent 6ad73b2 commit a0f48db
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/osd/PG.cc
Expand Up @@ -3806,9 +3806,13 @@ void PG::do_delete_work(ObjectStore::Transaction *t)
OSDriver::OSTransaction _t(osdriver.get_transaction(t));
int64_t num = 0;
for (auto& oid : olist) {
if (oid.is_pgmeta()) {
if (oid == pgmeta_oid) {
continue;
}
if (oid.is_pgmeta()) {
osd->clog->warn() << info.pgid << " found stray pgmeta-like " << oid
<< " during PG removal";
}
int r = snap_mapper.remove_oid(oid.hobj, &_t);
if (r != 0 && r != -ENOENT) {
ceph_abort();
Expand Down

0 comments on commit a0f48db

Please sign in to comment.