diff --git a/src/broker/Manager.cc b/src/broker/Manager.cc index dff6055e32..7b9d2af591 100644 --- a/src/broker/Manager.cc +++ b/src/broker/Manager.cc @@ -2094,13 +2094,15 @@ detail::StoreHandleVal* Manager::MakeClone(const string& name, double resync_int } auto handle = new detail::StoreHandleVal{*result}; - Ref(handle); if ( ! handle->proxy.valid() ) { reporter->Error("Failed to create clone for data store %s", name.c_str()); + delete handle; return nullptr; } + Ref(handle); + data_stores.emplace(name, handle); if ( ! iosource_mgr->RegisterFd(handle->proxy.mailbox().descriptor(), this) ) reporter->FatalError("Failed to register broker clone mailbox descriptor with iosource_mgr");