From: Yuri Weinstein Date: Thu, 11 Jun 2026 17:09:25 +0000 (-0700) Subject: doc: tentacle 20.2.2 release notes X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=35447386bac00ae80758a9ba9ecc2b146c2b699f;p=ceph.git doc: tentacle 20.2.2 release notes Resolves: https://tracker.ceph.com/issues/77357 Signed-off-by: Yuri Weinstein --- diff --git a/doc/releases/index.rst b/doc/releases/index.rst index 6d7e201d284..502bdcbaf45 100644 --- a/doc/releases/index.rst +++ b/doc/releases/index.rst @@ -67,6 +67,7 @@ Release timeline .. _Tentacle: tentacle .. _20.2.0: tentacle#v20-2-0-tentacle .. _20.2.1: tentacle#v20-2-1-tentacle +.. _20.2.2: tentacle#v20-2-2-tentacle .. _Squid: squid .. _19.2.0: squid#v19-2-0-squid diff --git a/doc/releases/releases.yml b/doc/releases/releases.yml index 8f72917bec1..b3772b88dbc 100644 --- a/doc/releases/releases.yml +++ b/doc/releases/releases.yml @@ -19,6 +19,8 @@ releases: tentacle: target_eol: 2027-11-18 releases: + - version: 20.2.2 + released: 2026-06-15 - version: 20.2.1 released: 2026-04-06 - version: 20.2.0 diff --git a/doc/releases/tentacle.rst b/doc/releases/tentacle.rst index 7b020e88fd5..1de8b03c012 100644 --- a/doc/releases/tentacle.rst +++ b/doc/releases/tentacle.rst @@ -4,6 +4,261 @@ Tentacle Tentacle is the 20th stable release of Ceph. +v20.2.2 Tentacle +================ + +This is the second minor release in the Tentacle series. We recommend that all users update to this release. + +Release Date +------------ + +June 15, 2026 + +Notable Changes +--------------- + +* Rocky 10 is now supported starting with v20.2.2. Please see the `supported platforms `_ for current and planned support in Ceph. + +MDS (Metadata Server) +--------------------- + +* Upgrade Testing Architecture: Split up existing upgrade sequences into distinct CentOS Stream 9 and Rocky Linux 10 automated test variants across multiple upgrade suites (including parallel, stress-split, and telemetry suites). +* Queueing Logic Update: Retry requests are now added directly to the MDSRank wait queue rather than going through the finisher. +* Optimization: Removed duplicate context completion calls and adjusted scan_stray_dir after refining the MDSContext class. +* Reversion: Reverted a prior change that moved MDSContext completion handling to the finish method. +* Segmentation fault fixed due to incorrect queueing of request retries. + +OSD (Object Storage Daemon) +--------------------------- + +* FastEC Activation: Always updates the pwlc epoch when activating. +* PGLog Missed List: Fixed a bug to ensure the correct version is attached to the missing list when ignoring log entries. +* Data Integrity Asserts: Added assertions to explicitly catch potential corruption in the OSD missing list. +* Data Structure Changes: Modified the rmissing map key type from version_t to eversion_t. +* Rollback & Vector Fixes: Corrected rollback logic for partial write object information (OI) and optimized Erasure Coding (EC) by ensuring Twiddle creates a full-sized vector. + +RGW (RADOS Gateway) +------------------- + +* Lifecycle Management: Fixed lifecycle transition issues affecting encrypted multipart objects. +* Multisite Concurrency: Improved concurrency handling when a value of 1 is provided by the caller, added logging for concurrency state transitions within adj_concurrency, exposed lock latency as a performance counter for data synchronization, and fixed an uninitialized LatencyMonitor average by shifting to an exponentially weighted moving average. +* REST & Query Handling: RESTArgs::get_string() now properly URL-decodes incoming query parameters. + +RADOS / librados / neorados +--------------------------- + +* Linger Operations: Rewrote safety checks to eliminate use-after-free vulnerabilities and LingerOp memory leaks when an unwatch operation returns ENOTCONN. Replaced the flawed is_valid_watch() check with a safe linger_by_cookie() lookup which safely manages LingerOp references using intrusive_ptr. Ensured librados linger callbacks hold a persistent reference to LingerOp to protect against races with simultaneous linger_cancel() requests. Configured librados::IoCtxImpl::aio_unwatch() to asynchronously deliver ENOTCONN to AioCompletion instead of returning the error directly. +* Watch/Notify: Fixed neorados notification queue bounds enforcement so that an overflow marker is only appended on the first message exceeding capacity, rather than duplicating it on every subsequent message. Prevented double-cleanup triggers in watch/notify operations when incoming errors arrive after maybe_cleanup() runs. Fixed a bug where notify would lose original error values by ensuring it no longer attempts to decode empty responses. Enhanced io_context shutdown procedures to clear handlers and route cleanly through linger_cancel to avoid use-after-free states. +* Async Utilities: Fixed an issue regarding the improper removal of objects from the async service list. + +Dashboard +----------------- + +* NVMeoF Revamp: Complete UI overhaul with DHCHAP controller key support, namespace encryption, and secure listeners configuration. +* Pools & RGW: Added stretch cluster validation for pools, fixed RGW restart/stop issues, storage class restrictions, sync policy fixes, and MSR EC Profile support. +* NFS: Toggle visibility for CephFS snapshots, fixed export creation and path value consistency issues + +ceph-volume +----------- + +* Inventory Scanning: Enhanced inventory discovery logic to automatically skip RAM disk devices (/dev/ram*). + +External Block Device (extblkdev) +--------------------------------- + +* Plugin Stability: Fixed an assertion failure in the FCM plugin when encountering multivolume devices. + +Changelog +--------- +* (tentacle) ceph-volume: backport PRs 67047 and 67240 (`pr#67343 `_, Guillaume Abrioux, Parfait Detchenou) +* 20.2.1 (`pr#68185 `_, Ceph Release Team) +* [tentacle] bluestore, extblkdev: Now plugins can raise health warnings (`pr#68663 `_, Adam Kupczyk, Igor Fedotov, Martin Ohmacht) +* Backporting PRs 67236 and 67419 (`pr#67533 `_, Adam King) +* Beacon diff + Stretched cluster (`pr#68347 `_, Leonid Chernin, Samuel Just) +* ceph-volume: include LVM mapper devices in get_devices() (`pr#67989 `_, Guillaume Abrioux) +* ceph-volume: skip /dev/ram\* devices in inventory (`pr#68552 `_, Ujjawal Anand) +* ceph-volume: skip mkfs discard for LVM NVMe OSDs (`pr#68286 `_, Ujjawal Anand) +* ceph-volume: skip redundant NVMe mkfs discards (`pr#67341 `_, Ujjawal Anand) +* ceph-volume: skip virtual cdrom devices in inventory (`pr#68108 `_, Ujjawal Anand) +* ceph.spec.in: replace golang github prometheus with promtool binary path (`pr#68420 `_, Nizamudeen A) +* ceph_mon: Fix shutdown order to destroy Monitor before closing mon store (`pr#68399 `_, Prashant D) +* cephadm: wait for latest osd map after ceph-volume before OSD deploy (`pr#68379 `_, Guillaume Abrioux) +* cephfs: MDCache request cleanup (`pr#66469 `_, Abhishek Lekshmanan) +* Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (`pr#66027 `_, Suyash Dongre) +* client: adjust `Fb` cap ref count check during synchronous fsync() (`issue#73624 `_, `pr#65913 `_, Venky Shankar) +* client: crash caused by invalid iterator in _readdir_cache_cb (`pr#65957 `_, Zhansong Gao) +* container/build.sh: add 'rocky-10' suffix if necessary (`pr#67895 `_, Dan Mick) +* container/build.sh: FROM_IMAGE=rockylinux-10 default for >=tentacle backports (`pr#67960 `_, Matan Breizman, David Galloway, John Mulligan, Dan Mick) +* debian: package mgr/smb in ceph-mgr-modules-core (`pr#67510 `_, Roland Sommer) +* debian: remove invoke-rc.d calls from postrm scripts (`pr#67354 `_, Kefu Chai) +* debian: remove stale distutils override from py3dist-overrides (`pr#68276 `_, Thomas Lamprecht, Max R. Carrara, Kefu Chai) +* doc: Batch backport for start/hardware-recommendations.rst (`pr#67907 `_, Anthony D'Atri, Marc Methot, Pierre Riteau, Ville Ojamo) +* extblkdev: Fix FCM plugin asserting on multivolume devices (`pr#68877 `_, Adam Kupczyk) +* found duplicate series for the match group {fs_id="-1"} (`pr#68369 `_, bst2002git) +* Implement Admin REST APIs for Setting Account Quota (`pr#66905 `_, Nicholas Liu, Jiffin Tony Thottan) +* kv/RocksDB: Add instrumentation to BinnedLRUCache (`pr#67349 `_, Adam Kupczyk) +* libcephsqlite: ensure atexit handlers are registered after openssl (`pr#68263 `_, Patrick Donnelly) +* librbd/cache/pwl: WriteLogOperationSet::cell can be garbage (`pr#67705 `_, Ilya Dryomov) +* librbd/migration/QCOWFormat: avoid use-after-free in execute_request() (`pr#68188 `_, Ilya Dryomov) +* librbd/mirror: detect trashed snapshots in UnlinkPeerRequest (`pr#67583 `_, Ilya Dryomov) +* librbd: avoid losing sparseness in read_parent() (`pr#68463 `_, Ilya Dryomov) +* librbd: don't complete ImageUpdateWatchers::shut_down() prematurely (`pr#67581 `_, Ilya Dryomov) +* librbd: rbd_aio_write_with_crc32c (`pr#68038 `_, Alexander Indenbaum) +* mds: add ref counting to LogSegment (`pr#68439 `_, Milind Changire) +* mds: add retry request to MDSRank wait queue rather via finisher (`issue#76031 `_, `pr#68905 `_, Venky Shankar) +* mds: scrub pins more inodes than the mds_cache_memory_limit (`pr#67808 `_, Md Mahamudur Rahaman Sajib) +* mds: use SimpleLock::WAIT_ALL for wait mask (`pr#68313 `_, Patrick Donnelly) +* mgr/cephadm: Add KMIP server support for NVMeoF gateway (`pr#68086 `_, Gil Bregman) +* mgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec (`pr#66933 `_, Alexander Indenbaum) +* mgr/cephadm: fix mgmt-gateway startup on IPv6 VIP (`pr#68387 `_, Kobi Ginon) +* mgr/cephadm: include cluster FSID in root CA Common Name (CN) (`pr#64692 `_, Redouane Kachach, Kushal Deb) +* mgr/cephadm: serialize OSD class before returning for OSD rm status (`pr#69226 `_, Adam King) +* mgr/DaemonServer: Implement ok-to-upgrade command (`pr#66948 `_, Sridhar Seshasayee) +* mgr/DaemonServer: Limit search for OSDs to upgrade within the crush bucket (`pr#68350 `_, Sridhar Seshasayee) +* mgr/dashboard : Add bottom padding for dashboard screens (`pr#68523 `_, Abhishek Desai) +* mgr/dashboard : add stretch cluster validation for pools form (`pr#68476 `_, Afreen Misbah, Abhishek Desai) +* mgr/dashboard : Fix RGW restart/stop issue (`pr#68554 `_, Abhishek Desai) +* mgr/dashboard : fix-non-versioning-bucket-issue (`pr#68520 `_, Abhishek Desai) +* mgr/dashboard : Fixes EC profile used pool empty (`pr#68730 `_, Abhishek Desai) +* mgr/dashboard : Restrict create storage class with existing name (`pr#68475 `_, Abhishek Desai) +* mgr/dashboard: [RGW-NFS]: User level export creation via UI fails with 500 - Internal Server Error (`pr#67013 `_, Dnyaneshwari Talwekar) +* mgr/dashboard: [snap-visibility]Edit Client config option remains stuck in loading when nfs user is configured (`pr#68542 `_, Dnyaneshwari Talwekar) +* mgr/dashboard: [storage-class]: Deleting local storage class from UI does not remove its entry from zone (`pr#67949 `_, Dnyaneshwari Talwekar) +* mgr/dashboard: Add DHCHAP controller key to NVME host commands (`pr#67600 `_, Gil Bregman) +* mgr/dashboard: add helper text to bucket form > policy and other spacing fixes (`pr#67871 `_, Naman Munet) +* mgr/dashboard: Add location to gateway info command in NVMeoF CLI (`pr#68345 `_, Gil Bregman) +* mgr/dashboard: Add namespace encryption support to NVMeoF CLI (`pr#68339 `_, Gil Bregman) +* mgr/dashboard: Add nvmeof_top_cli service (`pr#67566 `_, Vallari Agrawal) +* mgr/dashboard: Add option to edit zone with keys/ (`pr#68317 `_, Aashish Sharma) +* mgr/dashboard: Add option to set motd via api (`pr#68678 `_, Aashish Sharma) +* mgr/dashboard: Add overview page (`pr#67840 `_, Afreen Misbah, Devika Babrekar, Aashish Sharma, Abhishek Desai, Naman Munet, Nizamudeen A) +* mgr/dashboard: Add port and secure-listeners to subsystem add NVMeoF CLI command (`pr#68370 `_, Vallari Agrawal, Gil Bregman) +* mgr/dashboard: Add restore events in notification screen (`pr#67912 `_, pujashahu, pujaoshahu) +* mgr/dashboard: Add secure and verify-host-name to "listener add" on NVMeoF CLI (`pr#67799 `_, Gil Bregman) +* mgr/dashboard: Adding rados ns option into add_ns_req (`pr#67470 `_, gadi-didi) +* mgr/dashboard: Allow empty port value when adding a listener in NVMEoF CLI (`pr#68766 `_, Gil Bregman) +* mgr/dashboard: Batch backport nvmeof revamp (`pr#67839 `_, Afreen Misbah, Nizamudeen A, Sagar Gopale, pujaoshahu, Puja Shahu, Ville Ojamo) +* mgr/dashboard: Bump lodash (`pr#68695 `_, Afreen Misbah) +* mgr/dashboard: bump nvmeof submodule to 1.6.5 (`pr#67326 `_, Vallari Agrawal, Tomer Haskalovitch) +* mgr/dashboard: carbonize-osd-flags-modal (`pr#68133 `_, Afreen Misbah, Sagar Gopale) +* mgr/dashboard: Difference in "path" value observed when rgw user level export created via dashboard vs cli (`pr#68583 `_, Dnyaneshwari Talwekar) +* mgr/dashboard: fix subvolume group corruption from smb share form (`pr#68103 `_, Nizamudeen A) +* mgr/dashboard: Fix tags in subvolume list and subvolume groups list (`pr#68382 `_, pujaoshahu) +* mgr/dashboard: Making 'ISA' as default plugin for EC profiles created through dashboard (`pr#68373 `_, Devika Babrekar) +* mgr/dashboard: mgr/dashboard: Carbonize Realm Name and Token block in Multi-site Replication Wizard (`pr#68546 `_, Sagar Gopale) +* mgr/dashboard: Misleading warning when no eligible devices are available for OSD creation (`pr#67637 `_, Naman Munet) +* mgr/dashboard: nfs export creation fails with obj deserialization (`pr#67564 `_, Nizamudeen A) +* mgr/dashboard: NFS: Toggle visibility of CephFS snapshots (`pr#67636 `_, Afreen Misbah, Dnyaneshwari Talwekar) +* mgr/dashboard: Option to select archive option while Import Multi-site Token (`pr#68513 `_, Aashish Sharma) +* mgr/dashboard: remove sync_from entry when sync_from_all is true (`pr#68536 `_, Aashish Sharma) +* mgr/dashboard: Rename Alert breadcrumb to Alert Rules (`pr#68238 `_, Sagar Gopale) +* mgr/dashboard: sync policy created for a bucket in Object >> Multi-site >> Sync-policy, is not reflecting under bucket's replication (`pr#68512 `_, Naman Munet) +* mgr/dashboard:Adding MSR EC Profile via dashboard (`pr#68349 `_, Devika Babrekar) +* mgr/smb: fix error handling for fundamental resource parsing (`pr#65861 `_, John Mulligan) +* mgr/test_orchestrator: fixing daemon_action method signature (`pr#69231 `_, Redouane Kachach) +* mgr: add config to load modules in main interpreter instead of subinterpreter (`pr#67515 `_, Nitzan Mordhai, Nitzan Mordechai, Samuel Just) +* mgr: ensure that all modules have started before advertising active mgr (`pr#67850 `_, Laura Flores) +* mgr: fix continous smb MgrDBNotReady (`pr#68598 `_, Pedro Gonzalez Gomez) +* mgr: fix PyObject\* refcounting in TTLCache and cleanup logic (`pr#66482 `_, Nitzan Mordechai) +* mgr: isolated CherryPy to prevent global state sharing (`pr#67465 `_, Nizamudeen A, Anmol Babu) +* mon [stretch-mode]: Allow a max bucket weight diff threshold (`pr#67790 `_, Kamoltat Sirivadhna, Kamoltat (Junior) Sirivadhna) +* mon/AuthMonitor: add osd w cap for superuser client (`pr#68314 `_, Venky Shankar, Patrick Donnelly) +* monitoring: Fix application overview to show Raw used (`pr#68794 `_, Ankush Behl) +* mr/dashboard: remove rgw_servers filter from radosgw-sync-overview grafana dashboard (`pr#68604 `_, Aashish Sharma) +* neorados: Fix Neorados CephContext leak (`pr#67513 `_, Adam C. Emerson) +* neorados: specify alignments for aligned_storage (`pr#67512 `_, Casey Bodley) +* neorados: Various Fixes to Watch/Notify (`pr#68776 `_, Adam C. Emerson, Casey Bodley) +* node-proxy: major refactor and various fixes (`pr#67418 `_, Guillaume Abrioux) +* nvmeof: Change the NVMEOF image version to 1.6 (`pr#68415 `_, Gil Bregman) +* nvmeofgw: fix issue of delete all gws from the pool/group (`pr#67942 `_, Leonid Chernin) +* orch/cephadm: fix osd.default creation (`pr#68121 `_, Guillaume Abrioux) +* os/bluestore: track compression\_\*blob_size\* parameters for online update (`pr#67888 `_, Igor Fedotov) +* os/bluestore:fix bluestore_volume_selection_reserved_factor usage (`pr#66837 `_, Igor Fedotov) +* osd/scrub: support an operator-abort command (`pr#67031 `_, Ronen Friedman) +* osd: add pg-upmap-primary to clean_pg_upmaps (`pr#67407 `_, Laura Flores) +* osd: Avoid assertion on empty object read when reading multiple objects (`pr#68714 `_, Alex Ainscow) +* osd: Avoid pwlc spanning intervals (`pr#68708 `_, Bill Scales) +* osd: Change rmissing map key from version_t to eversion_t (`pr#68716 `_, Alex Ainscow) +* osd: Deleting PG should discard pwlc (`pr#68709 `_, Bill Scales) +* osd: FastEC: always update pwlc epoch when activating (`pr#68710 `_, Bill Scales) +* osd: Fix bug when calculating min_peer_features (`pr#69159 `_, Bill Scales) +* osd: Fix incorrect rollback logic for partial write OI (`pr#68715 `_, Alex Ainscow) +* osd: PGLog Attach correct version to missing list when ignoring log entries (`pr#68718 `_, Alex Ainscow) +* osd: Twiddle should create a full sized vector for optimized EC (`pr#68717 `_, Alex Ainscow) +* pybind/mgr: call new _ceph_exit for killpoints (`pr#68518 `_, Patrick Donnelly) +* pybind/mgr: update modules to use independent CLICommand subtypes with distinct COMMAND attributes (`pr#67511 `_, Kefu Chai, Samuel Just) +* qa/cephadm: derive container image from cephadm release (`pr#68328 `_, Lumir Sliva) +* qa/cephfs: lua to respect missing kernel in yaml (`pr#67293 `_, Kyr Shatskyy) +* qa/cephfs: treat "implicit declaration of function" for blogbench workunit for newer gcc version (`issue#75380 `_, `pr#68820 `_, Venky Shankar) +* qa/distros: add rocky 10.0 as supported distro/container host (`pr#68569 `_, Patrick Donnelly, Casey Bodley, Adam King, David Galloway) +* qa/radosgw_admin: replace boto2 with boto3 (`pr#68739 `_, Adam C. Emerson, Casey Bodley) +* qa/rgw/multisite: remove duplicate test_suspended_delete_marker_incremental_sync (`pr#68846 `_, Oguzhan Ozmen) +* qa/rgw/upgrade: symlinks are explicit about distro versions (`pr#68057 `_, Casey Bodley) +* qa/rgw: Revive crypt kmip (`pr#68371 `_, Kyr Shatskyy) +* qa/suites/fs: fix extraneous distro links (`pr#69251 `_, Patrick Donnelly) +* qa/suites/upgrade: ignore osd in unknown state (`pr#69307 `_, Patrick Donnelly) +* qa/suites/upgrade: ignore undersized PG during stress splits (`pr#69310 `_, Patrick Donnelly) +* qa/suites/upgrade: update upgrade paths and exclude rocky10 from non-supported distros (`pr#68660 `_, Yaarit Hatuka, Laura Flores) +* qa/suites: remove centos restriction from valgrind yaml (`issue#18126 `_, `issue#20360 `_, `pr#67519 `_, Samuel Just) +* qa/suites: use tagged version of reef (`pr#68357 `_, Laura Flores) +* qa/tasks/backfill_toofull.py: Fix assert failures with & without compression (`pr#68118 `_, Sridhar Seshasayee) +* qa/tasks/keystone: upgrade keystone to 2025.2 (`pr#67757 `_, Kyr Shatskyy) +* qa/tasks/quiescer: remove racy assertion (`pr#68510 `_, Patrick Donnelly) +* qa/tasks: capture CommandCrashedError when running nvme list cmd (`pr#69232 `_, Redouane Kachach) +* qa/tasks: make rbd_mirror_thrash inherit from ThrasherGreenlet (`pr#67795 `_, Ilya Dryomov) +* qa/tasks: update egrep to 'grep -E' (`pr#67518 `_, Nitzan Mordechai, Samuel Just) +* qa/workunits/ceph-helpers-root: Add Rocky support for install packages (`pr#67507 `_, Nitzan Mordechai) +* qa/workunits/rbd: drop racy assert in test_tasks_recovery() (`pr#68190 `_, Ilya Dryomov) +* qa/workunits: Add updated kernel archive URL (`pr#68169 `_, Brad Hubbard) +* qa: add 'refresh' config to cephadm.wait_for_service (`pr#67038 `_, Vallari Agrawal) +* qa: add MDS_INSUFFICIENT_STANDBY to ignorelist (`pr#69036 `_, Patrick Donnelly) +* qa: Add nvmeof upgrade from v20.2.0 (`pr#68149 `_, Vallari Agrawal) +* qa: allow multiple mgr sessions during eviction test (`pr#68316 `_, Patrick Donnelly) +* qa: cephfs suite changes for rocky (`pr#68374 `_, Patrick Donnelly) +* qa: Fix coredumps caused by udisks (`pr#67526 `_, Vallari Agrawal) +* qa: Fix nvmeof 'errors during thrashing' (`pr#68148 `_, Vallari Agrawal) +* qa: fix setting rbd_sparse_read_threshold_bytes in test_migration_clone() (`pr#68617 `_, Ilya Dryomov) +* qa: fix TypeError in delay (`pr#67617 `_, Jos Collin) +* qa: fixing cephadm mgmt-gateway test to remove openssl dependency (`pr#67820 `_, Redouane Kachach) +* qa: ignore cephadm failed daemon warnings during thrashing (`pr#69309 `_, Patrick Donnelly) +* qa: ignore POOL_FULL for rbd tests exercising full pools (`pr#69304 `_, Patrick Donnelly) +* qa: install nvme-cli only if distro remains rocky10 (`pr#69252 `_, Patrick Donnelly) +* qa: krbd_rxbounce.sh: do more reads to generate more errors (`pr#67455 `_, Ilya Dryomov) +* qa: Leak_StillReachable RocksDB error_handler (`pr#68524 `_, Nitzan Mordechai) +* qa: rbd_mirror_fsx_compare.sh doesn't error out as expected (`pr#67797 `_, Ilya Dryomov) +* qa: Remove cephadm e2e tests from teuthology (`pr#68818 `_, Afreen Misbah) +* qa: resolve py3.12 regression for random.sample (`pr#68315 `_, Patrick Donnelly) +* qa: suppress false positive delete map mismatch errors (`pr#68431 `_, Casey Bodley, Nitzan Mordechai) +* qa: suppress MismatchedFree operator delete RocksDB (`pr#67508 `_, Nitzan Mordechai) +* rgw/beast: use strand executor for timeout timer to prevent concurrent socket access (`pr#68506 `_, Oguzhan Ozmen) +* rgw/lc: Do not delete DM if its at end of pagination list (`pr#67573 `_, kchheda3) +* rgw/multisite: check the local bucket's versioning status when replicating deletion from remote (`pr#66168 `_, Jane Zhu) +* RGW/multisite: fix bucket-full-sync infinite loop caused by stale bucket_list_result reuse (`pr#67923 `_, Oguzhan Ozmen) +* RGW/Multisite: fix uninitialized LatencyMonitor causing spurious "OSD cluster is overloaded" warning (`pr#68803 `_, Oguzhan Ozmen) +* rgw/s3: Always include x-amz-content-sha256 header in AWS v4 signatures (`pr#66358 `_, Shilpa Jagannath, Matthew N. Heler) +* rgw/tests: add os-specific java 1.7 install commands to keycloak task (`pr#67982 `_, J. Eric Ivancich) +* rgw/website: preserve nameservers for future use in dnsmasq (`pr#67061 `_, Kyr Shatskyy) +* rgw/zone: remove duplicated startup logic in RGWSI_Zone (`pr#66300 `_, Casey Bodley) +* rgw: bucket logging fixes (`pr#66769 `_, Nithya Balachandran, N Balachandran, Yuval Lifshitz, Casey Bodley) +* RGW: Change prerequest hook to run after authorization process (`pr#68594 `_, Emin Sunacoglu) +* rgw: discard olh\_ attributes when copying object from a versioning-suspended bucket to a versioning-disabled bucket (`pr#65557 `_, Jane Zhu) +* rgw: fix 'bucket stats' when bucket index doesn't exist (`pr#68505 `_, Casey Bodley) +* rgw: fix lifecycle transition of encrypted multipart objects (`pr#68826 `_, Marcus Watts) +* rgw: handle plain-text object tags in RGWObjTags::decode() (`pr#67927 `_, Oguzhan Ozmen) +* rgw: java s3-tests change setting of JAVA_HOME (`pr#68226 `_, J. Eric Ivancich) +* rgw: read_obj_policy() consults s3:prefix when deciding between 403/404 (`pr#68651 `_, Casey Bodley) +* RGW: remove custom copy constructor for RGWObjectCtx and enforce no copy/move (`pr#67440 `_, Oguzhan Ozmen) +* src/ceph-volume: fast device unavailable as error (`pr#67916 `_, Timothy Q Nguyen) +* test/rgw/kafka: fix kafka relase to more recent one (`pr#67993 `_, Yuval Lifshitz) +* test/rgw/lua: ignore hours for zero mtime (`pr#67468 `_, Kyr Shatskyy) +* test/rgw/notification: do not use netstat in the code (`pr#68142 `_, Yuval Lifshitz) +* test/rgw/notification: fix the cloudevents package version (`pr#68704 `_, Yuval Lifshitz, Adam C. Emerson) +* test/rgw: remove depracated boto dependency (`pr#68344 `_, Yuval Lifshitz) +* test: use json_extract instead of awkward json_tree (`pr#67321 `_, Patrick Donnelly) +* This change introduces the shared memory communication (SMC-D) for the cluster network (`pr#68254 `_, Aliaksei Makarau) +* tools/ceph-kvstore-tool: fix crash on db close (`pr#68406 `_, Igor Fedotov, Max Kellermann) +* upgrade suites update for Rocky10 and missing centos (`pr#68733 `_, Nitzan Mordechai) + v20.2.1 Tentacle ================