v14.2.17 Nautilus released

dgalloway

This is the 17th backport release in the Nautilus series. We recommend users to update to this release

Notable Changes

  • $pid expansion in config paths like admin_socket will now properly expand to the daemon pid for commands like ceph-mds or ceph-osd. Previously only ceph-fuse/rbd-nbd expanded $pid with the actual daemon pid.

  • RADOS: PG removal has been optimized in this release.

  • RADOS: Memory allocations are tracked in finer detail in BlueStore and displayed as a part of the dump_mempools command.

  • cephfs: clients which acquire capabilities too quickly are throttled to prevent instability. See new config option mds_session_cap_acquisition_throttle to control this behavior.

Changelog

  • Do not add sensitive information in Ceph log files (pr#38614, Neha Ojha)

  • bluestore: Add protection against bluefs log file growth (pr#37948, Adam Kupczyk)

  • bluestore: provide a different name for fallback allocator (pr#37793, Igor Fedotov)

  • build-integration-branch: take PRs in chronological order (pr#37693, Nathan Cutler)

  • build/ops: install-deps.sh,deb,rpm: move python-saml deps into debian/control and ceph.spec.in (pr#39184, Kefu Chai)

  • ceph-volume batch: reject partitions in argparser (pr#38279, Jan Fajerski)

  • ceph-volume: Fix usage of is_lv (pr#39221, Michał Nasiadka)

  • ceph-volume: Update batch.py (pr#39470, shenjiatong)

  • ceph-volume: add no-systemd argument to zap (pr#37723, wanghongxu)

  • ceph-volume: add some flexibility to bytes_to_extents (pr#39270, Jan Fajerski)

  • ceph-volume: consume mount opt in simple activate (pr#38015, Dimitri Savineau)

  • ceph-volume: implement the --log-level flag (pr#38372, Andrew Schoen)

  • ceph-volume: remove mention of dmcache from docs and help text (pr#38048, Dimitri Savineau, Andrew Schoen)

  • cephfs: client: check rdonly file handle on truncate (pr#39129, Patrick Donnelly)

  • cephfs: client: dump which fs is used by client for multiple-fs (pr#38552, Zhi Zhang)

  • cephfs: client: ensure we take Fs caps when fetching directory link count from cached inode (pr#38950, Jeff Layton)

  • cephfs: client: fix inode ll_ref reference count leak (pr#37838, sepia-liu)

  • cephfs: client: increment file position on _read_sync near eof (pr#37991, Patrick Donnelly)

  • cephfs: client: set CEPH_STAT_RSTAT mask for dir in readdir_r_cb (pr#38948, chencan)

  • cephfs: mds: throttle cap acquisition via readdir (pr#38101, Kotresh HR)

  • cephfs: mount.ceph: collect v2 addresses for non-legacy ms_mode options (pr#39133, Jeff Layton)

  • cephfs: osdc: restart read on truncate/discard (pr#37988, Patrick Donnelly)

  • cephfs: release client dentry_lease before send caps release to mds (pr#39127, Wei Qiaomiao)

  • client: add ceph.{cluster_fsid/client_id} vxattrs suppport (pr#39001, Xiubo Li)

  • client: do not use g_conf().get_val<>() in libcephfs (pr#38467, Xiubo Li)

  • cmake: define BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT for Boost.Asio users (pr#38760, Kefu Chai)

  • cmake: detect and use sigdescr_np() if available (pr#38952, David Disseldorp)

  • common/mempool: Improve mempool shard selection (pr#39651, Nathan Cutler, Adam Kupczyk)

  • common: fix logfile create perms (issue#7849, pr#38558, Kefu Chai, Roman Penyaev)

  • common: skip interfaces starting with "lo" in find_ipv{4,6}_in_subnet() (pr#39342, Thomas Goirand, Jiawei Li)

  • core: osd: An empty bucket or OSD is not an error (pr#39126, Brad Hubbard)

  • crush/CrushWrapper: rebuild reverse maps after rebuilding crush map (pr#39197, Jason Dillaman)

  • krbd: add support for msgr2 (kernel 5.11) (pr#39202, Ilya Dryomov)

  • librados, tests: allow to list objects with the NUL character in names (pr#39324, Radoslaw Zarzynski)

  • librbd: clear implicitly enabled feature bits when creating images (pr#39121, Jason Dillaman)

  • log: fix timestap precision of log can't set to millisecond (pr#37659, Guan yunfei)

  • lvm/create.py: fix a typo in the help message (pr#38371, ZhenLiu94)

  • mds : move start_files_to_recover() to recovery_done (pr#37986, Simon Gao)

  • mds: account for closing sessions in hit_session (pr#37820, Dan van der Ster)

  • mds: avoid spurious sleeps (pr#39130, Patrick Donnelly)

  • mds: dir->mark_new() should together with dir->mark_dirty() (pr#39128, "Yan, Zheng")

  • mds: update defaults for recall configs (pr#39134, Patrick Donnelly)

  • mgr/PyModule: correctly remove config options (pr#38803, Tim Serong)

  • mgr/crash: Serialize command handling (pr#39338, Boris Ranto)

  • mgr/dashboard: CLI commands: read passwords from file (pr#38832, Ernesto Puerta, Alfonso Martínez, Juan Miguel Olmo Martínez)

  • mgr/dashboard: Datatable catches select events from other datatables (pr#37756, Volker Theile, Tiago Melo)

  • mgr/dashboard: Disable TLS 1.0 and 1.1 (pr#38332, Volker Theile)

  • mgr/dashboard: Disable sso without python3-saml (pr#38404, Kevin Meijer)

  • mgr/dashboard: Display a warning message in Dashboard when debug mode is enabled (pr#38799, Volker Theile)

  • mgr/dashboard: Display users current bucket quota usage (pr#38024, Avan Thakkar)

  • mgr/dashboard: Drop invalid RGW client instances, improve logging (pr#38584, Volker Theile)

  • mgr/dashboard: fix 'ceph dashboard iscsi-gateway-add' (pr#39175, Alfonso Martínez)

  • mgr/dashboard: Fix for datatable item not showing details after getting selected (pr#38813, Nizamudeen A)

  • mgr/dashboard: Fix for incorrect validation in rgw user form (pr#39117, Nizamudeen A)

  • mgr/dashboard: RGW User Form is validating disabled fields (pr#39543, Aashish Sharma)

  • mgr/dashboard: The /rgw/status endpoint does not check for running service (pr#38771, Volker Theile)

  • mgr/dashboard: Updating the inbuilt ssl providers error (pr#38509, Nizamudeen A)

  • mgr/dashboard: Use secure cookies to store JWT Token (pr#38839, Avan Thakkar, Aashish Sharma)

  • mgr/dashboard: add `--ssl` to `ng serve` (pr#38972, Tatjana Dehler)

  • mgr/dashboard: avoid using document.write() (pr#39526, Avan Thakkar)

  • mgr/dashboard: customize CherryPy Server Header (pr#39419, anurag)

  • mgr/dashboard: delete EOF when reading passwords from file (pr#39438, Alfonso Martínez)

  • mgr/dashboard: disable cluster selection in NFS export editing form (pr#37995, Kiefer Chang)

  • mgr/dashboard: enable different URL for users of browser to Grafana (pr#39136, Patrick Seidensal)

  • mgr/dashboard: fix MTU Mismatch alert (pr#39518, Aashish Sharma)

  • mgr/dashboard: fix issues related with PyJWT versions >=2.0.0 (pr#39837, Alfonso Martínez)

  • mgr/dashboard: fix security scopes of some NFS-Ganesha endpoints (pr#37961, Kiefer Chang)

  • mgr/dashboard: fix tooltip for Provisioned/Total Provisioned fields (pr#39646, Avan Thakkar)

  • mgr/dashboard: minimize console log traces of Ceph backend API tests (pr#39544, Aashish Sharma)

  • mgr/dashboard: prometheus alerting: add some leeway for package drops and errors (pr#39509, Patrick Seidensal)

  • mgr/dashboard: python 2: error when setting non-ASCII password (pr#39441, Alfonso Martínez)

  • mgr/dashboard: remove pyOpenSSL version pinning (pr#38504, Kiefer Chang)

  • mgr/dashboard: set security headers (pr#39626, Avan Thakkar)

  • mgr/dashboard: test_standby\* (tasks.mgr.test_dashboard.TestDashboard) failed locally (pr#38527, Volker Theile)

  • mgr/dashboard: trigger alert if some nodes have a MTU different than the median value (pr#39104, Aashish Sharma)

  • mgr/insights: Test environment requires 'six' (pr#38382, Brad Hubbard)

  • mgr/progress: delete all events over the wire (pr#38416, Sage Weil)

  • mgr/progress: make it so progress bar does not get stuck forever (issue#40618, pr#37589, Kamoltat (Junior) Sirivadhna, Kamoltat)

  • mgr/prometheus: Add SLOW_OPS healthcheck as a metric (pr#39747, Paul Cuzner)

  • mgr/prometheus: Fix 'pool filling up' with >50% usage (pr#39076, Daniël Vos)

  • mgr/prometheus: Make module more stable (pr#38334, Boris Ranto, Ken Dreyer)

  • mgr/restful: fix TypeError occurring in _gather_osds() (issue#48488, pr#39339, Jerry Pu)

  • mgr/telemetry: fix proxy usage (pr#38816, Nathan Cutler)

  • mgr/volume: subvolume auth_id management and few bug fixes (pr#39292, Rishabh Dave, Patrick Donnelly, Kotresh HR, Ramana Raja)

  • mgr/volumes: Make number of cloner threads configurable (pr#37936, Kotresh HR)

  • mgr: Pin importlib_metadata version 2.1.0 (pr#38296, Brad Hubbard)

  • mgr: don't update osd stat which is already out (pr#38354, Zhi Zhang)

  • mgr: fix deadlock in ActivePyModules::get_osdmap() (pr#39340, peng jiaqi)

  • mgr: update mon metadata when monmap is updated (pr#39075, Kefu Chai)

  • mon scrub testing (pr#38362, Brad Hubbard)

  • mon/MDSMonitor do not ignore mds's down:dne request (pr#37822, chencan)

  • mon/MDSMonitor: divide mds identifier and mds real name with dot (pr#37821, Zhi Zhang)

  • mon: Log "ceph health detail" periodically in cluster log (pr#38118, Prashant Dhange)

  • mon: have 'mon stat' output json as well (pr#37706, Joao Eduardo Luis, Sage Weil)

  • mon: paxos: Delete logger in destructor (pr#39160, Brad Hubbard)

  • mon: validate crush-failure-domain (pr#39124, Prashant Dhange)

  • monitoring: Use null yaxes min for OSD read latency (pr#37959, Seena Fallah)

  • msg/async/ProtocolV2: allow rxbuf/txbuf get bigger in testing, again (pr#38268, Ilya Dryomov)

  • ocf: add support for mapping images within an RBD namespace (pr#39047, Jason Dillaman)

  • os/bluestore: Add option to check BlueFS reads (pr#39756, Adam Kupczyk)

  • os/bluestore: detect and fix "zombie" spanning blobs using fsck (pr#39255, Igor Fedotov)

  • os/bluestore: fix huge read/writes in BlueFS (pr#39698, Jianpeng Ma, Kefu Chai, Igor Fedotov)

  • os/bluestore: fix inappropriate ENOSPC from avl/hybrid allocator (pr#38475, Igor Fedotov)

  • os/bluestore: fix segfault on out-of-bound offset provided to claim\_… (pr#38637, Igor Fedotov)

  • os/bluestore: go beyond pinned onodes while trimming the cache (pr#39720, Igor Fedotov)

  • os/bluestore: mempool's finer granularity + adding missed structs (pr#38310, Deepika Upadhyay, Igor Fedotov, Adam Kupczyk)

  • osd: Check for nosrub/nodeep-scrub in between chunks, to avoid races (pr#38411, David Zafman)

  • osd: fix bluestore bitmap allocator calculate wrong last_pos with hint (pr#39708, Xue Yantao)

  • osd: optimize PG removal (part1) (pr#38478, Neha Ojha, Igor Fedotov)

  • pybind/ceph_volume_client: Update the 'volumes' key to 'subvolumes' in auth-metadata file (pr#39658, Kotresh HR, Michael Fritch)

  • pybind/cephfs: add special values for not reading conffile (pr#37725, Kefu Chai)

  • pybind/cephfs: fix missing terminating NULL char in readlink()'s C string (pr#38894, Tuan Hoang)

  • pybind/mgr/rbd_support: delay creation of progress module events (pr#38833, Jason Dillaman)

  • qa/cephfs: add session_timeout option support (pr#37840, Xiubo Li)

  • qa/distros: add rhel 7.9 (pr#38188, rakeshgm)

  • qa/tasks/ceph_manager.py: don't use log-early in raw_cluster_cmd (pr#39960, Neha Ojha)

  • qa/tasks/{ceph,ceph_manager}: drop py2 support (pr#37906, Rishabh Dave, Deepika Upadhyay, Kefu Chai)

  • qa: fix tox failures (pr#38627, Patrick Donnelly)

  • qa: krbd_stable_pages_required.sh: move to stable_writes attribute (pr#38834, Ilya Dryomov)

  • qa: restore file name (pr#38772, Patrick Donnelly)

  • qa: unmount volumes before removal (pr#38690, Patrick Donnelly)

  • qa: use normal build for valgrind (pr#39584, Sage Weil)

  • rados/upgrade/nautilus-x-singleton fails due to cluster [WRN] evicting unresponsive client (pr#39706, Patrick Donnelly)

  • rbd-nbd: reexpand the conf meta in child process (pr#38830, Xiubo Li)

  • rbd/bench: include used headers (pr#39123, Kefu Chai)

  • rbd: librbd: ensure that thread pool lock is held when processing throttled IOs (pr#37895, Jason Dillaman)

  • rbd: librbd: update hidden global config when removing pool config override (pr#38831, Jason Dillaman)

  • rgw: Disable prefetch of entire head object when GET request with range header (pr#38556, Or Friedmann)

  • rgw: S3 Put Bucket Policy should return 204 on success (pr#38623, Matthew Oliver)

  • rgw: avoid expiration early triggering caused by overflow (pr#38823, jiahuizeng)

  • rgw: cls/rgw/cls_rgw.cc: fix multiple lastest version problem (pr#38085, Yang Honggang, Ruan Zitao)

  • rgw: cls/user: set from_index for reset stats calls (pr#38822, Mykola Golub, Abhishek Lekshmanan)

  • rgw: distribute cache for exclusive put (pr#38827, Or Friedmann)

  • rgw: fix bucket limit check fill_status warnings (issue#40255, pr#38825, Paul Emmerich)

  • rgw: fix invalid payload issue when serving s3website error page (pr#38590, Ilsoo Byun)

  • rgw: fix trailing null in object names of multipart reuploads (pr#39276, Casey Bodley)

  • rgw: in ordered bucket listing skip namespaced entries internally when possible (pr#38493, J. Eric Ivancich)

  • rgw: keep syncstopped flag when copying bucket shard headers (pr#38589, Ilsoo Byun)

  • rgw: multisite: Verify if the synced object is identical to source (pr#38885, Prasad Krishnan, Yang Honggang, Casey Bodley)

  • rgw: radosgw-admin: clarify error when email address already in use (pr#39661, Matthew Vernon)

  • rgw: rgw-admin: fixes BucketInfo for missing buckets (pr#38588, Nick Janus, caolei)

  • rgw_file: return common_prefixes in lexical order (pr#38828, Matt Benjamin)

  • rpm,deb: change sudoers file mode to 440 (pr#39090, David Turner)

  • rpm: ceph-mgr-dashboard recommends python3-saml on SUSE (pr#38818, Nathan Cutler)

  • run-make-check.sh: Don't run tests if build fails (pr#38295, Brad Hubbard)

  • test/librados: fix endian bugs in checksum test cases (pr#37605, Ulrich Weigand)

  • test/rbd-mirror: fix broken ceph_test_rbd_mirror_random_write (pr#39650, Jason Dillaman)

  • test/run-cli-tests: use cram from github (pr#39072, Kefu Chai)

  • tests: cancelling both noscrub \*and\* nodeep-scrub (pr#39125, Ronen Friedman)

  • tools/rados: add support for binary object names in the rados CLI (pr#39329, Radoslaw Zarzynski, Kefu Chai)

  • tools/rados: flush formatter periodically during json output of "rados ls" (pr#37834, J. Eric Ivancich)

  • vstart.sh: fix fs set max_mds bug (pr#37836, Jinmyeong Lee)