v16.2.15 Pacific released
This is the fifteenth, and expected to be last, backport release in the Pacific series.
Notable Changes ¶
ceph config dump --format <json|xml>
output will display the localized option names instead of their normalized version. For example, "mgr/prometheus/x/server_port" will be displayed instead of "mgr/prometheus/server_port". This matches the output of the non pretty-print formatted version of the command.CephFS: MDS evicts clients who are not advancing their request tids, which causes a large buildup of session metadata, resulting in the MDS going read-only due to the RADOS operation exceeding the size threshold. The
mds_session_metadata_threshold
config controls the maximum size that an (encoded) session metadata can grow.RADOS: The
get_pool_is_selfmanaged_snaps_mode
C++ API has been deprecated due to its susceptibility to false negative results. Its safer replacement ispool_is_in_selfmanaged_snaps_mode
.RBD: When diffing against the beginning of time (
fromsnapname == NULL
) in fast-diff mode (whole_object == true
withfast-diff
image feature enabled and valid), diff-iterate is now guaranteed to execute locally if exclusive lock is available. This brings a dramatic performance improvement for QEMU live disk synchronization and backup use cases.
Changelog ¶
[CVE-2023-43040] rgw: Fix bucket validation against POST policies (pr#53758, Joshua Baergen)
admin/doc-requirements: bump Sphinx to 5.0.2 (pr#55258, Nizamudeen A)
blk/kernel: Add O_EXCL for block devices (pr#53567, Adam Kupczyk)
Bluestore: fix bluestore collection_list latency perf counter (pr#52949, Wangwenjuan)
bluestore: Fix problem with volume selector (pr#53587, Adam Kupczyk)
ceph-volume,python-common: Data allocate fraction (pr#53581, Jonas Pfefferle)
ceph-volume: add --osd-id option to raw prepare (pr#52928, Guillaume Abrioux)
ceph-volume: fix a bug in _check_generic_reject_reasons (pr#54707, Kim Minjong, Guillaume Abrioux, Michael English)
ceph-volume: fix raw list for lvm devices (pr#52981, Guillaume Abrioux)
ceph-volume: fix zap_partitions() in devices.lvm.zap (pr#55658, Guillaume Abrioux)
ceph-volume: fix zap_partitions() in devices.lvm.zap (pr#55481, Guillaume Abrioux)
ceph-volume: fixes fallback to stat in is_device and is_partition (pr#54709, Guillaume Abrioux, Teoman ONAY)
ceph: allow xlock state to be LOCK_PREXLOCK when putting it (pr#53662, Xiubo Li)
cephadm: add tcmu-runner to logrotate config (pr#53975, Adam King)
cephadm: Adding support to configure public_network cfg section (pr#52411, Redouane Kachach)
cephadm: allow ports to be opened in firewall during adoption, reconfig, redeploy (pr#52083, Adam King)
cephadm: make custom_configs work for tcmu-runner container (pr#53469, Adam King)
cephadm: run tcmu-runner through script to do restart on failure (pr#53977, Adam King, Raimund Sacherer)
cephfs-journal-tool: disambiguate usage of all keyword (in tool help) (pr#53645, Manish M Yathnalli)
cephfs-mirror: do not run concurrent C_RestartMirroring context (issue#62072, pr#53640, Venky Shankar)
cephfs-top: include the missing fields in --dump output (pr#53453, Jos Collin)
cephfs: upgrade cephfs-shell's path wherever necessary (pr#54144, Rishabh Dave)
cephfs_mirror: correctly set top level dir permissions (pr#53270, Milind Changire)
client: always refresh mds feature bits on session open (issue#63188, pr#54245, Venky Shankar)
client: fix sync fs to force flush mdlog for all sessions (pr#53981, Xiubo Li)
client: issue a cap release immediately if no cap exists (pr#52852, Xiubo Li)
client: queue a delay cap flushing if there are ditry caps/snapcaps (pr#54472, Xiubo Li)
cmake/modules/BuildRocksDB.cmake: inherit parent's CMAKE_CXX_FLAGS (pr#55500, Kefu Chai)
common/weighted_shuffle: don't feed std::discrete_distribution with all-zero weights (pr#55155, Radosław Zarzyński)
common: intrusive_lru destructor add (pr#54558, Ali Maredia)
doc/cephfs: note regarding start time time zone (pr#53576, Milind Changire)
doc/cephfs: write cephfs commands fully in docs (pr#53403, Rishabh Dave)
doc/rados/configuration/bluestore-config-ref: Fix lowcase typo (pr#54696, Adam Kupczyk)
doc/rados: update config for autoscaler (pr#55440, Zac Dover)
doc: clarify use of
rados rm
command (pr#51260, J. Eric Ivancich)doc: discuss the standard multi-tenant CephFS security model (pr#53560, Greg Farnum)
Fixing example of BlueStore resharding (pr#54474, Adam Kupczyk)
isa-l: incorporate fix for aarch64 text relocation (pr#51314, luo rixin)
libcephsqlite: fill 0s in unread portion of buffer (pr#53103, Patrick Donnelly)
librados: make querying pools for selfmanaged snaps reliable (pr#55024, Ilya Dryomov)
librbd: Append one journal event per image request (pr#54820, Joshua Baergen)
librbd: don't report HOLE_UPDATED when diffing against a hole (pr#54949, Ilya Dryomov)
librbd: fix regressions in ObjectListSnapsRequest (pr#54860, Ilya Dryomov)
librbd: improve rbd_diff_iterate2() performance in fast-diff mode (pr#55256, Ilya Dryomov)
librbd: kick ExclusiveLock state machine on client being blocklisted when waiting for lock (pr#53295, Ramana Raja)
librbd: make CreatePrimaryRequest remove any unlinked mirror snapshots (pr#53274, Ilya Dryomov)
log: fix the formatting when dumping thread IDs (pr#53465, Radoslaw Zarzynski)
log: Make log_max_recent have an effect again (pr#48311, Joshua Baergen)
make-dist: don't use --continue option for wget (pr#55090, Casey Bodley)
make-dist: download liburing from kernel.io instead of github (pr#53197, Laura Flores)
MClientRequest: properly handle ceph_mds_request_head_legacy for ext_num_retry, ext_num_fwd, owner_uid, owner_gid (pr#54410, Alexander Mikhalitsyn)
mds,qa: some balancer debug messages (<=5) not printed when debug_mds is >=5 (pr#53552, Patrick Donnelly)
mds/Server: mark a cap acquisition throttle event in the request (pr#53169, Leonid Usov)
mds: acquire inode snaplock in open (pr#53185, Patrick Donnelly)
mds: add event for batching getattr/lookup (pr#53556, Patrick Donnelly)
mds: adjust pre_segments_size for MDLog when trimming segments for st… (issue#59833, pr#54033, Venky Shankar)
mds: blocklist clients with "bloated" session metadata (issue#61947, issue#62873, pr#53634, Venky Shankar)
mds: drop locks and retry when lock set changes (pr#53243, Patrick Donnelly)
mds: ensure next replay is queued on req drop (pr#54314, Patrick Donnelly)
mds: fix deadlock between unlinking and linkmerge (pr#53495, Xiubo Li)
mds: fix issuing redundant reintegrate/migrate_stray requests (pr#54517, Xiubo Li)
mds: log message when exiting due to asok command (pr#53550, Patrick Donnelly)
mds: replacing bootstrap session only if handle client session message (pr#53362, Mer Xuanyi)
mds: report clients laggy due laggy OSDs only after checking any OSD is laggy (pr#54120, Dhairya Parmar)
mds: set the loner to true for LOCK_EXCL_XSYN (pr#54912, Xiubo Li)
mds: use variable g_ceph_context directly in MDSAuthCaps (pr#52821, Rishabh Dave)
mgr/BaseMgrModule: Optimize CPython Call in Finish Function (pr#55109, Nitzan Mordechai)
mgr/cephadm: Add "networks" parameter to orch apply rgw (pr#53974, Teoman ONAY)
mgr/cephadm: ceph orch add fails when ipv6 address is surrounded by square brackets (pr#53978, Teoman ONAY)
mgr/dashboard: add 'omit_usage' query param to dashboard api 'get rbd' endpoint (pr#54192, Cory Snyder)
mgr/dashboard: allow tls 1.2 with a config option (pr#53781, Nizamudeen A)
mgr/dashboard: Consider null values as zero in grafana panels (pr#54542, Aashish Sharma)
mgr/dashboard: fix CephPGImbalance alert (pr#49478, Aashish Sharma)
mgr/dashboard: Fix CephPoolGrowthWarning alert (pr#49477, Aashish Sharma)
mgr/dashboard: fix constraints.txt (pr#54652, Ernesto Puerta)
mgr/dashboard: fix rgw page issues when hostname not resolvable (pr#53215, Nizamudeen A)
mgr/dashboard: set CORS header for unauthorized access (pr#53202, Nizamudeen A)
mgr/prometheus: avoid duplicates and deleted entries for rbd_stats_pools (pr#48524, Avan Thakkar)
mgr/prometheus: change pg_repaired_objects name to pool_repaired_objects (pr#48439, Pere Diaz Bou)
mgr/prometheus: fix pool_objects_repaired and daemon_health_metrics format (pr#51692, banuchka)
mgr/rbd_support: fix recursive locking on CreateSnapshotRequests lock (pr#54293, Ramana Raja)
mgr/snap-schedule: use the right way to check the result returned by… (pr#53355, Mer Xuanyi)
mgr/snap_schedule: allow retention spec 'n' to be user defined (pr#52750, Milind Changire, Jakob Haufe)
mgr/volumes: Fix pending_subvolume_deletions in volume info (pr#53574, Kotresh HR)
mgr: Add one finisher thread per module (pr#51045, Kotresh HR, Patrick Donnelly)
mgr: add throttle policy for DaemonServer (pr#54013, ericqzhao)
mgr: don't dump global config holding gil (pr#50194, Mykola Golub)
mgr: fix a race condition in DaemonServer::handle_report() (pr#52993, Radoslaw Zarzynski)
mgr: register OSDs in ms_handle_accept (pr#53189, Patrick Donnelly)
mgr: remove out&down osd from mgr daemons (pr#54553, shimin)
mon/ConfigMonitor: Show localized name in "config dump --format json" output (pr#53984, Sridhar Seshasayee)
mon/MonClient: resurrect original client_mount_timeout handling (pr#52533, Ilya Dryomov)
mon/Monitor.cc: exit function if !osdmon()->is_writeable() && mon/OSDMonitor: Added extra check before mon.go_recovery_stretch_mode() (pr#51414, Kamoltat)
mon/Monitor: during shutdown don't accept new authentication and crea… (pr#55113, Nitzan Mordechai)
mon: add exception handling to ceph health mute (pr#55118, Daniel Radjenovic)
mon: add proxy to cache tier options (pr#50552, tan changzhi)
mon: fix health store size growing infinitely (pr#55472, Wei Wang)
mon: fix iterator mishandling in PGMap::apply_incremental (pr#52555, Oliver Schmidt)
mon: fix mds metadata lost in one case (pr#54318, shimin)
msg/async: initialize worker in RDMAStack::create_worker() and drop Stack::num_workers (pr#55443, Kefu Chai)
msg/AsyncMessenger: re-evaluate the stop condition when woken up in 'wait()' (pr#53716, Leonid Usov)
nofail option in fstab not supported (pr#52987, Leonid Usov)
os/bluestore: don't require bluestore_db_block_size when attaching new (pr#52948, Igor Fedotov)
os/bluestore: get rid off resulting lba alignment in allocators (pr#54434, Igor Fedotov)
osd,bluestore: gracefully handle a failure during meta collection load (pr#53135, Igor Fedotov)
osd/OpRequest: Add detail description for delayed op in osd log file (pr#53693, Yite Gu)
osd/OSD: introduce reset_purged_snaps_last (pr#53970, Matan Breizman)
osd/OSDMap: Check for uneven weights & != 2 buckets post stretch mode (pr#52459, Kamoltat)
osd/scrub: Fix scrub starts messages spamming the cluster log (pr#53430, Prashant D)
osd: don't require RWEXCL lock for stat+write ops (pr#54593, Alice Zhao)
osd: ensure async recovery does not drop a pg below min_size (pr#54548, Samuel Just)
osd: fix shard-threads cannot wakeup bug (pr#51262, Jianwei Zhang)
osd: fix use-after-move in build_incremental_map_msg() (pr#54268, Ronen Friedman)
osd: log the number of extents for sparse read (pr#54604, Xiubo Li)
pacifc: Revert "mgr/dashboard: unselect rows in datatables" (pr#55415, Nizamudeen A)
pybind/mgr/autoscaler: Donot show NEW PG_NUM value if autoscaler is not on (pr#53464, Prashant D)
pybind/mgr/mgr_util: fix to_pretty_timedelta() (pr#51243, Sage Weil)
pybind/mgr/volumes: log mutex locks to help debug deadlocks (pr#53916, Kotresh HR)
pybind/mgr: ceph osd status crash with ZeroDivisionError (pr#46696, Nitzan Mordechai, Kefu Chai)
pybind/rados: don't close watch in dealloc if already closed (pr#51259, Tim Serong)
pybind/rados: fix missed changes for PEP484 style type annotations (pr#54361, Igor Fedotov)
pybind/rbd: don't produce info on errors in aio_mirror_image_get_info() (pr#54053, Ilya Dryomov)
python-common/drive_group: handle fields outside of 'spec' even when 'spec' is provided (pr#52413, Adam King)
python-common/drive_selection: lower log level of limit policy message (pr#52412, Adam King)
qa/distros: backport update from rhel 8.4 -> 8.6 (pr#54901, Casey Bodley, David Galloway)
qa/suites/krbd: stress test for recovering from watch errors (pr#53784, Ilya Dryomov)
qa/suites/orch: whitelist warnings that are expected in test environments (pr#55523, Laura Flores)
qa/suites/rbd: add test to check rbd_support module recovery (pr#54294, Ramana Raja)
qa/suites/upgrade/pacific-p2p: run librbd python API tests from pacific tip (pr#55418, Yuri Weinstein)
qa/suites/upgrade/pacific-p2p: skip TestClsRbd.mirror_snapshot test (pr#53204, Ilya Dryomov)
qa/suites: added more whitelisting + fix typo (pr#55717, Kamoltat)
qa/tasks/cephadm: enable mon_cluster_log_to_file (pr#55429, Dan van der Ster)
qa/upgrade: disable a failing ceph_test_cls_cmpomap test case (pr#55519, Casey Bodley)
qa/upgrade: use ragweed branch for starting ceph release (pr#55382, Casey Bodley)
qa/workunits/rbd/cli_generic.sh: narrow race window when checking that rbd_support module command fails after blocklisting the module's client (pr#54771, Ramana Raja)
qa: assign file system affinity for replaced MDS (issue#61764, pr#54039, Venky Shankar)
qa: ignore expected cluster warning from damage tests (pr#53486, Patrick Donnelly)
qa: lengthen shutdown timeout for thrashed MDS (pr#53555, Patrick Donnelly)
qa: pass arg as list to fix test case failure (pr#52763, Dhairya Parmar)
qa: remove duplicate import (pr#53447, Patrick Donnelly)
qa: run kernel_untar_build with newer tarball (pr#54713, Milind Changire)
qa: wait for file to have correct size (pr#52744, Patrick Donnelly)
rados: build minimally when "WITH_MGR" is off (pr#51250, J. Eric Ivancich)
rados: increase osd_max_write_op_reply_len default to 64 bytes (pr#53470, Matt Benjamin)
RadosGW API: incorrect bucket quota in response to HEAD /{bucket}/?usage (pr#53439, shreyanshjain7174)
radosgw-admin: allow 'bi purge' to delete index if entrypoint doesn't exist (pr#54010, Casey Bodley)
radosgw-admin: don't crash on --placement-id without --storage-class (pr#53474, Casey Bodley)
radosgw-admin: fix segfault on pipe modify without source/dest zone specified (pr#51256, caisan)
rbd-nbd: fix stuck with disable request (pr#54256, Prasanna Kumar Kalever)
rgw - Fix NoSuchTagSet error (pr#50533, Daniel Gryniewicz)
rgw/auth: ignoring signatures for HTTP OPTIONS calls (pr#55550, Tobias Urdin)
rgw/beast: add max_header_size option with 16k default, up from 4k (pr#52113, Casey Bodley)
rgw/keystone: EC2Engine uses reject() for ERR_SIGNATURE_NO_MATCH (pr#53764, Casey Bodley)
rgw/notification: remove non x-amz-meta-* attributes from bucket notifications (pr#53376, Juan Zhu)
rgw/putobj: RadosWriter uses part head object for multipart parts (pr#55586, Casey Bodley)
rgw/s3: ListObjectsV2 returns correct object owners (pr#54160, Casey Bodley)
rgw/sts: AssumeRole no longer writes to user metadata (pr#52051, Casey Bodley)
rgw/sts: code for returning an error when an IAM policy (pr#44462, Pritha Srivastava)
rgw/sts: code to fetch certs using .well-known/openid-configuration URL (pr#44464, Pritha Srivastava)
rgw/sts: createbucket op should take session_policies into account (pr#44476, Pritha Srivastava)
rgw/sts: fix read_obj_policy permission evaluation (pr#44471, Pritha Srivastava)
rgw/sts: fixes getsessiontoken authenticated with LDAP (pr#44463, Pritha Srivastava)
rgw/swift: check position of first slash in slo manifest files (pr#51600, Marcio Roberto Starke)
rgw/sync-policy: Correct "sync status" & "sync group" commands (pr#53410, Soumya Koduri)
rgw: 'bucket check' deletes index of multipart meta when its pending_map is nonempty (pr#54016, Huber-ming)
rgw: add radosgw-admin bucket check olh/unlinked commands (pr#53808, Cory Snyder)
rgw: Avoid segfault when OPA authz is enabled (pr#46106, Benoît Knecht)
rgw: beast frontend checks for local_endpoint() errors (pr#54167, Casey Bodley)
rgw: Drain async_processor request queue during shutdown (pr#53472, Soumya Koduri)
rgw: fix 2 null versionID after convert_plain_entry_to_versioned (pr#53400, rui ma, zhuo li)
rgw: Fix Browser POST content-length-range min value (pr#52936, Robin H. Johnson)
rgw: fix FP error when calculating enteries per bi shard (pr#53593, J. Eric Ivancich)
rgw: fix rgw cache invalidation after unregister_watch() error (pr#54014, lichaochao)
rgw: fix SignatureDoesNotMatch when extra headers start with 'x-amz' (pr#53772, rui ma)
rgw: Fix truncated ListBuckets response (pr#49526, Joshua Baergen)
rgw: fix unwatch crash at radosgw startup (pr#53759, lichaochao)
rgw: fix UploadPartCopy error code when src object not exist and src bucket not exist (pr#53356, yuliyang)
rgw: handle http options CORS with v4 auth (pr#53416, Tobias Urdin)
rgw: improve buffer list utilization in the chunkupload scenario (pr#53775, liubingrun)
rgw: multisite data log flag not used (pr#52055, J. Eric Ivancich)
rgw: pick http_date in case of http_x_amz_date absence (pr#53443, Seena Fallah, Mohamed Awnallah)
rgw: prevent spurious/lost notifications in the index completion thread (pr#49093, Casey Bodley, Yuval Lifshitz)
rgw: retry metadata cache notifications with INVALIDATE_OBJ (pr#52797, Casey Bodley)
rgw: s3 object lock avoids overflow in retention date (pr#52605, Casey Bodley)
rgw: s3website doesn't prefetch for web_dir() check (pr#53769, Casey Bodley)
rgw: set keys from from master zone on admin api user create (pr#51602, Ali Maredia)
rgw: Solving the issue of not populating etag in Multipart upload result (pr#51445, Ali Masarwa)
rgw: swift : check for valid key in POST forms (pr#52729, Abhishek Lekshmanan)
rgw: Update "CEPH_RGW_DIR_SUGGEST_LOG_OP" for remove entries (pr#50540, Soumya Koduri)
rgw: use unique_ptr for flat_map emplace in BucketTrimWatche (pr#52996, Vedansh Bhartia)
rgwlc: prevent lc for one bucket from exceeding time budget (pr#53562, Matt Benjamin)
test/lazy-omap-stats: Various enhancements (pr#50518, Brad Hubbard)
test/librbd: avoid config-related crashes in DiscardWithPruneWriteOverlap (pr#54859, Ilya Dryomov)
test/store_test: adjust physical extents to inject error against (pr#54782, Igor Fedotov)
tools/ceph_objectstore_tool: action_on_all_objects_in_pg to skip pgmeta (pr#54691, Matan Breizman)
tools/ceph_objectstore_tool: Support get/set/superblock (pr#55013, Matan Breizman)
tools/osdmaptool: fix possible segfaults when there are down osds (pr#52203, Mykola Golub)
Tools/rados: Improve Error Messaging for Object Name Resolution (pr#55111, Nitzan Mordechai)
vstart_runner: maintain log level when --debug is passed (pr#52977, Rishabh Dave)
vstart_runner: use FileNotFoundError when os.stat() fails (pr#52978, Rishabh Dave)
win32_deps_build.sh: change Boost URL (pr#55086, Lucian Petrut)