diff --git a/src/rgw/rgw_amqp.cc b/src/rgw/rgw_amqp.cc index 3014edd1db09d..f8b826213d29d 100644 --- a/src/rgw/rgw_amqp.cc +++ b/src/rgw/rgw_amqp.cc @@ -535,9 +535,12 @@ typedef boost::lockfree::queue(cct, info, verify_ssl, ca_location)).first->second.get(); - ldout(cct, 10) << "AMQP connect: new connection is created. Total connections: " << connection_count << dendl; - if (!new_state(conn, tmp_id)) { - ldout(cct, 1) << "AMQP connect: new connection '" << to_string(tmp_id) << "' is created. but state creation failed (will retry). error: " << - status_to_string(conn->status) << " (" << conn->reply_code << ")" << dendl; + auto conn = std::make_unique(cct, info, verify_ssl, ca_location); + if (new_state(conn.get(), tmp_id)) { + ldout(cct, 10) << "AMQP connect: new connection is created. Total connections: " << connection_count << dendl; + } else { + ldout(cct, 1) << "AMQP connect: new connection '" << to_string(tmp_id) << "' is created. but state creation failed (will retry). error: " << + status_to_string(conn->status) << " (" << conn->reply_code << ")" << dendl; } + connections.emplace(tmp_id, std::move(conn)); id = std::move(tmp_id); return true; }