summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rgw: disable object read before head writewip-rgw-writeYehuda Sadeh2013-10-071-2/+3
| | | | | | This is done for testing. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* Merge pull request #664 from ceph/wip-6445Josh Durgin2013-09-301-0/+2
|\ | | | | | | Wip 6445 Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * rgw: fix leak in RGWMetadataManager::remove()wip-6445Yehuda Sadeh2013-09-301-0/+2
| | | | | | | | | | | | | | | | | | Backport: dumpling Fixes: #6445 handler->get() returns a newly allocated obj, need to delete it when done. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | Merge pull request #665 from ceph/wip-6444Josh Durgin2013-09-304-6/+11
|\ \ | | | | | | | | | Wip 6444 Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * | PendingReleaseNotes: update regarding librados changeYehuda Sadeh2013-09-302-3/+10
| | | | | | | | | | | | | | | | | | Fix related to issue #6444 Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * | rgw: drop async pool create completion referenceYehuda Sadeh2013-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #6444 Backport: dumpling If pool creation fails (e.g., due to -EEXIST) then we leak the completion object. Earlier we couldn't just drop the reference, as librados have already removed the internal completion object. This fix drop the completion reference even if got an error, which is now possible. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * | librados: pool async create / delete does not delete completion handleYehuda Sadeh2013-09-301-2/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | Backport: dumpling The pool async delete / create function used to delete the internal completion object. However, caller still holds the allocated completion object, which it can't drop a reference to (as it'd try to deallocate the already freed internal object). This fix removes the internal object deletion, a following commit will fix a related leak (#6444) by having the application (radosgw) drop the reference even if got an error. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | Merge pull request #662 from dmick/nextAlfredo Deza2013-09-307-7/+6
|\ \ | |/ |/| Invoke python with /usr/bin/env python instead of directly
| * Invoke python with /usr/bin/env python instead of directlyDan Mick2013-09-307-7/+6
|/ | | | | Fixes: #6311 Signed-off-by: Dan Mick <dan.mick@inktank.com>
* rbd.cc: propagate some errors to user-space when they're availableJoao Eduardo Luis2013-09-301-55/+55
| | | | | | | | There was a bunch of situations in which we would have a proper error to propagate to user-space but we would always return '1' (EXIT_FAILURE). Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com> (cherry picked from commit 7e722245a717038c49f432ae19d9874c25066bb6)
* Merge pull request #658 from dmick/nextSage Weil2013-09-271-1/+1
|\ | | | | | | | | ceph.in: fix missing exception variable in failure to open -o file Reviewed-by: Sage Weil <sage@inktank.com>
| * ceph.in: fix missing exception variable in failure to open -o fileDan Mick2013-09-271-1/+1
| | | | | | | | | | Fixes: #6424 Signed-off-by: Dan Mick <dan.mick@inktank.com>
* | Merge pull request #657 from ceph/wip-6397Josh Durgin2013-09-272-4/+1
|\ \ | |/ |/| | | | | Wip 6397 Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * rgw: don't append NULL char before json parsingYehuda Sadeh2013-09-271-1/+0
| | | | | | | | | | | | Parser handles that by itself. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * ceph_json: use different string constructor for parser bufferYehuda Sadeh2013-09-271-3/+1
| | | | | | | | | | | | | | | | Fixes: #6397 Previous implementation did not user the constructor with the length param. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | qa: workunits: mon: test snaps ops using rbd.Joao Eduardo Luis2013-09-271-0/+39
| | | | | | | | | | | | | | Regression test for #6047 Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com> (cherry picked from commit b2b0f202ea8a0028e7e27664b3ea6b9b8cdafe6e)
* | common/crc32c_intel_fast: avoid reading partial trailing wordSage Weil2013-09-271-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The optimized intel code reads in word-sized chunks, knowing that the allocator will only hand out memory in word-sized increments. This makes valgrind unhappy. Whitelisting doesn't work because for some reason there is no caller context (probably because of some interaction with yasm?). Instead, just use the baseline code for the last few bytes. This should not be significant. Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com> (cherry picked from commit 39c89dcfed0587f822e2226f2de8e4092449af29) Conflicts: src/test/common/test_crc32c.cc
* | Merge pull request #648 from dmick/wip-6425Sage Weil2013-09-263-5/+28
|\ \ | | | | | | | | | | | | ceph_argparse.py, cephtool/test.sh: fix blacklist with no nonce Reviewed-by: Sage Weil <sage@inktank.com>
| * | ceph_argparse.py, cephtool/test.sh: fix blacklist with no nonceDan Mick2013-09-263-5/+28
|/ / | | | | | | | | | | | | | | | | | | | | | | | | It's legal to give a CephEntityAddr to osd blacklist with no nonce, so allow it in the valid() method; also add validation of any nonce given that it's a long >= 0. Also fix comment on CephEntityAddr type description in MonCommands.h, and add tests for invalid nonces (while fixing the existing tests to remove the () around expect_false args). Fixes: #6425 Signed-off-by: Dan Mick <dan.mick@inktank.com>
* | Merge pull request #646 from liewegas/wip-6385Josh Durgin2013-09-261-0/+3
|\ \ | | | | | | | | | | | | qa/run_xfstests.sh: use old xfstests until we adapt to new org Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * | qa/run_xfstests.sh: use old xfstests until we adapt to new orgSage Weil2013-09-261-0/+3
| | | | | | | | | | | | | | | | | | | | | Tests were rearranged upstream; use an old version for the time being until we can refactor run_xfstests.sh to cope. See #6385 Signed-off-by: Sage Weil <sage@inktank.com>
* | | Merge pull request #647 from ceph/wip-ceph-cli-envJosh Durgin2013-09-261-1/+3
|\ \ \ | |/ / |/| | | | | | | | improve ceph clie CEPH_ARGS handling Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * | Revert "ceph: parse CEPH_ARGS environment variable"Sage Weil2013-09-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 67a95b9880c9bc6e858150352318d68d64ed74ad. We now put CEPH_ARGS in the actual args we parse in python, which are passed to rados piecemeal later. This lets you put things like --id ... in there that need to be parsed before librados is initialized.
| * | Add CEPH_ARGS at the end of sys.argvBenoît Knecht2013-09-261-0/+3
|/ / | | | | | | | | | | | | | | This allows, for instance, to pass a different client name to ceph by exporting CEPH_ARGS="--id client_id". Signed-off-by: Benoît Knecht <benoit.knecht@fsfe.org> Signed-off-by: Sage Weil <sage@inktank.com>
* | Merge pull request #645 from liewegas/wip-6346Gregory Farnum2013-09-261-0/+3
|\ \ | | | | | | Reviewed-by: Greg Farnum <greg@inktank.com>
| * | osd/ReplicatedPG: fix bl resize on write vs truncate raceSage Weil2013-09-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | If we resize the write due to the funky truncate behavior, we need to resize the bufferlist to match. Fixes: #6346 Signed-off-by: Sage Weil <sage@inktank.com>
* | | mon: OSDMonitor: do not write full_latest during trimJoao Eduardo Luis2013-09-261-2/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On commit 81983bab we patched OSDMonitor::update_from_paxos() such that we write the latest full map version to 'full_latest' each time the latest full map was built from the incremental versions. This change however clashed with OSDMonitor::encode_trim_extra(), which also wrote to 'full_latest' on each trim, writing instead the version of the *oldest* full map. This duality of behaviors could lead the store to an inconsistent state across the monitors (although there's no sign of it actually imposing any issues besides rebuilding already existing full maps on some monitors). We now stop OSDMonitor::encode_trim_extra() from writing to 'full_latest'. This function will still write out the oldest full map it has in the store, but it will no longer write to full_latest, instead leaving it up to OSDMonitor::update_from_paxos() to figure it out -- and it already does. Fixes: #6378 Backport: dumpling Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | common/crc32c_intel_fast: fix compile-time #ifdefSage Weil2013-09-261-1/+1
|/ | | | | | | | This wasn't getting built in! Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Dan Mick <dan.mick@inktank.com> (cherry picked from commit 3233336cc3b6c2c1e89fe6c6d21d42e0f2cce142)
* qa/workunits/mon/crush_ops.sh: fix testSage Weil2013-09-251-1/+1
| | | | | | | Fix root. Fixes: #6392 Signed-off-by: Sage Weil <sage@inktank.com>
* mon/OSDMonitor: fix 'ceph osd crush reweight ...'Sage Weil2013-09-242-1/+10
| | | | | | | | | | | The adjust method returns a count of adjusted items. Add a test. Fixes: #6382 Backport: dumpling Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Dan Mick <dan.mick@inktank.com>
* osd: change warn_interval_multiplier to uint32_tLoic Dachary2013-09-241-1/+1
| | | | | | | | | | | | to prevent overflow in OpTracker::check_ops_in_flight when multiplying warn_interval_multiplier *= 2 Backport: cuttlefish, dumpling http://tracker.ceph.com/issues/6370 fixes #6370 Signed-off-by: Loic Dachary <loic@dachary.org> (cherry picked from commit 1bce1f009bffd3e28025a08775fec189907a81db)
* arch/intel: fix old commentSage Weil2013-09-241-1/+0
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* arch/intel: use intel probe instructions for x86_64 onlySage Weil2013-09-242-4/+4
| | | | | | | | Not LP64, which includes ppc64 and clearly does not build. Fixes: #6283 Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
* osd: revert 'osd max xattr size' limitSage Weil2013-09-233-12/+17
| | | | | | | | | Set it to 0 (unlimited) for now. Backport: dumpling Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
* Merge pull request #599 from ceph/wip-6323Sage Weil2013-09-231-6/+23
|\ | | | | | | | | mon: OSDMonitor: fix #6322 and #6323 Reviewed-by: Greg Farnum <greg@inktank.com>
| * mon: OSDMonitor: multiple rebuilt full maps per transactionJoao Eduardo Luis2013-09-171-6/+22
| | | | | | | | Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * mon: OSDMonitor: update latest_full while rebuilding full mapsJoao Eduardo Luis2013-09-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Not doing so will make the monitor rebuild the osdmap full versions, even though they may have been rebuilt before, every time the monitor starts. This mostly happens when the cluster is left in an unhealthy state for a long period of time and incremental versions build up. Even though we build the full maps on update_from_paxos(), not updating 'full_latest' leads to the situation initially described. Fixes: #6322 Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * mon: OSDMonitor: smaller transactions when rebuilding full versionsJoao Eduardo Luis2013-09-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, for considerably sized rebuilds, the monitor will not only consume vast amounts of memory, but it will also have troubles committing the transaction. Anyway, it's also a good idea to adjust transactions to the granularity we want, and to be fair we care that each rebuilt full map gets to disk, even if subsequent full maps don't (those can be rebuilt later). Fixes: #6323 Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
* | Merge pull request #612 from ceph/wip-6361João Eduardo Luís2013-09-214-6/+19
|\ \ | | | | | | | | | | | | | | | | | | perfglue/heapprofiler: expect cmd name when handling command instead of 'heap <cmd>' This was broken by the cli rework. Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | qa: workunits: cephtool: check if 'heap' commands are parseablewip-6361Joao Eduardo Luis2013-09-201-0/+7
| | | | | | | | | | | | Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | osd: OSD: add 'heap' command to known osd commands arrayJoao Eduardo Luis2013-09-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Must have been forgotten during the cli rework. Backport: dumpling Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | mds: MDS: pass only heap profiler commands instead of the whole cmd vectorJoao Eduardo Luis2013-09-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The heap profiler doesn't care, nor should it, what our command name is. It only cares about the commands it handles. Backport: dumpling Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
| * | perfglue/heap_profiler.cc: expect args as first element on cmd vectorJoao Eduardo Luis2013-09-201-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to pass 'heap' as the first element of the cmd vector when handling commands. We haven't been doing so for a while now, so we needed to fix this. Not expecting 'heap' also makes sense, considering that what we need to know when we reach this function is what command we should handle, and we should not care what the caller calls us when handling his business. Fixes: #6361 Backport: dumpling Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
* | | mon: fix wrong arg to "instructed to" status messageDan Mick2013-09-201-1/+1
| | | | | | | | | | | | | | | | | | Fixes: #6293 Signed-off-by: Dan Mick <dan.mick@inktank.com> (cherry picked from commit 16ebb25f7cdb8e92c618a333c505c16edb16c95c)
* | | rgw: destroy get_obj handle in copy_obj()Yehuda Sadeh2013-09-202-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(). Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | | lru_map: don't use list::size()Yehuda Sadeh2013-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | replace list::size() with map::size(), which should have a constant time complexity. Reviewed-by: Sage Weil <sage@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | | common/lru_map: rename tokens to entriesYehuda Sadeh2013-09-201-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | This code was originally used in a token cache, now as a generic infrastructure rename token fields. Reviewed-by: Sage Weil <sage@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | | bufferlist: don't use list::size()Yehuda Sadeh2013-09-201-3/+6
|/ / | | | | | | | | Reviewed-by: Sage Weil <sage@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | rgw: use bufferlist::append() instead of bufferlist::push_back()Yehuda Sadeh2013-09-191-1/+1
| | | | | | | | | | | | | | | | push_back() expects char *, whereas append can append a single char. Appending a NULL char to push_back is cast as a NULL pointer which is bad. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | v0.69v0.69Gary Lowell2013-09-182-1/+7
|/