diff options
author | Josh Durgin <josh.durgin@inktank.com> | 2013-09-30 21:07:42 -0700 |
---|---|---|
committer | Josh Durgin <josh.durgin@inktank.com> | 2013-09-30 21:07:42 -0700 |
commit | 988373baafce55712e180a56e09f4efee44b9045 (patch) | |
tree | 77b38c3f159bd6473e4becd75ea1058cc4b66afe | |
parent | fac4a897f948c51e22b075b42e5cbe8a259235bc (diff) | |
parent | b032931dc760f2a9baa7879f422caf8d9281e6c4 (diff) | |
download | ceph-988373baafce55712e180a56e09f4efee44b9045.tar.gz |
Merge pull request #665 from ceph/wip-6444
Wip 6444
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-rw-r--r-- | PendingReleaseNotes | 9 | ||||
-rw-r--r-- | src/librados/RadosClient.cc | 2 | ||||
-rw-r--r-- | src/rgw/rgw_rados.cc | 2 | ||||
-rwxr-xr-x | src/vstart.sh | 4 |
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" |