v14.2.8 Nautilus released

TheAnalyst

This is the eighth update to the Ceph Nautilus release series. This release fixes issues across a range of subsystems. We recommend that all users upgrade to this release.

Notable Changes

  • The default value of bluestore_min_alloc_size_ssd has been changed to 4K to improve performance across all workloads.

  • The following OSD memory config options related to bluestore cache autotuning can now be configured during runtime:

    • osd_memory_base (default: 768 MB)
    • osd_memory_cache_min (default: 128 MB)
    • osd_memory_expected_fragmentation (default: 0.15)
    • osd_memory_target (default: 4 GB)

    The above options can be set with:

    ceph config set osd <option> <value>

  • The MGR now accepts profile rbd and profile rbd-read-only user caps. These caps can be used to provide users access to MGR-based RBD functionality such as rbd perf image iostat an rbd perf image iotop.

  • The configuration value osd_calc_pg_upmaps_max_stddev used for upmap balancing has been removed. Instead use the mgr balancer config upmap_max_deviation which now is an integer number of PGs of deviation from the target PGs per OSD. This can be set with a command like ceph config set mgr mgr/balancer/upmap_max_deviation 2. The default upmap_max_deviation is 5. There are situations where crush rules would not allow a pool to ever have completely balanced PGs. For example, if crush requires 1 replica on each of 3 racks, but there are fewer OSDs in 1 of the racks. In those cases, the configuration value can be increased.

  • RGW: a mismatch between the bucket notification documentation and the actual message format was fixed. This means that any endpoints receiving bucket notification, will now receive the same notifications inside a JSON array named ‘Records’. Note that this does not affect pulling bucket notification from a subscription in a ‘pubsub’ zone, as these are already wrapped inside that array.

  • CephFS: multiple active MDS forward scrub is now rejected. Scrub currently only is permitted on a file system with a single rank. Reduce the ranks to one via ceph fs set <fs_name> max_mds 1.

  • Ceph now refuses to create a file system with a default EC data pool. For further explanation, see: https://docs.ceph.com/docs/nautilus/cephfs/createfs/#creating-pools

  • Ceph will now issue a health warning if a RADOS pool has a pg_num value that is not a power of two. This can be fixed by adjusting the pool to a nearby power of two:

    ceph osd pool set <pool-name> pg_num <new-pg-num>

    Alternatively, the warning can be silenced with:

    ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false

Changelog

  • bluestore: common/options: bluestore 4k min_alloc_size for SSD (pr#32998, Mark Nelson, Sage Weil)

  • bluestore: os/bluestore: Add config observer for osd memory specific options (pr#31852, Sridhar Seshasayee)

  • bluestore: os/bluestore/BlueStore.cc: set priorities for compression stats (pr#32845, Neha Ojha)

  • bluestore: os/bluestore: default bluestore_block_size 1T -> 100G (pr#32283, Sage Weil)

  • build/ops: cmake: remove seastar tests from “make check” (pr#32658, Kefu Chai)

  • build/ops: install-deps,rpm: enable devtoolset-8 on aarch64 also (issue#38892, pr#32651, Kefu Chai)

  • build/ops: rpm: add rpm-build to SUSE-specific make check deps (pr#32208, Nathan Cutler)

  • build/ops: switch to boost 1.72 (pr#32441, Willem Jan Withagen, Kefu Chai)

  • build/ops: tools/setup-virtualenv.sh: do not default to python2.7 (pr#30739, Nathan Cutler)

  • cephfs: cephfs-journal-tool: fix crash and usage (pr#32913, Xiubo Li)

  • cephfs: client: Add is_dir() check before changing directory (pr#32916, Varsha Rao)

  • cephfs: client: add procession of SEEK_HOLE and SEEK_DATA in lseek (pr#30764, Shen Hang)

  • cephfs: client: add warning when cap != in->auth_cap (pr#32065, Shen Hang)

  • cephfs: client: EINVAL may be returned when offset is 0 (pr#30762, wenpengLi)

  • cephfs: client: fix lazyio_synchronize() to update file size and libcephfs: Add Tests for LazyIO (pr#30769, Sidharth Anupkrishnan)

  • cephfs: client: _readdir_cache_cb() may use the readdir_cache already clear (issue#41148, pr#30763, huanwen ren)

  • cephfs: client: remove Inode.dir_contacts field and handle bad whence value to llseek gracefully (pr#30766, Jeff Layton)

  • cephfs,common: osdc/objecter: Fix last_sent in scientific format and add age to ops (pr#31081, Varsha Rao)

  • cephfs: disallow changing fuse_default_permissions option at runtime (pr#32915, Zhi Zhang)

  • cephfs: mds: add command that config individual client session (issue#40811, pr#32245, “Yan, Zheng”)

  • cephfs: mds: “apply configuration changes through MDSRank” and “recall caps from quiescent sessions” and “drive cap recall while dropping cache” (pr#30761, Patrick Donnelly, Jeff Layton)

  • cephfs: mds: fix assert(omap_num_objs <= MAX_OBJECTS) of OpenFileTable (pr#32756, “Yan, Zheng”)

  • cephfs: mds: fix revoking caps after after stale->resume circle (pr#32909, “Yan, Zheng”)

  • cephfs: mds: free heap memory may grow too large for some workloads (pr#31802, Patrick Donnelly)

  • cephfs: MDSMonitor: warn if a new file system is being created with an EC default data pool (pr#32600, Patrick Donnelly)

  • cephfs: mds: no assert on frozen dir when scrub path (pr#32071, Zhi Zhang)

  • cephfs: mds: note client features when rejecting client (pr#32914, Patrick Donnelly)

  • cephfs: mds/OpenFileTable: match MAX_ITEMS_PER_OBJ to osd_deep_scrub_large_omap_object_key_threshold (pr#32921, Vikhyat Umrao, Varsha Rao)

  • cephfs: mds: properly evaluate unstable locks when evicting client (pr#32073, “Yan, Zheng”)

  • cephfs: mds: reject forward scrubs when cluster has multiple active MDS (more than one rank) (pr#32602, Patrick Donnelly, Milind Changire)

  • cephfs: mds: reject sessionless messages (issue#40784, pr#30843, “Yan, Zheng”, Xiao Guodong, Shen Hang)

  • cephfs: mds: remove unnecessary debug warning (pr#32077, Patrick Donnelly)

  • cephfs: mds returns -5(EIO) error when the deleted file does not exist (pr#30767, huanwen ren)

  • cephfs: mds: split the dir if the op makes it oversized, because some ops maybe in flight (pr#31302, simon gao)

  • cephfs: mds: tolerate no snaprealm encoded in on-disk root inode (pr#32079, “Yan, Zheng”)

  • cephfs: mgr: “mds metadata” to setup new DaemonState races with fsmap (pr#31905, Patrick Donnelly)

  • cephfs: mgr/volumes: allow setting uid, gid of subvolume and subvolume group during creation (issue#42923, pr#31741, Venky Shankar, Jos Collin)

  • cephfs: mgr/volumes: fetch trash and clone entries without blocking volume access (issue#44282, pr#33526, Venky Shankar)

  • cephfs: mgr/volumes: fs subvolume resize command (pr#31332, Jos Collin)

  • cephfs: mgr/volumes: misc fix and feature enhancements (issue#42646, issue#43645, pr#33122, Rishabh Dave, Joshua Schmid, Venky Shankar, Ramana Raja, Jos Collin)

  • cephfs: mgr/volumes: unregister job upon async threads exception (issue#44315, pr#33569, Venky Shankar)

  • cephfs: mon: print FSMap regardless of file system count (pr#32912, Patrick Donnelly)

  • cephfs: pybind/mgr/volumes: idle connection drop is not working (pr#33116, Patrick Donnelly)

  • cephfs: RuntimeError: Files in flight high water is unexpectedly low (0 / 6) (pr#33115, Patrick Donnelly)

  • ceph.in: check ceph-conf returncode (pr#31367, Dimitri Savineau)

  • ceph-monstore-tool: correct the key for storing mgr_command_descs (pr#33278, Kefu Chai)

  • ceph-volume: add db and wal support to raw mode (pr#32979, Sébastien Han)

  • ceph-volume: add methods to pass filters to pvs, vgs and lvs commands (pr#33217, Rishabh Dave)

  • ceph-volume: add raw (–bluestore) mode (pr#32733, Jan Fajerski, Sage Weil)

  • ceph-volume: add sizing arguments to prepare (pr#33231, Jan Fajerski)

  • ceph-volume: allow raw block devices everywhere (pr#32868, Jan Fajerski)

  • ceph-volume: assume msgrV1 for all branches containing mimic (pr#31616, Jan Fajerski)

  • ceph-volume: avoid calling zap_lv with a LV-less VG (pr#33297, Jan Fajerski)

  • ceph-volume: batch bluestore fix create_lvs call (pr#33232, Jan Fajerski)

  • ceph-volume: batch bluestore fix create_lvs call (pr#33301, Jan Fajerski)

  • ceph-volume/batch: fail on filtered devices when non-interactive (pr#33202, Jan Fajerski)

  • ceph-volume: Dereference symlink in lvm list (pr#32877, Benoît Knecht)

  • ceph-volume: don’t remove vg twice when zapping filestore (pr#33337, Jan Fajerski)

  • ceph-volume: finer grained availability notion in inventory (pr#33240, Jan Fajerski)

  • ceph-volume: fix has_bluestore_label() function (pr#33239, Guillaume Abrioux)

  • ceph-volume: fix is_ceph_device for lvm batch (pr#33253, Jan Fajerski, Dimitri Savineau)

  • ceph-volume: fix the integer overflow (pr#32873, dongdong tao)

  • ceph-volume: import mock.mock instead of unittest.mock (py2) (pr#32870, Jan Fajerski)

  • ceph-volume/lvm/activate.py: clarify error message: fsid refers to osd_fsid (pr#32864, Yaniv Kaul)

  • ceph-volume: lvm/deactivate: add unit tests, remove –all (pr#32863, Jan Fajerski)

  • ceph-volume: lvm deactivate command (pr#33209, Jan Fajerski)

  • ceph-volume: make get_devices fs location independent (pr#33200, Jan Fajerski)

  • ceph-volume: minor clean-up of “simple scan” subcommand help (pr#32556, Michael Fritch)

  • ceph-volume: pass journal_size as Size not string (pr#33334, Jan Fajerski)

  • ceph-volume: refactor listing.py + fixes (pr#33238, Jan Fajerski, Rishabh Dave, Guillaume Abrioux)

  • ceph-volume: reject disks smaller then 5GB in inventory (issue#40776, pr#31554, Jan Fajerski)

  • ceph-volume: skip osd creation when already done (pr#33242, Guillaume Abrioux)

  • ceph-volume/test: patch VolumeGroups (pr#32558, Jan Fajerski)

  • ceph-volume: use correct extents if using db-devices and >1 osds_per_device (pr#32874, Fabian Niepelt)

  • ceph-volume: use fsync for dd command (pr#31553, Rishabh Dave)

  • ceph-volume: use get_device_vgs in has_common_vg (pr#33254, Jan Fajerski)

  • ceph-volume: util: look for executable in $PATH (pr#32860, Shyukri Shyukriev)

  • ceph-volume/zfs: add the inventory command (pr#31295, Willem Jan Withagen)

  • common/admin_socket: Increase socket timeouts (pr#32063, Brad Hubbard)

  • common/bl: fix the dangling last_p issue (pr#33277, Radoslaw Zarzynski)

  • common/config: update values when they are removed via mon (pr#32846, Sage Weil)

  • common: FIPS: audit and switch some memset & bzero users (pr#32167, Radoslaw Zarzynski)

  • common: fix deadlocky inflight op visiting in OpTracker (pr#32858, Radoslaw Zarzynski)

  • common/options: remove unused ms_msgr2_{sign,encrypt} (pr#31850, Ilya Dryomov)

  • common/util: use ifstream to read from /proc files (pr#32901, Kefu Chai, songweibin)

  • core: auth/Crypto: fallback to /dev/urandom if getentropy() fails (pr#31301, Kefu Chai)

  • core: mon: keep v1 address type when explicitly set (pr#32028, Ricardo Dias)

  • core: mon/OSDMonitor: Fix pool set target_size_bytes (etc) with unit suffix (pr#31740, Prashant D)

  • core: osd/OSDMap: health alert for non-power-of-two pg_num (pr#30689, Sage Weil)

  • crush/CrushWrapper: behave with empty weight vector (pr#32905, Kefu Chai)

  • doc/cephfs/client-auth: description and example are inconsistent (pr#32781, Ilya Dryomov)

  • doc/cephfs: improve add/remove MDS section (issue#39620, pr#31116, Patrick Donnelly)

  • doc/ceph-fuse: mention -k option in ceph-fuse man page (pr#30765, Rishabh Dave)

  • doc/ceph-volume: initial docs for zfs/inventory and zfs/api (pr#32746, Willem Jan Withagen)

  • doc: remove invalid option mon_pg_warn_max_per_osd (pr#31300, zhang daolong)

  • doc/_templates/page.html: redirect to etherpad (pr#32248, Neha Ojha)

  • doc: wrong datatype describing crush_rule (pr#32254, Kefu Chai)

  • global: disable THP for Ceph daemons (pr#31646, Patrick Donnelly, Mark Nelson)

  • kv: fix shutdown vs async compaction (pr#32715, Sage Weil)

  • librbd: diff iterate with fast-diff now correctly includes parent (pr#32469, Jason Dillaman)

  • librbd: fix rbd_open_by_id, rbd_open_by_id_read_only (pr#32837, yangjun)

  • librbd: remove pool objects when removing a namespace (pr#32839, Jason Dillaman)

  • librbd: skip stale child with non-existent pool for list descendants (pr#32841, songweibin)

  • librbd: support compression allocation hints to the OSD (pr#32842, Jason Dillaman)

  • mgr: add ‘rbd’ profiles to support ‘rbd_support’ module commands (pr#32086, Jason Dillaman)

  • mgr/alerts: simple health alerts (pr#30820, Sage Weil)

  • mgr: Balancer fixes (pr#31956, Neha Ojha, Kefu Chai, David Zafman)

  • mgr/DaemonServer: fix ‘osd ok-to-stop’ for EC pools (pr#32844, Sage Weil)

  • mgr/dashboard: add debug mode, and accept expected exception when SSL handshaking (pr#31190, Kefu Chai, Ernesto Puerta, Joshua Schmid)

  • mgr/dashboard: block mirroring page results in internal server error (pr#32133, Jason Dillaman)

  • mgr/dashboard: check embedded Grafana dashboard references (issue#40008, pr#31808, Kiefer Chang)

  • mgr/dashboard: check if user has config-opt permissions (pr#32827, Alfonso Martínez)

  • mgr/dashboard: Cross sign button not working for some modals (pr#32012, Ricardo Marques)

  • mgr/dashboard: Dashboard can’t handle self-signed cert on Grafana API (pr#31792, Volker Theile)

  • mgr/dashboard: disable ‘Add Capability’ button in rgw user edit (pr#32930, Alfonso Martínez)

  • mgr/dashboard: fix restored RBD image naming issue (pr#31810, Kiefer Chang)

  • mgr/dashboard: grafana charts match time picker selection (pr#31999, Alfonso Martínez)

  • mgr/dashboard,grafana: remove shortcut menu (pr#31980, Ernesto Puerta)

  • mgr/dashboard: Handle always-on Ceph Manager modules correctly (pr#31782, Volker Theile)

  • mgr/dashboard: Hardening accessing the metadata (pr#32128, Volker Theile)

  • mgr/dashboard: iSCSI targets not available if any gateway is down (and more…) (pr#32304, Ricardo Marques)

  • mgr/dashboard: KeyError on dashboard reload (pr#32233, Patrick Seidensal)

  • mgr/dashboard: key-value-table doesn’t render booleans (pr#31789, Patrick Seidensal)

  • mgr/dashboard: Remove compression mode unset in pool from (pr#31784, Stephan Müller)

  • mgr/dashboard: show “Rename” in header & button when renaming RBD (pr#31779, Alfonso Martínez)

  • mgr/dashboard: sort monitors by open sessions correctly (pr#31791, Alfonso Martínez)

  • mgr/dashboard: Standby Dashboards don’t handle all requests properly (pr#32299, Volker Theile)

  • mgr/dashboard: Trim IQN on iSCSI target form (pr#31942, Ricardo Marques)

  • mgr/dashboard: Unable to set boolean values to false when default is true (pr#31941, Ricardo Marques)

  • mgr/dashboard: Using wrong identifiers in RGW user/bucket datatables (pr#32888, Volker Theile)

  • mgr/devicehealth: ensure we don’t store empty objects (pr#31735, Sage Weil)

  • mgr/devicehealth: fix telemetry stops sending device reports after 48 hours (pr#33346, Yaarit Hatuka, Sage Weil)

  • mgr: drop reference to msg on return (pr#33498, Patrick Donnelly)

  • mgr/MgrClient: fix open condition (pr#32769, Sage Weil)

  • mgr/pg_autoscaler: calculate pool_pg_target using pool size (pr#33170, Dan van der Ster)

  • mgr/pg_autoscaler: default to pg_num[_min] = 16 (pr#32069, Sage Weil)

  • mgr/pg_autoscaler: default to pg_num[_min] = 32 (pr#32931, Neha Ojha)

  • mgr/pg_autoscaler: implement shutdown method (pr#32068, Patrick Donnelly)

  • mgr/pg_autoscaler: only generate target_* health warnings if targets set (pr#32067, Sage Weil)

  • mgr/prometheus: assign a value to osd_dev_node when obj_store is not filestore or bluestore (pr#31556, jiahuizeng)

  • mgr/prometheus: report per-pool pg states (pr#33157, Aleksei Zakharov)

  • mgr/telemetry: anonymizing smartctl report itself (pr#33082, Yaarit Hatuka)

  • mgr/telemetry: check get_metadata return val (pr#33095, Yaarit Hatuka)

  • mgr/telemetry: split entity_name only once (handle ids with dots) (pr#33168, Dan Mick)

  • mgr/zabbix: Adds possibility to send data to multiple zabbix servers (pr#30009, slivik, Jakub Sliva)

  • mon/ConfigMonitor: fix handling of NO_MON_UPDATE settings (pr#32856, Sage Weil)

  • mon/ConfigMonitor: only propose if leader (pr#33155, Sage Weil)

  • mon: Don’t put session during feature change (pr#33152, Brad Hubbard)

  • mon: elector: return after triggering a new election (pr#33007, Greg Farnum)

  • monitoring: wait before firing osd full alert (pr#32070, Patrick Seidensal)

  • mon/MgrMonitor.cc: add always_on_modules to the output of “ceph mgr module ls” (pr#32997, Neha Ojha)

  • mon/MgrMonitor.cc: warn about missing mgr in a cluster with osds (pr#33142, Neha Ojha)

  • mon/OSDMonitor: Don’t update mon cache settings if rocksdb is not used (pr#32520, Sridhar Seshasayee, Sage Weil)

  • mon/OSDMonitor: fix format error ceph osd stat –format json (pr#32062, Zheng Yin)

  • mon/PGMap.h: disable network stats in dump_osd_stats (pr#32466, Neha Ojha, David Zafman)

  • mon: remove the restriction of address type in init_with_hosts (pr#31844, Hao Xiong)

  • mon/Session: only index osd ids >= 0 (pr#32908, Sage Weil)

  • mount.ceph: give a hint message when no mds is up or cluster is laggy (pr#32910, Xiubo Li)

  • mount.ceph: remove arbitrary limit on size of name= option (pr#32807, Jeff Layton)

  • msg: async/net_handler.cc: Fix compilation (pr#31736, Carlos Valiente)

  • osd: add osd_fast_shutdown option (default true) (pr#32743, Sage Weil)

  • osd: Allow 64-char hostname to be added as the “host” in CRUSH (pr#33147, Michal Skalski)

  • osd: Diagnostic logging for upmap cleaning (pr#32716, David Zafman)

  • osd/OSD: enhance osd numa affinity compatibility (pr#32843, luo rixin, Dai zhiwei)

  • osd/PeeringState.cc: don’t let num_objects become negative (pr#32857, Neha Ojha)

  • osd/PeeringState.cc: skip peer_purged when discovering all missing (pr#32847, Neha Ojha)

  • osd/PeeringState: do not exclude up from acting_recovery_backfill (pr#32064, Nathan Cutler, xie xingguo)

  • osd/PrimaryLogPG: skip obcs that don’t exist during backfill scan_range (pr#31028, Sage Weil)

  • osd: set affinity for *all* threads (pr#31359, Sage Weil)

  • osd: set collection pool opts on collection create, pg load (pr#32123, Sage Weil)

  • osd: Use physical ratio for nearfull (doesn’t include backfill resserve) (pr#32773, David Zafman)

  • pybind/mgr: Cancel output color control (pr#31697, Zheng Yin)

  • rbd: creating thick-provision image progress percent info exceeds 100% (pr#32840, Xiangdong Mu)

  • rbd: librbd: don’t call refresh from mirror::GetInfoRequest state machine (pr#32900, Mykola Golub)

  • rbd-mirror: clone v2 mirroring improvements (pr#31518, Mykola Golub)

  • rbd-mirror: fix ‘rbd mirror status’ asok command output (pr#32447, Mykola Golub)

  • rbd-mirror: make logrotate work (pr#32593, Mykola Golub)

  • rgw: add bucket permission verify when copy obj (pr#31089, NancySu05)

  • rgw: Adding ‘iam’ namespace for Role and User Policy related REST APIs (pr#32437, Pritha Srivastava)

  • rgw: adding mfa code validation when bucket versioning status is changed (pr#32759, Pritha Srivastava)

  • rgw: add num_shards to radosgw-admin bucket stats (pr#31182, Paul Emmerich)

  • rgw: allow reshard log entries for non-existent buckets to be cancelled (pr#32056, J. Eric Ivancich)

  • rgw: auto-clean reshard queue entries for non-existent buckets (pr#32055, J. Eric Ivancich)

  • rgw: build_linked_oids_for_bucket and build_buckets_instance_index should return negative value if it fails (pr#32820, zhangshaowen)

  • rgw: crypt: permit RGW-AUTO/default with SSE-S3 headers (pr#31862, Matt Benjamin)

  • rgw: data sync markers include timestamp from datalog entry (pr#32819, Casey Bodley)

  • rgw_file: avoid string::front() on empty path (pr#33008, Matt Benjamin)

  • rgw: fix a bug that bucket instance obj can’t be removed after resharding completed (pr#32822, zhang Shaowen)

  • rgw: fix an endless loop error when to show usage (pr#31684, lvshuhua)

  • rgw: fix bugs in listobjectsv1 (pr#32239, Albin Antony)

  • rgw: fix compile errors with boost 1.70 (pr#31289, Casey Bodley)

  • rgw: fix data consistency error casued by rgw sent timeout (pr#32821, 李纲彬82225)

  • rgw: fix list versions starts with version_id=null (pr#30743, Tianshan Qu)

  • rgw: fix one part of the bulk delete(RGWDeleteMultiObj_ObjStore_S3) fails but no error messages (pr#33151, Snow Si)

  • rgw: fix opslog operation field as per Amazon s3 (issue#20978, pr#32834, Jiaying Ren)

  • rgw: fix refcount tags to match and update object’s idtag (pr#30741, J. Eric Ivancich)

  • rgw: fix rgw crash when token is not base64 encode (pr#32050, yuliyang)

  • rgw: gc remove tag after all sub io finish (issue#40903, pr#30733, Tianshan Qu)

  • rgw: Incorrectly calling ceph::buffer::list::decode_base64 in bucket policy (pr#32832, GaryHyg)

  • rgw: maybe coredump when reload operator happened (pr#33149, Richard Bai(白学余))

  • rgw: move forward marker even in case of many rgw.none indexes (pr#32824, Ilsoo Byun)

  • rgw multisite: fixes for concurrent version creation (pr#32057, Or Friedmann, Casey Bodley)

  • rgw: prevent bucket reshard scheduling if bucket is resharding (pr#31298, J. Eric Ivancich)

  • rgw/pubsub: fix records/event json format to match documentation (pr#32221, Yuval Lifshitz)

  • rgw: radosgw-admin: sync status displays id of shard furthest behind (pr#32818, Casey Bodley)

  • rgw: return error if lock log shard fails (pr#32825, zhangshaowen)

  • rgw/rgw_rest_conn.h: fix build with clang (pr#32489, Bernd Zeimetz)

  • rgw: Select the std::bitset to resolv ambiguity (pr#32504, Willem Jan Withagen)

  • rgw: support radosgw-admin zone/zonegroup placement get command (pr#32835, jiahuizeng)

  • rgw: the http response code of delete bucket should not be 204-no-content (pr#32833, Chang Liu)

  • rgw: update s3-test download code for s3-test tasks (pr#32229, Ali Maredia)

  • rgw: update the hash source for multipart entries during resharding (pr#33183, dongdong tao)

  • rgw: url encode common prefixes for List Objects response (pr#32058, Abhishek Lekshmanan)

  • rgw: when resharding store progress json (pr#31683, Mark Kogan, Mark Nelson)

  • selinux: Allow ceph to read udev db (pr#32259, Boris Ranto)