v14.2.2 Nautilus released
This is the second bug fix release of Ceph Nautilus release series. We recommend all Nautilus users upgrade to this release. For upgrading from older releases of ceph, general guidelines for upgrade to nautilus must be followed Upgrading from Mimic or Luminous.
Notable Changes ¶
The
no{up,down,in,out}
related commands have been revamped. There are now 2 ways to set theno{up,down,in,out}
flags: the oldceph osd [un]set <flag>
command, which sets cluster-wide flags; and the newceph osd [un]set-group <flags> <who>
command, which sets flags in batch at the granularity of any crush node, or device class.radosgw-admin
introduces two subcommands that allow the managing of expire-stale objects that might be left behind after a bucket reshard in earlier versions of RGW. One subcommand lists such objects and the other deletes them. Read the troubleshooting section of the dynamic resharding docs for details.Earlier Nautilus releases (14.2.1 and 14.2.0) have an issue where deploying a single new (Nautilus) BlueStore OSD on an upgraded cluster (i.e. one that was originally deployed pre-Nautilus) breaks the pool utilization stats reported by
ceph df
. Until all OSDs have been reprovisioned or updated (viaceph-bluestore-tool repair
), the pool stats will show values that are lower than the true value. This is resolved in 14.2.2, such that the cluster only switches to using the more accurate per-pool stats after all OSDs are 14.2.2 (or later), are BlueStore, and (if they were created prior to Nautilus) have been updated via therepair
function.The default value for mon_crush_min_required_version has been changed from firefly to hammer, which means the cluster will issue a health warning if your CRUSH tunables are older than hammer. There is generally a small (but non-zero) amount of data that will move around by making the switch to hammer tunables; for more information, see Tunables.
If possible, we recommend that you set the oldest allowed client to hammer or later. You can tell what the current oldest allowed client is with:
ceph osd dump | grep min_compat_client
If the current value is older than hammer, you can tell whether it is safe to make this change by verifying that there are no clients older than hammer current connected to the cluster with:
ceph features
The newer straw2 CRUSH bucket type was introduced in hammer, and ensuring that all clients are hammer or newer allows new features only supported for straw2 buckets to be used, including the crush-compat mode for the Balancer.
Changelog ¶
- bluestore: backport more bluestore alerts (pr#27645, Sage Weil, Igor Fedotov)
- bluestore: call fault_range prior to looking for blob to reuse (pr#27525, Igor Fedotov)
- bluestore: correctly measure deferred writes into new blobs (issue#38816, pr#27819, Sage Weil)
- bluestore: dump before “no-spanning blob id” abort (pr#28028, Igor Fedotov)
- bluestore: fix for FreeBSD iocb structure (issue#39612, pr#28007, Willem Jan Withagen)
- bluestore: fix missing discard in BlueStore::_kv_sync_thread (issue#39672, pr#28258, Junhui Tang)
- bluestore: fix out-of-bound access in bmap allocator (pr#27740, Igor Fedotov)
- bluestore: fix duplicate allocations in bmap allocator (issue#40080, pr#28646, Igor Fedotov)
- build/ops: Ceph RPM build fails on openSUSE Tumbleweed with GCC 9 (issue#40067, issue#39974, pr#28299, Martin Liška)
- build/ops: cmake: Fix build against ncurses with separate libtinfo (pr#27532, Lars Wendler)
- build/ops: cmake: set empty-string RPATH for ceph-osd (issue#40301, issue#40295, pr#28516, Nathan Cutler)
- build/ops: do_cmake.sh: source not found (issue#39981, issue#40003, pr#28215, Nathan Cutler)
- build/ops: python3 pybind RPMs do not replace their python2 counterparts on upgrade even though they should (issue#40099, issue#40232, pr#28469, Nathan Cutler)
- build/ops: rpm: install grafana dashboards world readable (pr#28392, Jan Fajerski)
- build/ops: selinux: Update the policy for RHEL8 (pr#28511, Boris Ranto)
- ceph-volume: add utility functions (pr#27791, Mohamad Gebai)
- ceph-volume: broken assertion errors after pytest changes (pr#28925, Alfredo Deza)
- ceph-volume: look for rotational data in lsblk (pr#27723, Andrew Schoen)
- ceph-volume: tests add a sleep in tox for slow OSDs after booting (pr#28924, Alfredo Deza)
- ceph-volume: use the Device.rotational property instead of sys_api (pr#29028, Andrew Schoen)
- cephfs-shell: Revert “cephfs.pyx: add py3 compatibility (pr#28641, Varsha Rao)
- cephfs-shell: ls command produces error: no colorize attribute found error (issue#39376, issue#39378, issue#38740, issue#39379, issue#39197, issue#39377, pr#27677, Milind Changire, Varsha Rao)
- cephfs-shell: misc. cephfs-shell backports (issue#40314, issue#40471, issue#40418, issue#40469, issue#40313, issue#39937, issue#39678, issue#40244, issue#39404, issue#40243, issue#39165, issue#40470, issue#40455, issue#39936, issue#40217, pr#28681, Patrick Donnelly, Varsha Rao, Milind Changire)
- cephfs-shell: mkdir error for relative path (issue#39960, pr#28616, Varsha Rao)
- cephfs: FSAL_CEPH assertion failed in Client::_lookup_name: “parent->is_dir() (issue#40085, issue#40161, pr#28612, Jeff Layton)
- cephfs: ceph_volume_client: Too many arguments for “WriteOpCtx (issue#39050, issue#38946, pr#27893, Ramana Raja)
- cephfs: client: ceph.dir.rctime xattr value incorrectly prefixes 09 to the nanoseconds component (issue#40167, pr#28500, David Disseldorp)
- cephfs: client: fix “ceph.snap.btime” vxattr value (issue#40169, pr#28499, David Disseldorp)
- cephfs: client: fix fuse client hang because its bad session PipeConnection (issue#39686, issue#39305, pr#28375, Guan yunfei)
- cephfs: kclient: nofail option not supported (issue#39232, pr#27851, Kenneth Waegeman)
- cephfs: mds: Expose CephFS snapshot creation time to clients (issue#39471, pr#27901, David Disseldorp)
- cephfs: mds: MDSTableServer.cc: 83: FAILED assert(version == tid) (issue#39211, issue#38835, pr#27853, “Yan, Zheng”)
- cephfs: mds: avoid sending too many osd requests at once after mds restarts (issue#40028, issue#40040, pr#28582, simon gao)
- cephfs: mds: behind on trimming and “[dentry] was purgeable but no longer is! (issue#39222, issue#38679, pr#27879, “Yan, Zheng”)
- cephfs: mds: better output of ‘ceph health detail (issue#39266, pr#27846, Shen Hang’)
- cephfs: mds: check dir fragment to split dir if mkdir makes it oversized (issue#39690, pr#28394, Erqi Chen)
- cephfs: mds: check directory split after rename (issue#39199, issue#38994, pr#27736, Shen Hang)
- cephfs: mds: drop reconnect message from non-existent session (issue#39026, issue#39192, pr#27714, Shen Hang)
- cephfs: mds: fail to resolve snapshot name contains ‘_’ (issue#39473, pr#27849, “Yan, Zheng’)
- cephfs: mds: fix ‘is session in blacklist’ check in Server::apply_blacklist() (issue#40236, issue#40061, pr#28618, “Yan, Zheng’)
- cephfs: mds: fix corner case of replaying open sessions (pr#28580, “Yan, Zheng”)
- cephfs: mds: high debug logging with many subtrees is slow (issue#38876, pr#27892, Rishabh Dave)
- cephfs: mds: initialize cap_revoke_eviction_timeout with conf (issue#39209, issue#38844, pr#27842, simon gao)
- cephfs: mds: output lock state in format dump (issue#39645, issue#39670, pr#28233, Zhi Zhang)
- cephfs: mds: reset heartbeat during long-running loops in recovery (issue#40223, pr#28611, “Yan, Zheng”)
- cephfs: mds: there is an assertion when calling Beacon::shutdown() (issue#39214, issue#38822, pr#27852, huanwen ren)
- cephfs: mount: key parsing fail when doing a remount (issue#40164, pr#28610, Luis Henriques)
- cephfs: pybind: added lseek() (pr#28333, Xiaowei Chu)
- common/assert: include ceph_abort_msg(arg) arg in log output (pr#27824, Sage Weil)
- common/options: annotate some options; enable some runtime updates (pr#27818, Sage Weil)
- common/options: update mon_crush_min_required_version=hammer (pr#27625, Sage Weil)
- common/util: handle long lines in /proc/cpuinfo (issue#38296, issue#39476, pr#28141, Sage Weil)
- common: Clang requires a default constructor, but it can be empty (issue#39561, issue#39573, pr#28131, Willem Jan Withagen)
- common: fix parse_env nullptr deref (pr#28382, Patrick Donnelly)
- common: make cluster_network work (issue#39671, pr#28248, Jianpeng Ma)
- common: parse ISO 8601 datetime format (issue#40087, pr#28325, Sage Weil)
- core: Give recovery for inactive PGs a higher priority (issue#39504, issue#38195, pr#27854, David Zafman)
- core: mon,osd: add no{out,down,in,out} flags on CRUSH nodes (pr#27623, xie xingguo, Sage Weil)
- core: mon/Elector: format mon_release correctly (issue#39419, pr#27771, Sage Weil)
- core: mon/Monitor: allow probe if MMonProbe::mon_release == 0 (issue#38850, pr#28262, Sage Weil)
- core: mon: fix off-by-one rendering progress bar (pr#28398, Sage Weil)
- core: mon: use per-pool stats only when all OSDs are reporting (pr#29032, Sage Weil)
- core: monitoring: Provide a base set of Prometheus alert manager rules that notify the user about common Ceph error conditions (issue#39540, pr#27998, Jan Fajerski)
- core: monitoring: update Grafana dashboards (issue#39652, issue#40006, issue#39971, issue#39932, pr#28101, Kiefer Chang, Jan Fajerski)
- core: osd/OSD.cc: make osd bench description consistent with parameters (issue#39006, issue#39375, pr#28035, Neha Ojha)
- core: osd/OSDMap: Replace get_out_osds with get_out_existing_osds (issue#39421, issue#39154, pr#28072, Brad Hubbard)
- core: osd/PG: discover missing objects when an OSD peers and PG is degraded (pr#27744, Jonas Jelten)
- core: osd/PG: do not use approx_missing_objects pre-nautilus (issue#39512, pr#28160, Neha Ojha)
- core: osd/PG: fix last_complete re-calculation on splitting (issue#39539, issue#26958, pr#28219, xie xingguo)
- core: osd/PG: skip rollforward when !transaction_applied during append_log() (issue#36739, issue#38881, pr#27654, Neha Ojha)
- core: osd/PGLog: preserve original_crt to check rollbackability (issue#36739, issue#39043, pr#27632, Neha Ojha)
- core: osd: Don’t evict after a flush if intersecting scrub range (issue#38840, issue#39519, pr#28205, David Zafman’)
- core: osd: Don’t include user changeable flag in snaptrim related assert (issue#39699, issue#38124, pr#28203, David Zafman’)
- core: osd: FAILED ceph_assert(attrs || !pg_log.get_missing().is_missing(soid) || (it_objects != pg_log.get_log().objects.end() && it_objects->second->op == pg_log_entry_t::LOST_REVERT)) in PrimaryLogPG::get_object_context() (issue#38931, issue#39219, issue#38784, pr#27839, xie xingguo)
- core: osd: Include dups in copy_after() and copy_up_to() (issue#39304, pr#28088, David Zafman)
- core: osd: Increase log level of messages which unnecessarily fill up logs (pr#27687, David Zafman)
- core: osd: Output Base64 encoding of CRC header if binary data present (issue#39738, pr#28504, David Zafman)
- core: osd: Primary won’t automatically repair replica on pulling error (issue#39101, issue#39184, pr#27711, xie xingguo, David Zafman’)
- core: osd: revamp {noup,nodown,noin,noout} related commands (pr#28400, xie xingguo)
- core: osd: shutdown recovery_request_timer earlier (issue#39205, pr#27803, Zengran Zhang)
- core: osd: take heartbeat_lock when calling heartbeat() (issue#39514, issue#39439, pr#28164, Sage Weil)
- doc: add LAZYIO (issue#39051, issue#38729, pr#27899, “Yan, Zheng”)
- doc: add documentation for “fs set min_compat_client” (issue#39130, issue#39176, pr#27900, Patrick Donnelly)
- doc: cleanup HTTP Frontends documentation (issue#38874, pr#27922, Casey Bodley)
- doc: dashboard documentation changes (pr#27642, Tatjana Dehler, Lenz Grimmer)
- doc: orchestrator_cli: Rook orch supports mon update (issue#39169, issue#39137, pr#27488, Sebastian Wagner)
- doc: osd_internals/async_recovery: update cost calculation (pr#28046, Neha Ojha)
- doc: rados/operations/devices: document device prediction (pr#27752, Sage Weil)
- mgr/ActivePyModules: handle_command - fix broken lock (issue#39235, issue#39308, pr#27939, xie xingguo)
- mgr/BaseMgrModule: run MonCommandCompletion on the finisher (issue#39397, issue#39335, pr#27699, Sage Weil)
- mgr/ansible: Host ls implementation (issue#39559, pr#27919, Juan Miguel Olmo Martxc3xadnez)
- mgr/balancer: various compat weight-set fixes (pr#28279, xie xingguo)
- mgr/dashboard: Add custom dialogue for configuring PG scrub parameters (issue#40059, pr#28555, Tatjana Dehler)
- mgr/dashboard: Admin resource not honored (issue#39338, issue#39467, pr#27868, Wido den Hollander)
- mgr/dashboard: Angular is creating multiple instances of the same service (issue#39996, issue#40075, pr#28312, Tiago Melo)
- mgr/dashboard: Avoid merge conflicts in messages.xlf by auto-generating it at build time? (issue#39658, pr#28178, Sebastian Krah)
- mgr/dashboard: Display correct dialog title (pr#28189, Volker Theile)
- mgr/dashboard: Error creating NFS client without squash (issue#40074, pr#28311, Tiago Melo)
- mgr/dashboard: KV-table transforms dates through pipe (issue#39558, pr#28021, Stephan Mxc3xbcller)
- mgr/dashboard: Localization for date picker module (issue#39371, pr#27673, Stephan Mxc3xbcller)
- mgr/dashboard: Manager should complain about wrong dashboard certificate (issue#39346, pr#27742, Volker Theile)
- mgr/dashboard: NFS clients information is not displayed in the details view (issue#40057, pr#28318, Tiago Melo)
- mgr/dashboard: NFS export creation: Add more info to the validation message of the field Pseudo (issue#39975, issue#39327, pr#28320, Tiago Melo)
- mgr/dashboard: Only one root node is shown in the crush map viewer (issue#39647, issue#40077, pr#28316, Tiago Melo)
- mgr/dashboard: Push Grafana dashboards on startup (pr#28635, Zack Cerza)
- mgr/dashboard: Queue notifications as default (issue#39560, pr#28022, Stephan Mxc3xbcller)
- mgr/dashboard: RBD snapshot name suggestion with local time suffix (issue#39534, pr#27890, Stephan Mxc3xbcller)
- mgr/dashboard: Reduce the number of renders on the tables (issue#39944, issue#40076, pr#28315, Tiago Melo)
- mgr/dashboard: Some validations are not updated and prevent the submission of a form (issue#40030, pr#28319, Tiago Melo)
- mgr/dashboard: Unable to see tcmu-runner perf counters (issue#39988, pr#28191, Ricardo Marques)
- mgr/dashboard: Unify the look of dashboard charts (issue#39384, issue#39961, pr#28175, Tiago Melo)
- mgr/dashboard: Validate if any client belongs to more than one group (issue#39036, issue#39454, pr#27760, Tiago Melo)
- mgr/dashboard: code documentation (issue#39345, issue#36243, pr#27746, Ernesto Puerta)
- mgr/dashboard: iSCSI GET requests should not be logged (pr#28024, Ricardo Marques)
- mgr/dashboard: iSCSI form does not support IPv6 (pr#28026, Ricardo Marques)
- mgr/dashboard: iSCSI form is showing a warning (issue#39452, issue#39324, pr#27758, Tiago Melo)
- mgr/dashboard: iSCSI should allow exporting an RBD image with Journaling enabled (pr#28011, Ricardo Marques)
- mgr/dashboard: inconsistent result when editing a RBD image’s features (issue#39993, issue#39933, pr#28218, Kiefer Chang’)
- mgr/dashboard: incorrect help message for minimum blob size (issue#39624, issue#39664, pr#28062, Kiefer Chang)
- mgr/dashboard: local variable ‘cluster_id’ referenced before assignment error when trying to list NFS Ganesha daemons (issue#40031, pr#28261, Nur Faizin’)
- mgr/dashboard: make auth token work with UTC times only (issue#39524, issue#39300, pr#27942, Ricardo Dias)
- mgr/dashboard: openssl exception when verifying certificates of HTTPS requests (issue#39962, issue#39628, pr#28163, Ricardo Dias)
- mgr/dashboard: orchestrator mgr modules assert failure on iscsi service request (issue#40037, pr#28552, Sebastian Wagner)
- mgr/dashboard: show degraded/misplaced/unfound objects (pr#28584, Alfonso Martxc3xadnez)
- mgr/orchestrator: Remove “(add|test|remove)_stateful_service_rule (issue#38808, pr#27043, Sebastian Wagner)
- mgr/orchestrator: add progress events to all orchestrators (pr#28040, Sebastian Wagner)
- mgr/progress: behave if pgs disappear (due to a racing pg merge) (issue#38157, issue#39344, pr#27608, Sage Weil)
- mgr/prometheus: replace whitespaces in metrics’ names (pr#27886, Alfonso Martxc3xadnez’)
- mgr/rook: Added missing rgw daemons in service ls (issue#39171, issue#39312, pr#27864, Sebastian Wagner)
- mgr/rook: Fix RGW creation (issue#39158, issue#39313, pr#27863, Sebastian Wagner)
- mgr/rook: Remove support for Rook older than v0.9 (issue#39356, issue#39278, pr#27862, Sebastian Wagner)
- mgr/test_orchestrator: AttributeError: ‘TestWriteCompletion’ object has no attribute ‘id (issue#39536, pr#27920, Sebastian Wagner’)
- mgr/volumes: FS subvolumes enhancements (issue#40429, pr#28767, Ramana Raja)
- mgr/volumes: add CephFS subvolumes library (issue#39750, issue#40152, issue#39949, issue#40014, issue#39610, pr#28429, Sage Weil, Venky Shankar, Ramana Raja, Rishabh Dave)
- mgr/volumes: refactor volume module (issue#40378, issue#39969, pr#28595, Venky Shankar)
- mgr: Update the restful module in nautilus (pr#28291, Kefu Chai, Boris Ranto)
- mgr: deadlock (issue#39040, issue#39425, pr#28098, xie xingguo)
- mgr: fix pgp_num adjustments (issue#38626, pr#27876, Sage Weil, Marius Schiffer)
- mgr: log an error if we can’t find any modules to load (issue#40090, pr#28347, Tim Serong’)
- monitoring: pybind/mgr: fix format for rbd-mirror prometheus metrics (pr#28485, Mykola Golub)
- msg/async: connection race + winner fault can leave connection stuck at replacing foreve (issue#39241, issue#37499, issue#39448, issue#38493, pr#27915, Jason Dillaman, xie xingguo)
- msg/async/ProtocolV[12]: add ms_learn_addr_from_peer (pr#28589, Sage Weil)
- msg: output peer address when detecting bad CRCs (issue#39367, pr#27857, Greg Farnum)
- pybind: Add ‘RBD_FEATURE_MIGRATING’ to rbd.pyx (issue#39609, issue#39736, pr#28482, Ricardo Marques’)
- pybind: Rados.get_fsid() returning bytes in python3 (issue#40192, issue#38381, pr#28476, Jason Dillaman)
- rbd: krbd: fix rbd map hang due to udev return subsystem unordered (issue#39089, issue#39315, pr#28019, Zhi Zhang)
- rbd: librbd: async open/close should free ImageCtx before issuing callback (issue#39428, issue#39031, pr#28121, Jason Dillaman)
- rbd: librbd: avoid dereferencing an empty container during deep-copy (issue#40368, issue#40379, pr#28577, Jason Dillaman)
- rbd: librbd: do not allow to deep copy migrating image (issue#39224, pr#27882, Mykola Golub)
- rbd: librbd: fix issues with object-map/fast-diff feature interlock (issue#39946, issue#39521, pr#28127, Jason Dillaman)
- rbd: librbd: fixed several race conditions related to copyup (issue#39195, issue#39021, pr#28132, Jason Dillaman)
- rbd: librbd: make flush be queued by QOS throttler (issue#38869, pr#28120, Mykola Golub)
- rbd: librbd: re-add support for nautilus clients talking to jewel clusters (issue#39450, pr#27936, Jason Dillaman)
- rbd: librbd: support EC data pool images sparsify (issue#39226, pr#27903, Mykola Golub)
- rbd: rbd-mirror: clear out bufferlist prior to listing mirror images (issue#39462, issue#39407, pr#28122, Jason Dillaman)
- rbd: rbd-mirror: image replayer should periodically flush IO and commit positions (issue#39257, issue#39288, pr#27937, Jason Dillaman)
- rgw: Evaluating bucket policies also while reading permissions for anxe2x80xa6 (issue#38638, issue#39273, pr#27918, Pritha Srivastava)
- rgw: admin: handle delete_at attr in object stat output (pr#27827, Abhishek Lekshmanan)
- rgw: beast: multiple v4 and v6 endpoints with the same port will cause failure (issue#39746, issue#39038, pr#28541, Abhishek Lekshmanan)
- rgw: beast: set a default port for endpoints (issue#39048, issue#39000, pr#27660, Abhishek Lekshmanan)
- rgw: bucket stats report mtime in UTC (pr#27826, Alfonso Martxc3xadnez, Casey Bodley)
- rgw: clean up some logging (issue#39503, pr#27953, J. Eric Ivancich)
- rgw: cloud sync module fails to sync multipart objects (issue#39684, pr#28064, Abhishek Lekshmanan)
- rgw: cloud sync module logs attrs in the log (issue#39574, pr#27954, Nathan Cutler)
- rgw: crypto: throw DigestException from Digest and HMAC (issue#39676, issue#39456, pr#28309, Matt Benjamin)
- rgw: document CreateBucketConfiguration for s3 PUT Bucket request (issue#39597, issue#39601, pr#28512, Casey Bodley)
- rgw: fix Multisite sync corruption (pr#28383, Tianshan Qu, Casey Bodley, Xiaoxi CHEN)
- rgw: fix bucket may redundantly list keys after BI_PREFIX_CHAR (issue#39984, issue#40148, pr#28410, Casey Bodley, Tianshan Qu)
- rgw: fix default_placement containing “/” when storage_class is standard (issue#39745, issue#39380, pr#28538, mkogan1)
- rgw: inefficient unordered bucket listing (issue#39410, issue#39393, pr#27924, Casey Bodley)
- rgw: librgw: unexpected crash when creating bucket (issue#39575, pr#27955, Tao CHEN)
- rgw: limit entries in remove_olh_pending_entries() (issue#39178, issue#39118, pr#27664, Casey Bodley)
- rgw: list bucket with start marker and delimiter will miss next object with char ‘0’ (issue#40762, issue#39989, pr#29022, Tianshan Qu)
- rgw: multisite log trimming only checks peers that sync from us (issue#39283, pr#27814, Casey Bodley)
- rgw: multisite: add perf counters to data sync (issue#38549, issue#38918, pr#27921, Abhishek Lekshmanan, Casey Bodley)
- rgw: multisite: mismatch of bucket creation times from List Buckets (issue#39635, issue#39735, pr#28444, Casey Bodley)
- rgw: multisite: period pusher gets 403 Forbidden against other zonegroups (issue#39287, issue#39414, pr#27952, Casey Bodley)
- rgw: race condition between resharding and ops waiting on resharding (issue#39202, pr#27800, J. Eric Ivancich)
- rgw: radosgw-admin: add tenant argument to reshard cancel (issue#39018, pr#27630, Abhishek Lekshmanan)
- rgw: rgw_file: save etag and acl info in setattr (issue#39228, pr#27904, Tao Chen)
- rgw: swift object expiry fails when a bucket reshards (issue#39740, pr#28537, Abhishek Lekshmanan)
- rgw: unittest_rgw_dmclock_scheduler does not need Boost_LIBRARIES (issue#39577, pr#27944, Willem Jan Withagen)
- rgw: update resharding documentation (issue#39046, pr#27923, J. Eric Ivancich)
- tests: added bluestore_warn_on_legacy_statfs: false setting (issue#40467, pr#28723, Yuri Weinstein)
- tests: added ragweed coverage to stress-split\* upgrade suites (issue#40452, issue#40467, pr#28661, Yuri Weinstein)
- tests: added v14.2.1 (issue#40181, pr#28416, Yuri Weinstein)
- tests: cannot schedule kcephfs/multimds (issue#40116, pr#28369, Patrick Donnelly)
- tests: centos 7.6 etc (pr#27439, Sage Weil)
- tests: ceph-ansible: ceph-ansible requires ansible 2.8 (issue#40602, issue#40669, pr#28871, Brad Hubbard)
- tests: ceph-ansible: cephfs_pools variable pgs should be pg_num (issue#40670, issue#40605, pr#28872, Brad Hubbard)
- tests: cephfs-shell: teuthology tests (issue#39935, issue#39526, pr#28614, Milind Changire)
- tests: cephfs: TestMisc.test_evict_client fails (issue#40220, pr#28613, “Yan, Zheng”)
- tests: cleaned up supported distro for nautilus (pr#28065, Yuri Weinstein)
- tests: ignore legacy bluestore stats errors (issue#40374, pr#28563, Patrick Donnelly)
- tests: librbd: drop ‘ceph_test_librbd_api’ target (issue#39423, issue#39072, pr#28091, Jason Dillaman’)
- tests: mgr: tox failures when running make check (issue#39323, issue#39530, pr#27884, Nathan Cutler)
- tests: pass –ssh-config to pytest to resolve hosts when connecting (pr#28923, Alfredo Deza)
- tests: rbd: qemu-iotests tests fail under latest Ubuntu kernel (issue#39541, issue#24668, pr#27988, Jason Dillaman)
- tests: removed 1node and systemd tests as ceph-deploy is not axe2x80xa6 (pr#28458, Yuri Weinstein)
- tests: rgw: fix race in test_rgw_reshard_wait and test_rgw_reshard_wait uses same clock for timing (issue#39479, pr#27779, Casey Bodley)
- tests: rgw: fix swift warning message (issue#40304, pr#28698, Casey Bodley)
- tests: rgw: more fixes for swift task (issue#40304, pr#28922, Casey Bodley)
- tests: rgw: skip swift tests on rhel 7.6+ (issue#40402, issue#40304, pr#28604, Casey Bodley)
- tests: stop testing simple messenger in fs qa (issue#40373, pr#28562, Patrick Donnelly)
- tests: tasks/rbd_fio: fixed missing delimiter between ‘cd’ and ‘configure (issue#39590, pr#27989, Jason Dillaman’)
- tests: test_sessionmap assumes simple messenger (issue#39430, pr#27772, Patrick Donnelly)
- tests: use curl in wait_for_radosgw() in util/rgw.py (issue#40346, pr#28598, Ali Maredia)
- tests: workunits/rbd: use https protocol for devstack git operations (issue#39656, issue#39729, pr#28128, Jason Dillaman)
- tests: workunits/rbd: wait for rbd-nbd unmap to complete (issue#39675, issue#39598, pr#28273, Jason Dillaman)