summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rgw/rgw_replica_log.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/rgw/rgw_replica_log.cc b/src/rgw/rgw_replica_log.cc
index 483d256377b..f80ebf88525 100644
--- a/src/rgw/rgw_replica_log.cc
+++ b/src/rgw/rgw_replica_log.cc
@@ -34,6 +34,15 @@ RGWReplicaLogger::RGWReplicaLogger(RGWRados *_store) :
int RGWReplicaLogger::open_ioctx(librados::IoCtx& ctx, const string& pool)
{
int r = store->rados->ioctx_create(pool.c_str(), ctx);
+ if (r == -ENOENT) {
+ rgw_bucket p(pool.c_str());
+ r = store->create_pool(p);
+ if (r < 0)
+ return r;
+
+ // retry
+ r = store->rados->ioctx_create(pool.c_str(), ctx);
+ }
if (r < 0) {
lderr(cct) << "ERROR: could not open rados pool " << pool << dendl;
}