The object format changed from
{json object}
to
[pgid,{json object}]
The parser is updated accordingly. If the --pgid is present, check that
it equals the pgid from the object description.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
The positional object name is used to filter the output of --op list and
only show the objects with a matching name. If both the object name and
the pgid are omitted, all objects from all PGs are displayed.
The output format is changed from
{"oid":"GROUP","key":"","snapid":-2,
"hash":2659194943,"max":0,"pool":0,"namespace":""}
to
[["0.7_head",{"oid":"GROUP","key":"","snapid":-2,
"hash":2659194943,"max":0,"pool":0,
"namespace":""}]]
where the first member is the pgid where the object is found.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
If the object is not a parsable JSON string, assume an object name and
look it up in all the PGs. If multiple objects have the same name, only
apply the command to one of them. It is primarily useful in a test
environment where the names of the tests objects are known and only a
small number of objects exists. It replaces the following:
path='--data-path dev/osd0 --journal-path dev/osd0.journal'
for pgid in $(./ceph_objectstore_tool $path --op list-pgs) ; do
object=$(./ceph_objectstore_tool $path --pgid $pgid --op list |
grep '"oid":"NAME"')
test -n "$object" && break
done
./ceph_objectstore_tool $path --pgid $pgid "$object" remove
with:
./ceph_objectstore_tool $path NAME remove
http://tracker.ceph.com/issues/10192Fixes: #10192
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Abstract out the PG exploration loops and encapsulate the list-lost and
fix-lost semantic in a callable object.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
Also modify aio_read test for wait: write an object, take its active set
down, try to aio_read; verify read doesn't complete until active set is
allowed back up
Fixes: #10104
Signed-off-by: Dan Mick <dan.mick@redhat.com>
Currently contexts C_Probe/C_PurgeRange are executed while holding
OSDSession::completion_lock. C_Probe and C_PurgeRange may call
Objecter::stat() and Objecter::remove() respectively, which acquire
Objecter::rwlock. This can cause deadlock because there is intermediate
dependency between Objecter::rwlock and OSDSession::completion_lock:
Objecter::rwlock -> OSDSession::lock -> OSDSession::completion_lock
The fix is exexcute C_Probe/C_PurgeRange in finisher thread.
Fixes: #10229
Signed-off-by: Yan, Zheng <zyan@redhat.com>
The google/ headers location has been deprecated as of gperftools 2.0.
As of gperftools 2.2rc, the google/ headers will now give deprecation
warnings, and they will probably disappear in a future gperftools
update.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
This was missing from 17b5fc9a but we didn't notice
because the test wasn't being run by the gitbuilders.
Signed-off-by: John Spray <john.spray@redhat.com>
The func of command perfcounters_dump and 'perf dump' are the same .
But from the print 'ceph --admin-daemon help', it only print 'perf
dump'. So replace.
In order to keep consistent, still keep perfcounters_dump in code for
old user.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
--admin-daemon'
Using this command, we can reset all perfcounters or reset on specified
perfcounter.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Fedora doesn't have point releases, so it doesn't make sense to talk
about "Fedora 18.0" or "Fedora 19.0" - it's just "Fedora 18" or "Fedora
19".
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
This was introduced before cuttlefish. We require users to upgrade first
to a newer release, so there is no need to support a mixed cluster with
such old code.
Signed-off-by: Sage Weil <sage@redhat.com>
The ceph-disk man page was added in
a450cab2b8, but this was not added to the
RPM or DEB packaging. Add it here.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>