t.remove(coll_ref->get_cid(), pgid.make_snapmapper_oid());
t.remove(coll_ref->get_cid(), pgmeta_oid);
t.remove_collection(coll_ref->get_cid());
- (void) shard_services.get_store().do_transaction(
- coll_ref, t.claim_and_reset()).then([this] {
- return shard_services.remove_pg(pgid);
- });
- return {next, false};
+ //(void) shard_services.get_store().do_transaction(
+ // coll_ref, t.claim_and_reset()).then([this] {
+ // return shard_services.remove_pg(pgid);
+ //});
+ auto chain_fut = shard_services.get_store().do_transaction(
+ coll_ref, t.claim_and_reset())
+ .then([this] {
+ return shard_services.remove_pg(pgid);
+ }).then([next] {
+ return std::make_pair(next, false);
+ });
+ auto interuptible_chain = interruptor::make_interruptible(std::move(chain_fut));
+ return interuptible_chain.get();
+ //return {next, false};
} else {
for (auto &obj : objs_to_rm) {
if (obj == pgmeta_oid || obj.is_internal_pg_local()) {
DEBUG("pg {} mapping erased (primary)", pgid);
return primary_mapping.container().invoke_on_others(
[pgid, FNAME](auto &other_mapping) {
+ DEBUG("pg {} trying to erased mapping (on others)", pgid);
auto find_iter = other_mapping.pg_to_core.find(pgid);
if (find_iter == other_mapping.pg_to_core.end()) {
ERROR("trying to remove non-exist mapping for pg {} (others)", pgid);