Readahead was using the incorrect lock with the pending condition,
resulting in a failed assertion. It now uses the lock associated
with pending ops.
Fixes: #10045
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
adjust_item_weight method will adjust all buckets which the item
inside. If the osd.0 in host=fake01 and host=fake02, we execute
"ceph osd crush osd.0 10 host=fake01", it not only will adjust fake01's
weight, but also will adjust fake02's weight.
the patch add adjust_item_weightf_in_loc method and fix remove_item,
_remove_item_under, update_item, insert_item, detach_bucket methods.
Signed-off-by: Rongze Zhu <zrzhit@gmail.com>
Add the --erasure-generation exhaustive flag to try all combinations of
erasures, not just one at random.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
This is handy when scripting in the context of teuthology and only
conditionally run tests for the isa plugin, for instance.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
The only reason for not dlclosing plugins at exit is for callgrind but
ceph_erasure_code has no workload that would require callgrind.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
The jerasure-per-chunk-alignment prameter was mispelled and while
useable that would lead to confusion.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Clone the archive of encoded objects and decode all archived objects, up
to and including the current ceph version.
http://tracker.ceph.com/issues/9420 Refs: #9420
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Introduce ceph_erasure_code_non_regression to check and compare how an
erasure code plugin encodes and decodes content with a given set of
parameters. For instance:
./ceph_erasure_code_non_regression \
--plugin jerasure \
--parameter technique=reed_sol_van \
--parameter k=2 \
--parameter m=2 \
--stripe-width 3181 \
--create \
--check
Will create an encoded object (--create) and store it into a directory
along with the chunks, one chunk per file. The directory name is derived
from the parameters. The content of the object is a random pattern of 31
bytes repeated to fill the object size specified with --stripe-width.
The check function (--check) reads the object back from the file,
encodes it and compares the result with the content of the chunks read
from the files. It also attempts recover from one or two erasures.
Chunks encoded by a given version of Ceph are expected to be encoded
exactly in the same way by all Ceph versions going forward.
http://tracker.ceph.com/issues/9420 Refs: #9420
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
A short introduction to the first time user of an erasure coded pool.
It includes a reminder of how it relates to cache tiering and links to
define new profiles with an example.
There was examples in the developer documentation but the operator
expects to find such a guide in the rados operations chapter.
http://tracker.ceph.com/issues/9970Fixes: #9970
Signed-off-by: Loic Dachary <ldachary@redhat.com>
When killing a daemon, instead of using kill -9 to check the process was
terminated, use kill -0. Should the pid of the process be reused
immediately after, it would be wrong to kill the new process. Worst case
scenario the kill_daemon function returns before the process is
confirmed to be killed but this is not treated as an error and is
unlikely to cause any problem.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
So that it can be used instead of stop.sh to stop vstart.sh daemons. The
problem with stop.sh is that it kills any daemon, not just a selection.
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Three scripts are added to run qa/workunits/cephtool/test.sh for each
daemon (mon, mds, osd) so they can be run in parallel.
http://tracker.ceph.com/issues/9815Fixes: #9815
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Listing tests to be run in a single script does not take advantage of
parallel runs in make.
The vstart_wrapper.sh script is reworked and made less specialized and
let the caller decide which daemons to run via CEPH_START and does not
enforce the number of deamons of each time. It no longer uses stop.sh to
avoid killing the osd/mon/mds that are unrelated to the tests.
http://tracker.ceph.com/issues/9815Fixes: #9815
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Run the mon on each test on a different port so they can run in
parallel.
http://tracker.ceph.com/issues/9815Fixes: #9815
Signed-off-by: Loic Dachary <loic-201408@dachary.org>