diff --git a/src/rgw/rgw_amqp.cc b/src/rgw/rgw_amqp.cc index f8b826213d29d..3014edd1db09d 100644 --- a/src/rgw/rgw_amqp.cc +++ b/src/rgw/rgw_amqp.cc @@ -535,12 +535,9 @@ typedef boost::lockfree::queue(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; + auto conn = connections.emplace(tmp_id, std::make_unique(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; } - connections.emplace(tmp_id, std::move(conn)); id = std::move(tmp_id); return true; }