v12.2.13 Luminous released

TheAnalyst

This is the 13th bug fix release of the Luminous v12.2.x long term stable release series. We recommend that all users upgrade to this release.

Notable Changes

  • Ceph now packages python bindings for python3.6 instead of python3.4, because EPEL7 recently switched from python3.4 to python3.6 as the native python3. see the announcement  for more details on the background of this change.

  • We now have telemetry support via a ceph-mgr module. The telemetry module is absolutely on an opt-in basis, and is meant to collect generic cluster information and push it to a central endpoint. By default, we’re pushing it to a project endpoint at https://telemetry.ceph.com/report, but this is customizable using by setting the ‘url’ config option with:

    ceph telemetry config-set url ''

    You will have to opt-in on sharing your information with:

    ceph telemetry on

    You can view exactly what information will be reported first with:

    ceph telemetry show

    Should you opt-in, your information will be licensed under the Community Data License Agreement - Sharing - Version 1.0, which you can read at https://cdla.io/sharing-1-0/

    The telemetry module reports information about CephFS file systems, including:

    • how many MDS daemons (in total and per file system)
    • which features are (or have been) enabled
    • how many data pools
    • approximate file system age (year + month of creation)
    • how much metadata is being cached per file system

    As well as:

    • whether IPv4 or IPv6 addresses are used for the monitors
    • whether RADOS cache tiering is enabled (and which mode)
    • whether pools are replicated or erasure coded, and which erasure code profile plugin and parameters are in use
    • how many RGW daemons, zones, and zonegroups are present; which RGW frontends are in use
    • aggregate stats about the CRUSH map, like which algorithms are used, how big buckets are, how many rules are defined, and what tunables are in use
  • A health warning is now generated if the average osd heartbeat ping time exceeds a configurable threshold for any of the intervals computed. The OSD computes 1 minute, 5 minute and 15 minute intervals with average, minimum and maximum values. New configuration option mon_warn_on_slow_ping_ratio specifies a percentage of osd_heartbeat_grace to determine the threshold. A value of zero disables the warning. New configuration option mon_warn_on_slow_ping_time specified in milliseconds over-rides the computed value, causes a warning when OSD heartbeat pings take longer than the specified amount. New admin command ceph daemon mgr.# dump_osd_network [threshold] command will list all connections with a ping time longer than the specified threshold or value determined by the config options, for the average for any of the 3 intervals. New admin command ceph daemon osd.# dump_osd_network [threshold] will do the same but only including heartbeats initiated by the specified OSD.

  • 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 1. 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.

Changelog

  • bluestore: >2GB bluefs writes (pr#28965, kungf, Kefu Chai, Sage Weil)
  • bluestore: Inspect allocations (pr#29539, Neha Ojha, Adam Kupczyk)
  • bluestore: [AFTER: #28644] luminous: os/bluestore: default to bitmap allocator for bluestore/bluefs (pr#28972, Igor Fedotov)
  • bluestore: add bluestore_ignore_data_csum option (pr#26247, Sage Weil)
  • bluestore: apply shared_alloc_size to shared device with log level change (pr#29910, Vikhyat Umrao, Josh Durgin, Igor Fedotov, Sage Weil)
  • bluestore: avoid length overflow in extents returned by Stupid Alloc (issue#40703, pr#29025, Igor Fedotov)
  • bluestore: call fault_range properly prior to looking for blob to … (pr#27529, Igor Fedotov)
  • bluestore: common/options: Set concurrent bluestore rocksdb compactions to 2 (pr#30149, Mark Nelson)
  • bluestore: dump before “no spanning blob id” abort (pr#28030, Igor Fedotov)
  • bluestore: fix assertion in StupidAllocator::get_fragmentation (pr#32523, Lei Liu, Igor Fedotov)
  • bluestore: fix duplicate allocations in bmap allocator (issue#40080, pr#28644, Igor Fedotov)
  • bluestore: fix improper setting of STATE_KV_SUBMITTED (pr#31674, Igor Fedotov)
  • bluestore: fix length overflow (issue#39247, pr#27365, Jianpeng Ma)
  • bluestore: fix out-of-bound access in bmap allocator (pr#27739, Igor Fedotov)
  • bluestore: load OSD all compression settings unconditionally (issue#40480, pr#28895, Igor Fedotov)
  • bluestore: os/bluestore/BitmapFreelistManager: disable bluestore_debug_freelist (pr#27459, Sage Weil)
  • bluestore: os/bluestore_tool: bluefs-bdev-expand: indicate bypassed for main dev (pr#27912, Igor Fedotov)
  • bluestore: test/store_test: fix/workaround for BlobReuseOnOverwriteUT and garbageCollection (pr#27056, Igor Fedotov)
  • build/ops: admin/build-doc: use python3 (pr#30665, Kefu Chai, Jason Dillaman)
  • build/ops: admin/build-doc: use python3 (follow-on fix) (pr#30690, Nathan Cutler)
  • build/ops: backport miscellaneous install-deps.sh and ceph.spec.in fixes from master (issue#13997, issue#37707, issue#18163, issue#22998, pr#30722, Yao Guotao, Tomasz Setkowski, Andrey Parfenov, Alfredo Deza, Kefu Chai, Nathan Cutler, Yunchuan Wen, Zack Cerza, Brad Hubbard, Loic Dachary)
  • build/ops: ceph-test RPM not built for SUSE (pr#29736, Nathan Cutler)
  • build/ops: cmake: pass -march to detect compiler support of arm64 crc/crypto (issue#36080, issue#17516, pr#24169, Kefu Chai)
  • build/ops: do_cmake.sh: source not found (issue#40004, issue#39981, pr#28216, Nathan Cutler)
  • build/ops: install-deps.sh: Remove CR repo (issue#13997, pr#30129, Brad Hubbard, Alfredo Deza)
  • build/ops: python-cephfs should depend on python-rados (issue#37612, issue#24918, pr#27950, Kefu Chai)
  • build/ops: python3-cephfs should provide python36-cephfs (pr#30981, Kefu Chai)
  • build/ops: rpm: Build with lttng on openSUSE (issue#39332, pr#27618, Nathan Cutler)
  • build/ops: rpm: explicitly declare python-tox build dependency (pr#31934, Nathan Cutler)
  • ceph-volume: assume msgrV1 for all branches containing mimic (pr#32796, Jan Fajerski)
  • ceph-volume: batch functional idempotency test fails since message is now on stderr (pr#29791, Jan Fajerski)
  • ceph-volume: broken assertion errors after pytest changes (pr#28929, Alfredo Deza)
  • ceph-volume: do not fail when trying to remove crypt mapper (pr#30556, Guillaume Abrioux)
  • ceph-volume: does not recognize wal/db partitions created by ceph-disk (pr#29462, Jan Fajerski)
  • ceph-volume: fix stderr failure to decode/encode when redirected (pr#30299, Alfredo Deza)
  • ceph-volume: fix warnings raised by pytest (pr#30677, Rishabh Dave)
  • ceph-volume: lvm list is O(n^2) (pr#30094, Rishabh Dave)
  • ceph-volume: lvm.activate: Return an error if WAL/DB devices absent (pr#29038, David Casier)
  • ceph-volume: lvm.zap fix cleanup for db partitions (issue#40664, pr#30302, Dominik Csapak)
  • ceph-volume: missing string substitution when reporting mounts (issue#40978, pr#29351, Shyukri Shyukriev)
  • ceph-volume: pre-install python-apt and its variants before test runs (pr#30296, Alfredo Deza)
  • ceph-volume: prints errors to stdout with –format json (issue#38548, pr#29508, Jan Fajerski)
  • ceph-volume: prints log messages to stdout (pr#29603, Jan Fajerski, Kefu Chai, Alfredo Deza)
  • ceph-volume: set a lvm_size property on the fakedevice fixture (pr#30331, Andrew Schoen)
  • ceph-volume: simple: when ‘type’ file is not present activate fails (pr#29415, Alfredo Deza)
  • ceph-volume: tests add a sleep in tox for slow OSDs after booting (pr#28927, Alfredo Deza)
  • ceph-volume: tests set the noninteractive flag for Debian (pr#29901, Alfredo Deza)
  • ceph-volume: update testing playbook ‘deploy.yml’ (pr#29075, Andrew Schoen, Guillaume Abrioux)
  • ceph-volume: use the Device.rotational property instead of sys_api (pr#28519, Andrew Schoen)
  • ceph-volume: use the OSD identifier when reporting success (pr#29771, Alfredo Deza)
  • ceph-volume: zap always skips block.db, leaves them around (issue#40664, pr#30305, Alfredo Deza)
  • cephfs: client: _readdir_cache_cb() may use the readdir_cache already clear (issue#41148, pr#30934, huanwen ren)
  • cephfs: client: ceph.dir.rctime xattr value incorrectly prefixes 09 to the nanoseconds component (issue#40166, pr#28502, David Disseldorp)
  • cephfs: client: clean up error checking and return of _lookup_parent (issue#40085, pr#28437, Jeff Layton)
  • cephfs: client: return -EIO when sync file which unsafe reqs have been dropped (issue#40877, pr#30242, simon gao)
  • cephfs: client: unlink dentry for inode with llref=0 (issue#40960, pr#29830, Xiaoxi CHEN)
  • cephfs: kclient: nofail option not supported (pr#28436, Kenneth Waegeman)
  • cephfs: mds/server: check directory split after rename (issue#39198, issue#38994, pr#27801, Shen Hang)
  • cephfs: mds: add command that config individual client session (issue#40811, pr#31573, “Yan, Zheng”)
  • cephfs: mds: add reference when setting Connection::priv to existing session (pr#31049, “Yan, Zheng”)
  • cephfs: mds: avoid trimming too many log segments after mds failover (issue#40028, pr#28543, simon gao)
  • cephfs: mds: better output of ‘ceph health detail’ (issue#39266, pr#27848, Shen Hang)
  • cephfs: mds: check dir fragment to split dir if mkdir makes it oversized (pr#29829, Erqi Chen)
  • cephfs: mds: cleanup truncating inodes when standby replay mds trim log segments (pr#31286, “Yan, Zheng”)
  • cephfs: mds: dont print subtrees if they are too big or too many (pr#27679, Rishabh Dave)
  • cephfs: mds: drop reconnect message from non-existent session (issue#39191, issue#39026, pr#27737, Shen Hang)
  • cephfs: mds: fix corner case of replaying open sessions (pr#28536, “Yan, Zheng”)
  • cephfs: mds: initialize cap_revoke_eviction_timeout with conf (issue#38844, issue#39208, pr#27840, simon gao)
  • cephfs: mds: msg weren’t destroyed before handle_client_reconnect returned, if the reconnect msg was from non-existent session (issue#40588, issue#40807, pr#29097, Shen Hang)
  • cephfs: mds: remove superfluous error in StrayManager::advance_delayed() (issue#38679, pr#28432, “Yan, Zheng”)
  • cephfs: mds: reset heartbeat inside big loop (pr#28544, “Yan, Zheng”)
  • cephfs: mds: there is an assertion when calling Beacon::shutdown() (issue#38822, pr#28438, huanwen ren)
  • cephfs: mount: key parsing fail when doing a remount (issue#40163, pr#29226, Luis Henriques)
  • cephfs: pybind/ceph_volume_client: remove ceph mds calls in favor of ceph fs calls (issue#22038, issue#22524, pr#28445, Patrick Donnelly, Ramana Raja)
  • cephfs: qa/cephfs: relax min_caps_per_client check (issue#38270, issue#38686, pr#27040, “Yan, Zheng”)
  • cephfs: qa: misc cache drop fixes (issue#38340, issue#38445, pr#27342, Patrick Donnelly)
  • common/config: hold lock while accessing mutable container (pr#30345, Jason Dillaman)
  • common: Keyrings created by ceph auth get are not suitable for ceph auth import (issue#40548, issue#22227, pr#28742, Kefu Chai)
  • common: common/ceph_context: avoid unnecessary wait during service thread shutdown (pr#31020, Jason Dillaman)
  • common: common/options.cc: Lower the default value of osd_deep_scrub_large_omap_object_key_threshold (pr#29175, Neha Ojha)
  • common: common/util: handle long lines in /proc/cpuinfo (issue#38296, pr#32349, Sage Weil)
  • common: compressor/zstd: improvements (pr#28647, Adam C. Emerson, Sage Weil)
  • common: data race in OutputDataSocket (issue#40188, issue#40266, pr#29202, Casey Bodley)
  • core: ENOENT in collection_move_rename on EC backfill target (issue#36739, issue#38880, pr#28110, Neha Ojha)
  • core: Health warnings on long network ping times (issue#40586, issue#40640, pr#30230, xie xingguo, David Zafman)
  • core: Revert “crush: remove invalid upmap items” (pr#32019, David Zafman)
  • core: backport recent messenger fixes (issue#39243, issue#38242, issue#39448, pr#27583, xie xingguo, Jason Dillaman)
  • core: ceph tell osd.xx bench help : gives wrong help (issue#39006, issue#39373, pr#28112, Neha Ojha)
  • core: ceph-objectstore-tool: rename dump-import to dump-export (issue#39343, issue#39284, pr#27636, David Zafman)
  • core: crc cache should be invalidated when posting preallocated rx buffers (issue#38436, pr#29248, Ilya Dryomov)
  • core: crush/CrushWrapper: ensure crush_choose_arg_map.size == max_buckets (issue#38664, issue#38719, pr#27085, Sage Weil)
  • core: crush: remove invalid upmap items (pr#31234, huangjun)
  • core: lazy omap stat collection (pr#29190, Brad Hubbard)
  • core: mds,osd,mon,msg: use intrusive_ptr for holding Connection::priv (issue#20924, pr#29859, Shinobu Kinjo, Kefu Chai, Jianpeng Ma, Samuel Just)
  • core: mgr/localpool: pg_num is an int arg to ‘osd pool create’ (pr#30446, Sage Weil)
  • core: mgr/prometheus: assign a value to osd_dev_node when obj_store is not filestore or bluestore (pr#31587, jiahuizeng)
  • core: mon, osd: parallel clean_pg_upmaps (issue#40229, issue#40104, pr#28594, xie xingguo)
  • core: mon,osd: limit MOSDMap messages by size as well as map count (issue#38276, pr#28640, Sage Weil)
  • core: mon/OSDMonitor: trim not-longer-exist failure reporters (pr#30905, NancySu05)
  • core: mon: Error message displayed when mon_osd_max_split_count would be exceeded is not as user-friendly as it could be (issue#39353, issue#39563, pr#27908, Nathan Cutler, Brad Hubbard)
  • core: mon: ensure prepare_failure() marks no_reply on op (pr#30519, Joao Eduardo Luis)
  • core: mon: mon/AuthMonitor: don’t validate fs caps on authorize (pr#28666, Joao Eduardo Luis)
  • core: msg: output peer address when detecting bad CRCs (issue#39367, pr#27858, Greg Farnum)
  • core: osd/OSDMap.cc: don’t output over/underfull messages to lderr (pr#31598, Neha Ojha)
  • core: osd/OSDMap: Replace get_out_osds with get_out_existing_osds (issue#39154, issue#39420, pr#27728, Brad Hubbard)
  • core: osd/OSDMap: do not trust partially simplified pg_upmap_item (pr#30926, xie xingguo)
  • core: osd/PG: Add PG to large omap log message (pr#30922, Brad Hubbard)
  • core: osd/PG: discover missing objects when an OSD peers and PG is degraded (pr#27751, Jonas Jelten)
  • core: osd/PGLog: preserve original_crt to check rollbackability (issue#38894, issue#38905, issue#36739, issue#39042, pr#27715, Neha Ojha)
  • core: osd/PeeringState: recover_got - add special handler for empty log (pr#30896, xie xingguo)
  • core: osd/PrimaryLogPG: skip obcs that don’t exist during backfill scan_range (pr#31030, Sage Weil)
  • core: osd/ReplicatedBackend.cc: 1321: FAILED assert(get_parent()->get_log().get_log().objects.count(soid) && (get_parent()->get_log().get_log().objects.find(soid)->second->op == pg_log_entry_t::LOST_REVERT) && (get_parent()->get_log().get_log().object (issue#39537, issue#26958, pr#28989, xie xingguo)
  • core: osd/ReplicatedBackend.cc: 1349: FAILED ceph_assert(peer_missing.count(fromshard)) (pr#31855, Neha Ojha, xie xingguo)
  • core: osd/bluestore: Actually wait until completion in write_sync (pr#29564, Vitaliy Filippov)
  • core: osd: Better error message when OSD count is less than osd_pool_default_size (issue#38617, issue#38585, pr#30298, Vikhyat Umrao, Kefu Chai, Sage Weil, zjh)
  • core: osd: Diagnostic logging for upmap cleaning (pr#32666, 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#39218, issue#38931, issue#38784, pr#27878, xie xingguo)
  • core: osd: Fix for compatibility of encode/decode of osd_stat_t (pr#31277, David Zafman)
  • core: osd: Include dups in copy_after() and copy_up_to() (issue#39304, pr#28185, David Zafman)
  • core: osd: Remove unused osdmap flags full, nearfull from output (issue#22350, pr#30902, Gu Zhongyan, David Zafman)
  • core: osd: add hdd, ssd and hybrid variants for osd_snap_trim_sleep (pr#31857, Neha Ojha)
  • core: osd: clear PG_STATE_CLEAN when repair object (pr#30271, Zengran Zhang)
  • core: osd: fix out of order caused by letting old msg from down osd be processed (pr#31293, Mingxin Liu)
  • core: osd: merge replica log on primary need according to replica log’s crt (pr#30917, Zengran Zhang)
  • core: osd: refuse to start if we’re > N+2 from recorded require_osd_release (issue#38076, pr#31858, Sage Weil)
  • core: osd: report omap/data/metadata usage (issue#40638, pr#28851, Sage Weil)
  • core: osd: rollforward may need to mark pglog dirty (issue#40403, pr#31036, Zengran Zhang)
  • core: osd: scrub error on big objects; make bluestore refuse to start on big objects (pr#30785, Sage Weil, David Zafman)
  • core: osd: shutdown recovery_request_timer earlier (issue#39204, pr#27810, Zengran Zhang)
  • core: pybind: Rados.get_fsid() returning bytes in python3 (issue#38873, issue#38381, pr#27674, Jason Dillaman)
  • core: should report EINVAL in ErasureCode::parse() if m<=0 (issue#38682, issue#38750, pr#28111, Sage Weil)
  • doc: Minor rados related documentation fixes (issue#38896, issue#38902, pr#27185, David Zafman)
  • doc: Missing Documentation for radosgw-admin reshard commands (man pages) (issue#40092, issue#21617, pr#28329, Orit Wasserman)
  • doc: Update layout.rst (pr#26381, ypdai)
  • doc: describe metadata_heap cleanup (issue#18174, pr#30071, Dan van der Ster)
  • doc: doc/rbd: s/guess/xml/ for codeblock lexer (pr#31091, Kefu Chai)
  • doc: doc/rgw: document CreateBucketConfiguration for s3 PUT Bucket api (issue#39597, pr#31647, Casey Bodley)
  • doc: doc/rgw: document use of ‘realm pull’ instead of ‘period pull’ (issue#39655, pr#30132, Casey Bodley)
  • doc: fixed –read-only argument value in multisite doc (pr#31655, Chenjiong Deng)
  • doc: osd_recovery_priority is not documented (but osd_recovery_op_priority is) (pr#27471, David Zafman)
  • doc: update bluestore cache settings and clarify data fraction (issue#39522, pr#31257, Jan Fajerski)
  • doc: wrong datatype describing crush_rule (pr#32267, Kefu Chai)
  • doc: wrong value of usage log default in logging section (issue#37892, issue#37856, pr#29015, Abhishek Lekshmanan)
  • mgr: Change default upmap_max_deviation to 5 (pr#32586, David Zafman)
  • mgr: Release GIL and Balancer fixes (pr#31992, Kefu Chai, Noah Watkins, David Zafman)
  • mgr: mgr/BaseMgrModule: drop GIL in set_config (issue#39040, issue#36766, pr#27808, John Spray, xie xingguo, Sage Weil)
  • mgr: mgr/balancer: blame if upmap won’t actually work (issue#38781, pr#26498, xie xingguo)
  • mgr: mgr/balancer: python3 compatibility issue (pr#31104, Mykola Golub)
  • mgr: mgr/prometheus: Cast collect_timeout (scrape_interval) to float (pr#31107, Ben Meekhof)
  • mgr: mgr/prometheus: replace whitespaces in metrics’ names (pr#31105, Alfonso Martínez)
  • mgr: DaemonServer::handle_conf_change - broken locking (issue#38899, issue#38962, pr#29213, xie xingguo)
  • mgr: pybind/mgr: Cancel output color control (pr#31696, Zheng Yin)
  • mgr: restful: Query nodes_by_id for items (pr#31272, Boris Ranto)
  • mgr: telemetry module for mgr (issue#37976, pr#32135, Joao Eduardo Luis, Wido den Hollander, Kefu Chai, Sage Weil, Dan Mick)
  • rbd: Reduce log level for cls/journal and cls/rbd expected errors (issue#40865, pr#30857, Jason Dillaman)
  • rbd: journal: properly advance read offset after skipping invalid range (pr#28811, Mykola Golub)
  • rbd: krbd: avoid udev netlink socket overrun and retry on transient errors from udev_enumerate_scan_devices() (issue#39089, pr#31360, Zhi Zhang, Ilya Dryomov)
  • rbd: krbd: return -ETIMEDOUT in polling (issue#38792, issue#38975, pr#27536, Dongsheng Yang)
  • rbd: librbd: add missing shutdown states to managed lock helper (issue#38387, issue#38508, pr#28158, Jason Dillaman)
  • rbd: librbd: async open/close should free ImageCtx before issuing callback (issue#39427, issue#39031, pr#28126, Jason Dillaman)
  • rbd: librbd: disable image mirroring when moving to trash (pr#28149, Mykola Golub)
  • rbd: librbd: ensure compare-and-write doesn’t skip compare after copyup (issue#38440, issue#38383, pr#28134, Ilya Dryomov)
  • rbd: librbd: improve object map performance under high IOPS workloads (issue#38674, issue#38538, pr#28137, Jason Dillaman)
  • rbd: librbd: properly track in-flight flush requests (issue#40574, pr#28773, Jason Dillaman)
  • rbd: librbd: race condition possible when validating RBD pool (issue#38500, issue#38564, pr#28140, Jason Dillaman)
  • rbd: rbd-mirror: clear out bufferlist prior to listing mirror images (issue#39460, issue#39407, pr#28124, Jason Dillaman)
  • rbd: rbd-mirror: don’t overwrite status error returned by replay (pr#29874, Mykola Golub)
  • rbd: rbd-mirror: handle duplicates in image sync throttler queue (issue#40592, issue#40519, pr#28812, Mykola Golub)
  • rbd: rbd-mirror: ignore errors relating to parsing the cluster config file (pr#30118, Jason Dillaman)
  • rbd: rbd-mirror: make logrotate work (pr#32599, Mykola Golub)
  • rbd: rbd/action: fix error getting positional argument (issue#40095, pr#29295, songweibin)
  • rbd: tools/rbd-ggate: close log before running postfork (pr#30858, Willem Jan Withagen)
  • rbd: use the ordered throttle for the export action (issue#40435, pr#30856, Jason Dillaman)
  • rgw: Adding tcp_nodelay option to Beast (issue#38925, pr#27424, Or Friedmann)
  • rgw: GetBucketCORS API returns Not Found error code when CORS configuration does not exist (issue#38887, issue#26964, pr#27123, yuliyang, ashitakasam)
  • rgw: LC: handle resharded buckets (pr#29122, Abhishek Lekshmanan)
  • rgw: RGWCoroutine::call(nullptr) sets retcode=0 (pr#30329, Casey Bodley)
  • rgw: TempURL should not allow PUTs with the X-Object-Manifest (issue#20797, pr#31652, Radoslaw Zarzynski)
  • rgw: add list user admin OP API (pr#30984, Oshyn Song)
  • rgw: allow radosgw-admin to list bucket w –allow-unordered (pr#31220, J. Eric Ivancich)
  • rgw: civetweb frontend: response is buffered in memory if content length is not explicitly specified (issue#39615, issue#12713, pr#28069, Robin H. Johnson)
  • rgw: cls/rgw: raise debug level of bi_log_iterate_entries output (issue#40559, pr#27974, Casey Bodley)
  • rgw: cls/user: cls_user_set_buckets_info overwrites creation_time (issue#39635, pr#31648, Casey Bodley)
  • rgw: conditionally allow builtin users with non-unique email addresses (issue#40089, issue#40506, pr#28717, Matt Benjamin)
  • rgw: crypt: permit RGW-AUTO/default with SSE-S3 headers (pr#31860, Matt Benjamin)
  • rgw: datalog/mdlog trim commands loop until done (pr#29713, Casey Bodley)
  • rgw: delete_obj_index() takes mtime for bilog (issue#24991, pr#31649, Casey Bodley)
  • rgw: don’t crash on missing /etc/mime.types (issue#38920, issue#38328, pr#27332, Casey Bodley)
  • rgw: don’t throw when accept errors are happening on frontend (pr#30147, Yuval Lifshitz)
  • rgw: failed to pass test_bucket_create_naming_bad_punctuation in s3test (issue#39360, issue#39358, issue#23587, issue#26965, pr#27668, yuliyang, Abhishek Lekshmanan)
  • rgw: fix bucket may redundantly list keys after BI_PREFIX_CHAR (issue#39984, issue#40149, pr#28408, Tianshan Qu, Casey Bodley)
  • rgw: fix cls_bucket_list_unordered() partial results (pr#30254, Mark Kogan)
  • rgw: fix drain handles error when deleting bucket with bypass-gc option (pr#30198, dongdong tao)
  • rgw: fix issue for CreateBucket with BucketLocation param (pr#29826, Enming Zhang, Matt Benjamin)
  • rgw: fix read not exists null version return wrong (issue#38811, issue#38908, pr#27330, Tianshan Qu)
  • rgw: fix refcount tags to match and update object’s idtag (pr#30323, J. Eric Ivancich)
  • rgw: gc use aio (issue#24592, pr#28784, Yehuda Sadeh, Zhang Shaowen, Yao Zongyou, Jesse Williamson)
  • rgw: get or set realm zonegroup zone need check user’s caps (issue#37497, pr#28332, yuliyang, Casey Bodley)
  • rgw: housekeeping of reset stats operation in radosgw-admin and cls back-end (pr#30674, J. Eric Ivancich)
  • rgw: inefficient unordered bucket listing (issue#39409, issue#39393, pr#28350, Casey Bodley)
  • rgw: lc: continue past get_obj_state() failure (pr#32194, Matt Benjamin)
  • rgw: make dns hostnames matching case insensitive (issue#40995, pr#30375, Casey Bodley, Abhishek Lekshmanan)
  • rgw: mitigate bucket list with max-entries excessively high (pr#30666, J. Eric Ivancich)
  • rgw: multisite: ‘radosgw-admin bucket sync status’ should call syncs_from(source.name) instead of id (issue#40022, issue#40143, pr#29271, Casey Bodley)
  • rgw: orphans find perf improvments (issue#39180, pr#28314, Abhishek Lekshmanan)
  • rgw: parse_copy_location defers url-decode (issue#27217, pr#31651, Casey Bodley)
  • rgw: policy fix for nonexistent objects (issue#38638, pr#29153, Pritha Srivastava)
  • rgw: remove_olh_pending_entries() does not limit the number of xattrs to remove (issue#39118, issue#39177, pr#28349, Casey Bodley)
  • rgw: resolve bugs and clean up garbage collection code (issue#38454, pr#31664, Dan Hill, J. Eric Ivancich)
  • rgw: return ERR_NO_SUCH_BUCKET early while evaluating bucket policy (issue#38420, pr#31218, Abhishek Lekshmanan)
  • rgw: rgw-admin: fix data sync report for master zone (issue#38958, pr#27453, cfanz)
  • rgw: rgw-admin: object stat command output’s delete_at not readable (issue#39497, pr#27991, Abhishek Lekshmanan)
  • rgw: rgw/OutputDataSocket: actually discard data on full buffer (issue#40178, pr#31654, Matt Benjamin)
  • rgw: rgw/multisite: Don’t allow certain radosgw-admin commands to run on non-master zone (issue#39548, pr#30946, Danny Al-Gaaf, Shilpa Jagannath)
  • rgw: rgw_file: save etag and acl info in setattr (issue#39227, pr#27881, Tao Chen)
  • rgw: rgw_sync: drop ENOENT error logs from mdlog (issue#40032, issue#38748, pr#27110, Abhishek Lekshmanan)
  • rgw: set null version object acl issues (issue#36763, pr#31653, Tianshan Qu)
  • rgw: the Multi-Object Delete operation of S3 API wrongly handles the Code response element (issue#18241, issue#40135, pr#29269, Radoslaw Zarzynski)
  • rgw: unable to cancel reshard operations for buckets with tenants (issue#39016, pr#27992, Abhishek Lekshmanan)
  • rgw: update civetweb submodule to match version in mimic (issue#24158, pr#27982, Abhishek Lekshmanan)
  • rgw: update s3-test download code for s3-test tasks (pr#32227, Ali Maredia)
  • rgw: when exclusive lock fails due existing lock, log add’l info (issue#38397, issue#38171, pr#26554, J. Eric Ivancich)
  • rgw:send x-amz-version-id header when upload files (issue#39572, pr#27935, Xinying Song)
  • tools: Add clear-data-digest command to objectstore tool (pr#29366, Li Yichao)
  • tools: platform.linux_distribution() is deprecated; stop using it (issue#39277, issue#18163, pr#27557, Nathan Cutler)
  • tools: rados tools list objects in a pg (issue#36732, pr#30608, Li Wang, Vikhyat Umrao)