Create an lrc erasure coded pool and run corruption and repair tests on
it.
http://tracker.ceph.com/issues/11665Fixes: #11665
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The erasure code repair test is split in two function:
* setup conditions specific to jerasure (4 osds, jerasure
profile)
* populate and corrupt and repair the erasure coded pool,
with one or two failures.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
When ceph-objectstore-tool was moved from ceph-test to
ceph by 61cf5da0b5, the ceph package in
debian/control was updated accordingly, as recommended by
https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces
The same must be done for the ceph-dbg package because
/usr/lib/debug/usr/bin/ceph-objectstore-too is no longer in
ceph-test-dbg.
Although the change was merged may 6th, 2015
8f23382064, teuthology jobs were not
always failing because packages were not systematically upgraded during
the installation. The missing dependencies that were responsible for
this upgrade problem were fixed by
f898ec1e4e on may 18th, 2015 and all
upgrade tests relying on ceph-*-dbg packages started to fail
systematically after this date.
http://tracker.ceph.com/issues/11546Fixes: #11546
Signed-off-by: Loic Dachary <ldachary@redhat.com>
SUSE spec file got very out of sync with upstream master. This patch
helps resolve the build dependencies from suse ceph.
Signed-off-by: Owen Synge <osynge@suse.com>
* change from
print_tree(ostream*, Formatter*)
to
print_tree(Formatter*, ostream*)
this is more consistent with other map's print
functions. e.g.
MDSMap::print_summary(Formatter *f, ostream *out)
* and in print_tree(Formatter* f, ostream* os),
- `f` and `os` will be mutual exclusive.
- will assert(0) if both of them are NULL.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* so we are able to dump more info from osdmap using this tool,
and this allows us to reproduce the behavior of "ceph osd tree".
* add a test for 'osdmaptool --tree=<format> filepath'
Signed-off-by: Kefu Chai <kchai@redhat.com>
Otherwise, we might send our deletes based on deleted snaps. This is
problematic since we may have trimmed the clones to which those snaps
belong, causing us to send them at an earlier snap than we used before.
The specific situation was
78:[78, 70, 63, 5a, 58, 57]:[64(63), 58(58, 57)]
with 58 already clean. To flush 64, we send:
delete@58
delete@59
copyfrom@62
Then, snap 63 is trimmed leaving us with a snapset of:
78:[78, 70, 63, 5a, 58, 57]:[58(58, 57)]
since trim_object doesn't filter the head object snapset snaps. This
isn't really a bug since in general all snapset users must be aware
that there may be trimmed snaps in snapset::snaps. However, here
it becomes a problem when we go to flush head:
delete@58 -- ignored due to snapc
delete@59 -- ignored due to snapc
copyfrom@78 -- not ignored
The base pool head is at snap seq 62, so it clones that value into
clone 78(78, 70) instead of forgetting it. What should have happened
is that we should have based our flushes on filtered snapset:
78:[78, 70, 58, 57]:[58(58, 57)]
Causing us to instead send:
delete@58 -- ignored due to snapc
delete@69 -- not ignored, causes no clone to be made
copyfrom@78 -- not ignored, updates head such that a subsequent clone
will leave 70 out of the clone snaps vector.
Fixes: 11787
Signed-off-by: Samuel Just <sjust@redhat.com>
It was incorrectly documented as calling the setup function. It was
also vague on how the environment was reset.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
And undocumented. It may be useful for debugging but it would have to be
properly implemented instead of being half commented out.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Specified crush-ruleset-name is required to exist, implicit creation is
going to happen only if crush-ruleset-name wasn't specified on the
command line. While at it, pool-name is very much a required param.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
CrushWrapper::get_osd_pool_default_crush_replicated_ruleset() returns
-1 on error. Returning -EPERM for "No suitable CRUSH ruleset exists"
is wrong.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Validate osd_pool_default_crush_{replicated_ruleset,rule} config
options, in particular when creating pools. Otherwise "ceph osd pool
create foo <pg_num>" may end up creating pools with non-existent
rulesets.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Use id provided by osd_pool_default_crush_{replicated_ruleset,rule}
config options when creating a simple replicated ruleset for an initial
osdmap instead of always making it ruleset 0. Not doing so may leave
default created pools (currently "rbd") in a broken state with their
crush_ruleset pointing to a non-existent ruleset.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
In TEST_default_deprectated_*(), make expected/unexpected vars local
and actually check that rbd, being a default created pool, is set to
use the ruleset specified by conf.
INVALIDRULESET thing in TEST_replicated_pool() is redundant - it is
checked in TEST_replicated_pool_with_ruleset() a bit earlier.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
First cut for a `ceph-release-notes` script added which looks at merge
commits and picks out issue numbers. Though this ideally suits for
backport releases workflow where the commit messages always follow a
specific pattern, it is partly useful for preparing release notes for
normal releases as well.
Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
systemd/ceph-osd@.service is now auto-generated by autotools.
This means the file should be added to gitignored list.
Signed-off-by: Owen Synge <osynge@suse.com>