summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rgw: destroy get_obj handle in copy_obj()wip-6176Yehuda Sadeh2013-09-162-7/+23
| | | | | | | | | | | | | | | Fixes: #6176 Backport: dumpling We take different code paths in copy_obj, make sure we close the handle when we exit the function. Move the call to finish_get_obj() out of copy_obj_data() as we don't create the handle there, so that should makes code less confusing and less prone to errors. Also, note that RGWRados::get_obj() also calls finish_get_obj(). For everything to work in concert we need to pass a pointer to the handle and not the handle itself. Therefore we needed to also change the call to copy_obj_data(). Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* Merge pull request #559 from ceph/wip-osd-rollbackSage Weil2013-08-292-19/+29
|\ | | | | | | | | fixes a few osd dout bugs; make rados model behave with rollback Reviewed-by: Samuel Just <sam.just@inktank.com>
| * ceph_test_rados: rollback bumps user_versionSage Weil2013-08-291-11/+29
| | | | | | | | | | | | | | | | | | Sigh. This doesn't make much intuitive sense to me, but this is how it currently works. Switch to using the async api while we are at it. Signed-off-by: Sage Weil <sage@inktank.com>
| * osd/ReplicatedPG: drop dout from object_context_destructor_callbackSage Weil2013-08-291-3/+0
| | | | | | | | | | | | We don't hold the pg lock; cannot call dout here. Signed-off-by: Sage Weil <sage@inktank.com>
| * osd/ReplicatedPG: remove debug lines from snapset_context get/putSage Weil2013-08-291-5/+0
| | | | | | | | | | | | | | | | The dout() prefix does get_osdmap(), which requires (and asserts) that we hold the pg lock, but in some cases we do not, notably ReplicatedPG::object_context_destructor_callback. Signed-off-by: Sage Weil <sage@inktank.com>
* | PGLog: initialize writeout_from in PGLog constructorSamuel Just2013-08-291-0/+1
|/ | | | | | | | Fixes: 6151 Backport: dumpling Signed-off-by: Samuel Just <sam.just@inktank.com> Introduced: f808c205c503f7d32518c91619f249466f84c4cf Reviewed-by: Sage Weil <sage@inktank.com>
* Merge pull request #556 from ceph/wip-user-versionSage Weil2013-08-297-13/+60
|\ | | | | | | | | | | make ceph_test_rados / RadosModel validate the versions exposed by librados Reviewed-by: Greg Farnum <greg@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
| * ceph_test_rados: validate user_versionSage Weil2013-08-282-2/+30
| | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * osd/ReplicatedPG: set version, user_version correctly on readsSage Weil2013-08-281-8/+11
| | | | | | | | | | | | | | | | | | Set the user version to the *current* object version, not the version we would use if we were to modify it. We move the assignments inside the reply (read or error) block to make it more obvious which paths are possible. Signed-off-by: Sage Weil <sage@inktank.com>
| * messages/MOSDOpReply: fix user_version in reply (add missing braces)Sage Weil2013-08-281-1/+2
| | | | | | | | | | | | | | Presumbly a mismerge somewhere back around de20997445803dca4225ed0dac1bad6a8a1e6512. Signed-off-by: Sage Weil <sage@inktank.com>
| * librados: add get_version64()Sage Weil2013-08-283-2/+17
| | | | | | | | | | | | | | | | | | | | The C++ AioCompletion::get_version() method only returns 32-bits. Sigh. Add a get_version64() method that returns all 64-bits. Do not touch the 32-bit version to avoid breaking the ABI. Backport: dumpling, cuttlefish Signed-off-by: Sage Weil <sage@inktank.com>
* | Merge pull request #361 from atwardowski/patch-1Yehuda Sadeh2013-08-281-0/+39
|\ \ | |/ |/| | | | | Update adminops.rst add capabilities Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
| * Update adminops.rst add capabilitiesatwardowski2013-06-131-0/+39
| | | | | | | | | | Added the necessary user capabilities required for each API call. Signed-off-by: Adam Twardowski adam.twardowski@gmail.com
* | Merge pull request #550 from ceph/wip-6040athanatos2013-08-282-28/+61
|\ \ | | | | | | | | | | | | | | | Wip 6040 Reviewed-by: Sage Weil <sage@inktank.com> Reviewed-by: Loic Dachary <loic@dachary.com>
| * | PGLog: maintain writeout_from and trimmedSamuel Just2013-08-282-16/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | This way, we can avoid omap_rmkeyrange in the common append and trim cases. Fixes: #6040 Backport: Dumpling Signed-off-by: Samuel Just <sam.just@inktank.com>
| * | PGLog: don't maintain log_keys_debug if the config is disabledSamuel Just2013-08-272-11/+14
| | | | | | | | | | | | | | | | | | Fixes: #6040 Backport: Dumpling Signed-off-by: Samuel Just <sam.just@inktank.com>
| * | PGLog: move the log size check after the early returnSamuel Just2013-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There really are stl implementations (like the one on my ubuntu 12.04 machine) which have a list::size() which is linear in the size of the list. That assert, therefore, is quite expensive! Fixes: #6040 Backport: Dumpling Signed-off-by: Samuel Just <sam.just@inktank.com>
* | | doc/release-notes: v0.56.6 and .7 bobtailSage Weil2013-08-283-0/+541
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | | Merge pull request #539 from dachary/masterSage Weil2013-08-282-101/+184
|\ \ \ | | | | | | | | doc : erasure code developer notes updates
| * | | doc : erasure code developer notes updatesLoic Dachary2013-08-272-101/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * unify conventions to match those used by jerasure ( data chunk = K, coding chunk = M, use coding instead of parity, use erasures instead of erased ) * make lines 80 characters long * modify the descriptions to take into account that the chunk rank will encoded in the pool name and not on a per object basis * remove the doxygen link to ErasureCodeInterface because it fails doc: asphyxiate does not support class http://tracker.ceph.com/issues/6115 * only systematic codes are considered at this point ( all jerasure techniques are systematic). Although the API could be extended to include non systematic codes, it is probably a case of over engineering at this point. * add link to http://tracker.ceph.com/issues/6113 add ceph osd pool create [name] [key=value] * update the plugin system description to match the proposed implementation http://tracker.ceph.com/issues/5877 http://tracker.ceph.com/issues/4929 refs #4929 Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com> Signed-off-by: Loic Dachary <loic@dachary.org>
* | | | Merge pull request #552 from ceph/wip-4924-masterJoão Eduardo Luís2013-08-281-1/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | mon: discover mon addrs, names during election state too Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * | | | mon: discover mon addrs, names during election state tooSage Weil2013-08-281-1/+14
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only detect new mon addrs and names during the probing phase. For non-trivial clusters, this means we can get into a sticky spot when we discover enough peers to form an quorum, but not all of them, and the undiscovered ones are enough to break the mon ranks and prevent an election. One way to work around this is to continue addr and name discovery during the election. We should also consider making the ranks less sensitive to the undefined addrs; that is a separate change. Fixes: #4924 Backport: dumpling Signed-off-by: Sage Weil <sage@inktank.com> Tested-by: Bernhard Glomm <bernhard.glomm@ecologic.eu>
* | | | Merge pull request #549 from ceph/wip-6029Gregory Farnum2013-08-2819-174/+280
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Make user_version a first-class citizen Reviewed-by: Sage Weil <sage@inktank.com> Reviewed-by: Sam Just <sam.just@inktank.com>
| * | | Merge remote-tracking branch 'origin/master' into wip-6029Greg Farnum2013-08-27100-681/+2317
| |\ \ \ | |/ / / |/| | | | | | | | | | | Conflicts: src/librados/AioCompletionImpl.h
* | | | Merge pull request #545 from dachary/wip-6117athanatos2013-08-272-12/+35
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | SharedPtrRegistry: get_next must not delete while holding the lock Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | | | SharedPtrRegistry: get_next must not delete while holding the lockLoic Dachary2013-08-272-9/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bool get_next(const K &key, pair<K, VPtr> *next) may indirectly delete the object pointed by next->second when doing : *next = make_pair(i->first, next_val); and it will deadlock (EDEADLK) when void operator()(V *to_remove) { { Mutex::Locker l(parent->lock); tries to acquire the lock because it is already held. The Mutex::Locker is isolated in a block and the *next* parameter is set outside of the block. A test case demonstrating the problem is added to test_sharedptr_registry.cc http://tracker.ceph.com/issues/6117 fixes #6117 Signed-off-by: Loic Dachary <loic@dachary.org>
| * | | | common: move SharedPtrRegistry test after t.joinLoic Dachary2013-08-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The thread created to test SharedPtrRegistry race conditions updates a value ( ptr ) that is tested by the main gtest thread but is not protected by a lock. Instead of adding a lock, the main thread tests the value after pthread_join() on the child thread. http://tracker.ceph.com/issues/6130 fixes #6130 Signed-off-by: Loic Dachary <loic@dachary.org>
* | | | | doc: Updated to accurately reflect that upstart applies to a single node.John Wilkins2013-08-271-12/+19
| | | | | | | | | | | | | | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | | | | ceph.spec.in: radosgw package doesn't require mod_fcgiGary Lowell2013-08-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #5702 Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
* | | | | librbd: fix debug print in aio_writeSage Weil2013-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Reported-by: James Harper <james.harper@bendigoit.com.au> Signed-off-by: Sage Weil <sage@inktank.com>
* | | | | cleanup: removed last references to g_conf from authRoald J. van Loon2013-08-271-3/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Trivial cleanup. There were still 3 references to g_conf in CephxKeyServer. Replaced them in favor of cct->_conf. Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
* | | | Merge remote-tracking branch 'gh/next'Sage Weil2013-08-263-34/+41
|\ \ \ \
| * | | | osd: install admin socket commands after signalsSage Weil2013-08-263-34/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets us tell by the presence of the admin socket commands whether a signal will make us shut down cleanly. See #5924. Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
* | | | | mon/DataHealthService: preserve compat of data stats dumpSage Weil2013-08-261-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See 96621bdb004e539a0186fb592f44d51cf49f1c31. Signed-off-by: Sage Weil <sage@inktank.com>
* | | | | Merge pull request #526 from ceph/wip-5909Sage Weil2013-08-269-12/+207
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | mon: Early warning system for monitor stores growing over predefined threshold Reviewed-by: Sage Weil <sage@inktank.com>
| * | | | | mon: DataHealthService: monitor backing store's size and report itJoao Eduardo Luis2013-08-244-3/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the store's size grows beyond what we believe to be reasonable, we must let the user know that something fishy may be going on. This intends to act as an early warning system for monitors suffering from leveldb compaction issues. However, if the monitor's store is just growing a lot due to normal cluster behaviour, we made sure that the warning threshold is adjustable by tuning 'mon_leveldb_size_warn' (defaulting to 40GB). Fixes: #5909 Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | | | | mon: mon_types: DataStats: add 'dump(Formatter*)' methodJoao Eduardo Luis2013-08-242-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and use it on DataHealthService.cc, instead of building our own version of the classes' formatted output. Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | | | | mon: MonitorDBStore: rely on backing store to provide estimated store sizeJoao Eduardo Luis2013-08-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | | | | test: ceph_test_store_tool: output estimated store size on 'get-size'Joao Eduardo Luis2013-08-241-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | | | | os: KeyValueDB: expose interface to obtain estimated store sizeJoao Eduardo Luis2013-08-233-0/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On LevelDBStore, instead of using leveldb's GetApproximateSizes() function, we will instead assess what's the store's raw size from the contents of the store dir (this means .sst's, .log's, etc). The reason behind this approach is that GetApproximateSizes() would expect us to provide a range of keys for which to obtain an approximate size; on the other hand, what we really want is to obtain the size of the store -- not the size of the data (besides, with the compaction issues we've been seeing, we wonder how reliable such approximation would be). Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | | | | mon: MonitorDBStore: output to derr instead of std::coutJoao Eduardo Luis2013-08-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
* | | | | | Merge pull request #540 from ceph/wip-doc-updateSage Weil2013-08-261-1/+27
|\ \ \ \ \ \ | | | | | | | | | | | | | | List packages needed for RPM-based distros
| * | | | | | fix nss lib nameAlfredo Deza2013-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
| * | | | | | update the README with required RPM packagesAlfredo Deza2013-08-261-1/+27
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
* | | | | | WBThrottle: use fdatasync instead of fsyncSamuel Just2013-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport: dumpling Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | | | | | FileStore: add config option to disable the wbthrottleSamuel Just2013-08-262-1/+3
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | Backport: dumpling Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | | | | Merge branch 'sleinen'Josh Durgin2013-08-251-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * | | | | Improve warning message when there are unfound objects, but probingSimon Leinen2013-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hasn't finished yet. Signed-off-by: Simon Leinen <simon.leinen@switch.ch>
* | | | | | Merge remote-tracking branch 'gh/next'Sage Weil2013-08-249-11/+41
|\ \ \ \ \ \ | | |_|/ / / | |/| | | |
| * | | | | Merge pull request #531 from dmick/wip-6099Sage Weil2013-08-231-0/+13
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | ceph_rest_api.py: create own default for log_file Reviewed-by: Sage Weil <sage@inktank.com>