David Zafman [Thu, 24 Oct 2019 18:31:52 +0000 (11:31 -0700)]
ceph-objectstore-tool: call collection_bits() crashes on the meta collection
Skip new check for meta collection
test:
Turn off osd_pool_default_pg_autoscale_mode just like bash tests do
Fix test by checking for new error message
Kefu Chai [Wed, 23 Oct 2019 08:08:38 +0000 (16:08 +0800)]
crimson: s/ceph/crimson/ in namespace names
to help differentiate the symbols shared by classic and crimson osd,
after this change, all crimson code will live in "crimson::" namespaces.
and in a follow-up change, all classic code used by crimson will live in
"ceph::" namespaces.
so we don't need to include `include/ceph_assert.h` for it. and
presumably, `ceph_assert()` is for fail the application early when it is
not able to recover from a failure, while `assert()` is for debugging.
Sage Weil [Thu, 24 Oct 2019 02:05:42 +0000 (21:05 -0500)]
Merge PR #30859 into master
* refs/pull/30859/head:
auth: EACCES, not EPERM
mon: shunt old tell commands from cli interface to asok
mon: allow mgr to tell mon.foo smart
mon: include quorum features in quorum_status
qa/workunits/mon/caps.sh: fix test
ceph_test_rados_api_cmd: fix MonDescribe test
Merge branch 'vstart-fs-auth' of git://github.com/batrick/ceph into wip-cleanup-mon-asok
test/pybind/test_ceph_argparse: fix tests
vstart: add volume client keys to keyring
vstart: use fs authorize to create master client key
vstart: redirect some output to stderr
vstart: output command strings to stderr
qa/workunits/cephtool/test.sh: fix 'quorum enter' caller
qa: change mon_status calls to quorum_status or tell commands
mon: fix 'heap ...' command
mon: consolidate 'sync force' commands
mon: allow asok commands to return an error code
mon: move 'quorum enter|exit' and 'mon_status' to asok
mon: fix 'smart' asok command
mon: remove old 'config set' and 'injectargs'
Sage Weil [Thu, 24 Oct 2019 00:46:06 +0000 (19:46 -0500)]
Merge PR #31094 into master
* refs/pull/31094/head:
ceph-daemon: remove redundant --privileged
test_ceph_daemon: test unit, enter, shell
ceph-daemon: drop exec
ceph-daemon: fix exit code for run, shell, enter, exec
ceph-daemon: allow optional command for 'enter'
ceph-daemon: fix LANG for 'enter' command
ceph-daemon: allow shell to take optional command
qa/suites/rados/singleton-nomsgr/ceph-daemon: run test_ceph_daemon.sh
qa/standalone/test_ceph_daemon.sh: add new functional tests
test_ceph_daemon.sh: use newer image
ceph-daemon: unconditionally enable and start crash unit
ceph-daemon: fix crash unit cleanup
ceph-daemon: include 'crash' unit/item in 'ls' output
ceph-daemon: fix 'ls'
mgr/orchestrator: s/sdd/ssd/
mgr/ssh: remove stdout/stderr kludges
ceph-daemon: fix ceph-volume command to write stdout to stdout
Samuel Just [Tue, 17 Sep 2019 19:10:52 +0000 (12:10 -0700)]
osd/scheduler: introduce mClockScheduler
mClockScheduler schedules items based on op_scheduler_class
with configured mclock parameters. Items which should be
scheduled immediately (op_scheduler_class::immediate) are placed
into a single queue as it's not clear that there's a reason to
differentiate among them.
A subsequent patch will add support for client provided mclock
params and dmclock request state.
Sage Weil [Wed, 23 Oct 2019 18:36:48 +0000 (13:36 -0500)]
auth: EACCES, not EPERM
EPERM means an operation requires superuser; EACCES more generally means
permission denied. We use EACCES elsewhere for ceph auth denials; use it
here too for consistency. This fixes qa/workunits/mon/caps.sh.
Patrick Donnelly [Wed, 23 Oct 2019 18:11:49 +0000 (11:11 -0700)]
qa: do not check pg count for new data_isolated volume
We don't need to specify the number of PGs for a new data pool anymore
since b1b821f60812dd36e61be115c5ad8223ab51befe and other related
changes. The related health warnings are also deprecated/gone. So this
no longer needs to be done.
Fixes: b1b821f60812dd36e61be115c5ad8223ab51befe Fixes: https://tracker.ceph.com/issues/42436 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Laura Paduano [Wed, 16 Oct 2019 11:01:59 +0000 (13:01 +0200)]
mgr/dashboard: Document valid frontend tests
This documentation is supposed to help clarify
when and where different type of tests should
be used by explaining the types and what
they are designed for.
Fixes: https://tracker.ceph.com/issues/42253 Signed-off-by: Patrick Seidensal <pseidensal@suse.com> Signed-off-by: Laura Paduano <lpaduano@suse.com>
Samuel Just [Wed, 11 Sep 2019 20:42:44 +0000 (13:42 -0700)]
src/osd: replace OpQueue abstraction in osd with Scheduler
OpQueue is overkill for mclock based schedulers. The interface doesn't
need to externalize the _strict modifiers, the scheduler can figure that
out from the item itself. Introduce simpler Scheduler interface and add
an adapter for the existing OpQueue based implementations.
Sage Weil [Tue, 22 Oct 2019 15:13:51 +0000 (10:13 -0500)]
Merge PR #30826 into master
* refs/pull/30826/head:
ceph-daemon: deploy: behave when crash keyring isn't provided
ceph-daemon: simplify calls from rm_cluster
ceph-daemon: explicitly wait for mon to start
ceph-daemon: bootstrap finish message
ceph-daemon: shell: LANG=C
ceph-daemon: verify mon IP is valid before continuing
ceph-daemon: cleanly capture stdout, err; log
ceph-daemon: --debug for more log detail
test_ceph_daemon: default to test on 127.0.0.1; accept ip as arg
ceph-daemon: bootstrap: assimilate and minimize input config file
Sage Weil [Tue, 22 Oct 2019 15:10:14 +0000 (10:10 -0500)]
mon: allow mgr to tell mon.foo smart
The mgr profile needs to do a tell command to the mon, which was restricted
to *only* allow_all (*) caps. Additionally allow whitelisted commands,
and whitelist 'smart'. This is somewhat imprecise since it conflates
tell vs cli commands in the MonCap, but since those don't overlap it should
be fine.
Kefu Chai [Tue, 22 Oct 2019 04:44:35 +0000 (12:44 +0800)]
test/pybind/test_rados: always pass bytes to rados.Object.set_xattr()
> an empty '' is of type str, not bytes.
python3 says. so let's be more explicit.
this change address failures like:
```
======================================================================
ERROR: test_rados.TestIoctx.test_obj_xattrs
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in
runTest
self.test(*self.arg)
File "/var/ssd/ceph/src/test/pybind/test_rados.py", line 380, in
test_obj_xattrs
obj.set_xattr(key, value)
File "rados.pyx", line 4119, in rados.set_object_locator.retfunc
File "rados.pyx", line 4129, in rados.set_object_namespace.retfunc
File "rados.pyx", line 4204, in rados.Object.set_xattr
File "rados.pyx", line 572, in rados.requires.wrapper.validate_func
File "rados.pyx", line 560, in rados.requires.check_type
TypeError: xattr_value must be bytes
```
Kefu Chai [Tue, 22 Oct 2019 04:42:06 +0000 (12:42 +0800)]
pybind/rados: do not slice zip()
in python2, zip() returns a list. while in python3, zip() returns an
iterator. so we cannot slice the return value of zip(...) anymore. let's
just materialized the iterator before slicing it.
this change address the failure of
```
ERROR: test_rados.TestIoctx.test_applications
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in
runTest
self.test(*self.arg)
File "/var/ssd/ceph/src/test/pybind/test_rados.py", line 879, in
test_applications
eq([], self.ioctx.application_metadata_list("app1"))
File "rados.pyx", line 4074, in rados.Ioctx.application_metadata_list
TypeError: 'zip' object is unsliceable
```
Patrick Donnelly [Tue, 22 Oct 2019 04:23:41 +0000 (21:23 -0700)]
Merge PR #30505 into master
* refs/pull/30505/head:
test/libcephfs: introduce (uint64_t)ceph_pthread_self()
test/libcephfs: Only use sys/xattr.h on Linux
cephfs: Create a separate dirent{} for FreeBSD
test/fs: Only use features.h on Linux
Reviewed-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@redhat.com> Reviewed-by: Kefu Chai <kchai@redhat.com>
Sage Weil [Tue, 22 Oct 2019 02:34:12 +0000 (21:34 -0500)]
qa/workunits/mon/caps.sh: fix test
I'm not really sure why this test expected EPERM before when it expects 0
a bit earlier, but it should certainly expect EPERM after the user is
deleted.