summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Durgin <josh.durgin@inktank.com>2013-09-30 21:07:42 -0700
committerJosh Durgin <josh.durgin@inktank.com>2013-09-30 21:07:42 -0700
commit988373baafce55712e180a56e09f4efee44b9045 (patch)
tree77b38c3f159bd6473e4becd75ea1058cc4b66afe
parentfac4a897f948c51e22b075b42e5cbe8a259235bc (diff)
parentb032931dc760f2a9baa7879f422caf8d9281e6c4 (diff)
downloadceph-988373baafce55712e180a56e09f4efee44b9045.tar.gz
Merge pull request #665 from ceph/wip-6444
Wip 6444 Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-rw-r--r--PendingReleaseNotes9
-rw-r--r--src/librados/RadosClient.cc2
-rw-r--r--src/rgw/rgw_rados.cc2
-rwxr-xr-xsrc/vstart.sh4
4 files changed, 11 insertions, 6 deletions
diff --git a/PendingReleaseNotes b/PendingReleaseNotes
index 6609acbd5a8..edf459c992f 100644
--- a/PendingReleaseNotes
+++ b/PendingReleaseNotes
@@ -1,3 +1,10 @@
+v0.70
+~~~~~
+* librados::Rados::pool_create_async() and librados::Rados::pool_delete_async()
+ don't drop a reference to the completion object on error, caller needs to take
+ care of that. This has never really worked correctly and we were leaking an
+ object
+
v0.68
~~~~~
@@ -25,4 +32,4 @@ v0.68
full-width value. The old method is deprecated and will be removed
in a future release. Users of the C++ librados API that make use of
the get_version() method should modify their code to avoid getting a
- value that is truncated from 64 to to 32 bits. \ No newline at end of file
+ value that is truncated from 64 to to 32 bits.
diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc
index 8a5f499ec15..1be3ebd10f9 100644
--- a/src/librados/RadosClient.cc
+++ b/src/librados/RadosClient.cc
@@ -459,7 +459,6 @@ int librados::RadosClient::pool_create_async(string& name, PoolAsyncCompletionIm
Context *onfinish = new C_PoolAsync_Safe(c);
int r = objecter->create_pool(name, onfinish, auid, crush_rule);
if (r < 0) {
- delete c;
delete onfinish;
}
return r;
@@ -505,7 +504,6 @@ int librados::RadosClient::pool_delete_async(const char *name, PoolAsyncCompleti
Context *onfinish = new C_PoolAsync_Safe(c);
int r = objecter->delete_pool(tmp_pool_id, onfinish);
if (r < 0) {
- delete c;
delete onfinish;
}
return r;
diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc
index 1b97f28e2fa..cf679c50313 100644
--- a/src/rgw/rgw_rados.cc
+++ b/src/rgw/rgw_rados.cc
@@ -2182,8 +2182,8 @@ int RGWRados::create_pools(vector<string>& names, vector<int>& retcodes)
if (r < 0) {
ldout(cct, 0) << "WARNING: async pool_create returned " << r << dendl;
}
- c->release();
}
+ c->release();
retcodes.push_back(r);
}
return 0;
diff --git a/src/vstart.sh b/src/vstart.sh
index c112bfc9138..7cd553f23ca 100755
--- a/src/vstart.sh
+++ b/src/vstart.sh
@@ -249,11 +249,11 @@ if [ -n "$ip" ]; then
IP="$ip"
else
echo hostname $HOSTNAME
- RAW_IP=`hostname --ip-address`
+ RAW_IP=`hostname -I`
# filter out IPv6 and localhost addresses
IP="$(echo "$RAW_IP"|tr ' ' '\012'|grep -v :|grep -v '^127\.'|head -n1)"
# if that left nothing, then try to use the raw thing, it might work
- if [ -z "IP" ]; then IP="$RAW_IP"; fi
+ if [ -z "$IP" ]; then IP="$RAW_IP"; fi
echo ip $IP
fi
echo "ip $IP"