summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* wipwip-osd-redirectSage Weil2012-07-142-9/+13
|
* MOSDOpReply: add a forward_to fieldSage Weil2012-07-141-2/+16
| | | | | | | This will eventually be used to tell the client to send their request elsewhere. Signed-off-by: Sage Weil <sage@inktank.com>
* osdmap: drop useless and unused get_pg_role() methodSage Weil2012-07-141-6/+0
| | | | | | | | Users probably want get_pg_acting_rank(). If they don't, they can probably have the mapping and can calculate the rank themselves. Having this here is asking for bugs like #2022. Signed-off-by: Sage Weil <sage@inktank.com>
* osd: based misdirected op role calc on acting setSage Weil2012-07-141-2/+2
| | | | | | | | | | We want to look at the acting set here, nothing else. This was causing us to erroneously queue ops for later (wasting memory) and to erroneously print out a 'misdrected op' message in the cluster log (confusion and incorrect [but ignored] -ENXIO reply). Fixes: #2022 Signed-off-by: Sage Weil <sage@inktank.com>
* osd: simplify helper usage for misdirected opsSage Weil2012-07-141-20/+20
| | | | | | | | Make the helper exclusively for the PG != NULL cases, and open-code the one PG == NULL caller. This is simpler, and lets us include more useful information in the log message. Signed-off-by: Sage Weil <sage@inktank.com>
* vstart: use absolute path for keyringNoah Watkins2012-07-141-2/+2
| | | | | | | | Stores absolute path to the generated keyring so that tests running in other directories (e.g. src/java/test) can simply reference the generated ceph.conf. Signed-off-by: Noah Watkins <jawhawk@cs.ucsc.edu>
* OSD: add config options to fake missed pingsSamuel Just2012-07-133-0/+24
| | | | | | | | | | | | | | | In order to test monitor and osd failure detection and false positive correction, this patch adds the following options: 1. osd_debug_drop_ping_probability: probability of dropping a string of pings from a client upon ping recipt. 2. osd_debug_drop_ping_duration: number of pings to drop in a row. This should help with replicating some wrongly-marked-down thrashing cases. Signed-off-by: Samuel Just <sam.just@inktank.com>
* crushtool: allow information generated during testing to be dumpedcaleb miles2012-07-135-11/+346
| | | | | | to a set of CSV files for off-line analysis. Signed-off-by: caleb miles <caleb.miles@inktank.com>
* doc: remove last reference to ceph-cookbooks.John Wilkins2012-07-131-1/+1
| | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* doc: cookbooks issue resolved, so changed 'ceph-cookbooks' back to 'ceph.'John Wilkins2012-07-131-1/+1
| | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* OSD: send_still_alive when we get a reply if we reported failureSamuel Just2012-07-131-0/+6
| | | | | | | | | | | | | | When we get a ping reply, remove the peer from the failure_queue and send a still alive message if the peer is in the failure_pending map. Otherwise, the monitor could slowly accumulate sporadic failure reports leading to an osd being incorrectly marked out. This bug may have been contributing to the wrongly-marked-down thrashing observed on some systems. Signed-off-by: Samuel Just <sam.just@inktank.com>
* PG: merge_log always use stats from authoritative replicaSamuel Just2012-07-132-4/+14
| | | | | | | | | | | | | | | | | If the osd recieving the log has divergent entries, it will also have a "divergent" stat structure. In general, it suffices to simply trust the stat structure shipped with the authoritative log and info since merge_log is only used to merge an authoritative log. Probably fixes #2769. In cases like #2769, this bug can result in a primary with a stat structure which double counts an operation: once for the divergent operation, and once for the replay. It turned up in a regression suite run as a scrub stat mismatch. Signed-off-by: Samuel Just <sam.just@inktank.com>
* qa: download tests from specified branchJosh Durgin2012-07-132-2/+4
| | | | | | These python tests aren't installed, so they need to be downloaded Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* ReplicatedPG: don't mark repop done until apply completesSamuel Just2012-07-121-1/+2
| | | | | | | | | | | | | | | | Consider the following sequence: 1. issue, apply repop 2. replicas and primary commit Here, repop->waitfor_(ack|disk) are empty, so we mark repop->done and remove_repop. 3. interval change, repops still in queue are marked aborted 4. activate, last_update_applied = last_update 5. the repop from one enters apply_repop, is not aborted, and finds that last_update_applied has passed it by. Fixes #2749 Signed-off-by: Samuel Just <sam.just@inktank.com>
* test_librbd: fix warningsSage Weil2012-07-121-1/+3
| | | | | | | | | test/test_librbd.cc: In member function ‘virtual void LibRBD_TestClone_Test::TestBody()’: warning: test/test_librbd.cc:1040:111: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘uint64_t {aka long long unsigned int}’ [-Wformat] warning: test/test_librbd.cc:1040:111: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘uint64_t {aka long long unsigned int}’ [-Wformat] warning: test/test_librbd.cc:1040:111: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int64_t {aka long long int}’ [-Wformat] Signed-off-by: Sage Weil <sage@inktank.com>
* ReplicatedPG,PG: dump recovery/backfill state on pg querySamuel Just2012-07-123-1/+124
| | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
* Merge remote-tracking branch 'gh/wip-2101'Sage Weil2012-07-126-71/+173
|\
| * crush: sum and check quantized weights for bucketSage Weil2012-07-114-15/+16
| | | | | | | | | | | | | | | | | | | | Sum the quantized weights for each bucket, and check that for overflow. This could change the results of a compile marginally if the map is using non-divisible weight values that quantize funny. The old code might calculate a bucket sum that is not the actual sum of the quantized weights. Signed-off-by: Sage Weil <sage@inktank.com>
| * crush: Set maximum device/bucket weights.caleb miles2012-07-112-1/+14
| | | | | | | | Signed-off-by: caleb miles <caleb.miles@inktank.com>
| * crush: prevent integer overflow on reweightcaleb miles2012-07-114-60/+148
| | | | | | | | | | | | | | Disallow setting OSD weights to a value over 10,000 and cap bucket weight at 10,000,000 in a CRUSH map. Addresses issue #2101. Signed-off-by: caleb miles <caleb.miles@inktank.com>
* | rbd: enable layering when using the new formatJosh Durgin2012-07-121-3/+4
| | | | | | | | | | | | We'll add options for different features later. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* | doc: reverted file and role names.John Wilkins2012-07-121-10/+10
| | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | upstart: Make ceph-osd always set the crush location.Tommi Virtanen2012-07-121-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This used to be conditional on config having osd_crush_location set, but with that, minimal configuration left the OSD completely out of the crush map, and prevented the OSD from starting properly. Note: Ceph does not currently let this mechanism automatically move hosts to another location in the CRUSH hierarchy. This means if you let this run with defaults, setting osd_crush_location later will not take effect. Set up your config file (or Chef environment) fully before starting the OSDs the first time. Signed-off-by: Tommi Virtanen <tv@inktank.com>
* | doc: fix config metavariables discussionSage Weil2012-07-121-6/+6
| | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | doc: perf countersSage Weil2012-07-121-0/+166
| | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | doc: added :: to code example.John Wilkins2012-07-121-1/+1
| | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | doc: minor edits.John Wilkins2012-07-121-6/+5
| | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | doc: cookbook name change broke some things in doc. Fixed.John Wilkins2012-07-121-11/+11
| | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | rados tool: bulk objects removalYehuda Sadeh2012-07-111-6/+10
| | | | | | | | | | | | | | | | | | | | Issue #2776. Allow the removal of multiple objects in a single rados tool command: # rados -p pool rm obj1 [obj2 [...]] Signed-off-by: Yehuda Sadeh <yehuda@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | Merge remote-tracking branch 'gh/wip-cct'Sage Weil2012-07-1111-18/+43
|\ \ | | | | | | | | | | | | Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
| * | librados: simplify cct refcountingSage Weil2012-07-112-2/+4
| | | | | | | | | | | | | | | | | | get() in ctor, put() in dtor. Signed-off-by: Sage Weil <sage@inktank.com>
| * | lockdep: stop lockdep when its cct goes awaySage Weil2012-07-113-0/+17
| | | | | | | | | | | | | | | | | | | | | When a cct is destroyed, tell lockdep so that it can shut down if it needed it. Signed-off-by: Sage Weil <sage@inktank.com>
| * | CephContext: don't leak admin socketSage Weil2012-07-091-0/+1
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | CephContext: drop obsolete ceph_destroy_contextSage Weil2012-07-095-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Drop this useless helper and call cct->put() directly. The comment that this can't be used after global_init is no longer relevant as long as nobody puts a reference they don't own... and nobody owns g_ceph_context. Signed-off-by: Sage Weil <sage@inktank.com>
| * | librados: use CephContext ref countsSage Weil2012-07-092-2/+3
| | | | | | | | | | | | | | | | | | | | | Take ownership of the passed cct. Drop it when we destroy the RadosClient. Signed-off-by: Sage Weil <sage@inktank.com>
| * | CephContext: ref countSage Weil2012-07-093-3/+18
| | | | | | | | | | | | | | | | | | | | | These get shared via the librados API. Fixes: #845 Signed-off-by: Sage Weil <sage@inktank.com>
| * | test_stress_watch: just one librados instanceSage Weil2012-07-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was creating a new cluster connection/session per iteration, and along with it a few service threads and sockets and so forth. Unfortunately, librados leaks like a sieve, starting with CephContext and ceph::crypto::init(). See #845 and #2067. Signed-off-by: Sage Weil <sage@inktank.com>
* | | Merge branch 'next'Sage Weil2012-07-1111-72/+371
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: src/rados.cc
| * | | rados: more usage cleanupSage Weil2012-07-111-2/+2
| | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | | rados: usage messageDan Mick2012-07-111-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bad linebreaks, wrapping, stringification, missing doc for bench args Signed-off-by: Dan Mick <dan.mick@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | | rados tool: remove -t param option for target poolYehuda Sadeh2012-07-111-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug #2772. This fixes an issue that was introduced when we added the 'rados cp' command. The -t param was already used for rados bench. With this change the only way to specify a target pool is using --target-pool. Though this problem is post argonaut, the 'rados cp' command has been backported, so we need this fix there too. Backport: argonaut Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * | | Makefile: don't install crush headersSage Weil2012-07-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is leftover from when we built a libcrush.so. We can re-add when we start doing that again. Reported-by: Laszlo Boszormenyi <gcs@debian.hu> Signed-off-by: Sage Weil <sage@inktank.com>
| * | | Merge branch 'stable' into nextSage Weil2012-07-101-0/+2
| |\ \ \
| | * | | debian: include librados-config in librados-devSage Weil2012-07-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Reported-by: Laszlo Boszormenyi <gcs@debian.hu> Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | lockdep: increase max locksSage Weil2012-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hit this limit with the rados api tests. Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | config: add unlocked version of get_my_sections; use it internallySage Weil2012-07-062-1/+9
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | config: fix lock recursion in get_val_from_conf_file()Sage Weil2012-07-062-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a private, already-locked version. Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | config: fix recursive lock in parse_config_files()Sage Weil2012-07-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The _impl() helper is only called from parse_config_files(); don't retake the lock. Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | rgw: initialize fields of RGWObjEntSage Weil2012-07-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes various valgrind warnings triggered by the s3test test_object_create_unreadable. Signed-off-by: Sage Weil <sage@inktank.com>
| | * | | rgw: handle response-* paramsYehuda Sadeh2012-07-063-21/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle response-* params that set response header field values. Fixes #2734, #2735. Backport: argonaut Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>