v15.2.5 Octopus released

TheAnalyst

This is the fifth release of the Ceph Octopus stable release series. This release brings a range of fixes across all components. We recommend that all Octopus users upgrade to this release.

Notable Changes

  • CephFS: Automatic static subtree partitioning policies may now be configured using the new distributed and random ephemeral pinning extended attributes on directories. See the documentation for more information: https://docs.ceph.com/docs/master/cephfs/multimds/

  • Monitors now have a config option mon_osd_warn_num_repaired, 10 by default. If any OSD has repaired more than this many I/O errors in stored data a OSD_TOO_MANY_REPAIRS health warning is generated.

  • Now when noscrub and/or no deep-scrub flags are set globally or per pool, scheduled scrubs of the type disabled will be aborted. All user initiated scrubs are NOT interrupted.

  • Fix an issue with osdmaps not being trimmed in a healthy cluster ( issue#47297, pr#36981)

Changelog

  • bluestore,core: bluestore: blk:BlockDevice.cc: use pending_aios instead of iovec size as ios num (pr#36668, weixinwei)

  • bluestore,tests: test/store_test: refactor bluestore spillover test (pr#34943, Igor Fedotov)

  • bluestore,tests: tests: objectstore/store_test: kill ExcessiveFragmentation test case (pr#36049, Igor Fedotov)

  • bluestore: bluestore: Rescue procedure for extremely large bluefs log (pr#36123, Adam Kupczyk)

  • bluestore: octopus:os/bluestore: improve/fix bluefs stats reporting (pr#35748, Igor Fedotov)

  • bluestore: os/bluestore: fix bluefs log growth (pr#36621, Adam Kupczyk, Jianpeng Ma)

  • bluestore: os/bluestore: simplify Onode pin/unpin logic (pr#36795, Igor Fedotov)

  • build/ops: Revert “mgr/osd_support: remove module and all traces” (pr#36973, Sebastian Wagner)

  • build/ops: ceph-iscsi: selinux fixes (pr#36302, Mike Christie)

  • build/ops: mgr/dashboard/api: reduce amount of daemon logs (pr#36693, Ernesto Puerta)

  • ceph-volume: add dmcrypt support in raw mode (pr#35830, Guillaume Abrioux)

  • ceph-volume: add drive-group subcommand (pr#36558, Jan Fajerski, Sebastian Wagner)

  • ceph-volume: add tests for new functions that run LVM commands (pr#36614, Rishabh Dave)

  • ceph-volume: don’t use container classes in api/lvm.py (pr#35879, Rishabh Dave, Guillaume Abrioux)

  • ceph-volume: fix lvm functional tests (pr#36409, Jan Fajerski)

  • ceph-volume: handle idempotency with batch and explicit scenarios (pr#35880, Andrew Schoen)

  • ceph-volume: remove container classes from api/lvm.py (pr#36608, Rishabh Dave)

  • ceph-volume: report correct rejected reason in inventory if device type is invalid (pr#36410, Satoru Takeuchi)

  • ceph-volume: run flake8 in python3 (pr#36588, Jan Fajerski)

  • cephfs,common: common: ignore SIGHUP prior to fork (issue#46269, pr#36195, Willem Jan Withagen, hzwuhongsong)

  • cephfs,core,mgr: mgr/status: metadata is fetched async (pr#36630, Michael Fritch)

  • cephfs,core,rbd,rgw: librados: add LIBRADOS_SUPPORTS_GETADDRS support (pr#36643, Xiubo Li)

  • cephfs,mgr: mgr/volumes/nfs: Add interface for adding user defined configuration (pr#36635, Varsha Rao)

  • cephfs,mon: mon/MDSMonitor: copy MDS info which may be removed (pr#36035, Patrick Donnelly)

  • cephfs,pybind: pybind/ceph_volume_client: Fix PEP-8 SyntaxWarning (pr#36100, Đặng Minh Dũng)

  • cephfs,tests: mgr/fs/volumes: misc fixes (pr#36327, Patrick Donnelly, Kotresh HR)

  • cephfs,tests: tests: Revert “Revert “qa/suites/rados/mgr/tasks/module_selftest: whitelist … (issue#43943, pr#36042, Venky Shankar)

  • cephfs,tests: tests: qa/tasks/cephfs/cephfs_test_case.py: skip cleaning the core dumps when in program case (pr#36043, Xiubo Li)

  • cephfs,tests: tests: qa/tasks: make sh() in vstart_runner.py identical with teuthology.orchestra.remote.sh (pr#36044, Jos Collin)

  • cephfs: Update nfs-ganesha package requirements doc backport (pr#36063, Varsha Rao)

  • cephfs: cephfs: client: fix setxattr for 0 size value (NULL value) (pr#36045, Sidharth Anupkrishnan)

  • cephfs: cephfs: client: fix snap directory atime (pr#36039, Luis Henriques)

  • cephfs: cephfs: client: release the client_lock before copying data in read (pr#36046, Chencan)

  • cephfs: client: expose ceph.quota.max_bytes xattr within snapshots (pr#36403, Shyamsundar Ranganathan)

  • cephfs: client: introduce timeout for client shutdown (issue#44276, pr#35962, “Yan, Zheng”, Venky Shankar)

  • cephfs: mds/MDSRank: fix typo in “unrecognized” (pr#36197, Nathan Cutler)

  • cephfs: mds: add ephemeral random and distributed export pins (pr#35759, Patrick Donnelly, Sidharth Anupkrishnan)

  • cephfs: mds: fix filelock state when Fc is issued (pr#35842, Xiubo Li)

  • cephfs: mds: reset heartbeat in EMetaBlob replay (pr#36040, Yanhu Cao)

  • cephfs: mgr/nfs: Check if pseudo path is absolute path (pr#36299, Varsha Rao)

  • cephfs: mgr/nfs: Update MDCACHE block in ganesha config and doc about nfs-cephadm in vstart (pr#36224, Varsha Rao)

  • cephfs: mgr/volumes: Deprecate protect/unprotect CLI calls for subvolume snapshots (pr#36126, Shyamsundar Ranganathan)

  • cephfs: mgr/volumes: fix “ceph nfs export” help messages (pr#36220, Nathan Cutler)

  • cephfs: nfs backport (pr#35499, Jeff Layton, Varsha Rao, Ramana Raja, Kefu Chai)

  • common,core: common, osd: add sanity checks around osd_scrub_max_preemptions (pr#36034, xie xingguo)

  • common,rbd,tools: rbd: immutable-object-cache: fixed crashes on start up (pr#36660, Jason Dillaman)

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

  • common: common: log: fix timestap precision of log can’t set to millisecond (pr#36048, Guan yunfei)

  • core,mgr: mgr: decrease pool stats if pg was removed (pr#36667, Aleksei Gutikov)

  • core,rbd: osd/OSDCap: rbd profile permits use of “rbd_info” (pr#36414, Florian Florensa)

  • core,tools: tools/rados: Set locator key when exporting or importing a pool (pr#36666, Iain Buclaw)

  • core: mon/OSDMonitor: Reset grace period if failure interval exceeds a threshold (pr#35799, Sridhar Seshasayee)

  • core: mon/OSDMonitor: only take in osd into consideration when trimming osd… (pr#36981, Kefu Chai)

  • core: mon: fix the ‘Error ERANGE’ message when conf “osd_objectstore” is filestore (pr#36665, wangyunqing)

  • core: monclient: schedule first tick using mon_client_hunt_interval (pr#36633, Mykola Golub)

  • core: osd/OSD.cc: remove osd_lock for bench (pr#36664, Neha Ojha, Adam Kupczyk)

  • core: osd/PG: fix history.same_interval_since of merge target again (pr#36033, xie xingguo)

  • core: osd/PeeringState: prevent peer’s num_objects going negative (pr#36663, xie xingguo)

  • core: osd/PrimaryLogPG: don’t populate watchers if replica (pr#36029, Ilya Dryomov)

  • core: osd: Cancel in-progress scrubs (not user requested) (pr#36291, David Zafman)

  • core: osd: expose osdspec_affinity to osd_metadata (pr#35957, Joshua Schmid)

  • core: osd: fix crash in _committed_osd_maps if incremental osdmap crc fails (pr#36340, Neha Ojha, Dan van der Ster)

  • core: osd: make message cap option usable again (pr#35737, Neha Ojha, Josh Durgin)

  • core: osd: wakeup all threads of shard rather than one thread (pr#36032, Jianpeng Ma)

  • core: test: osd-backfill-stats.sh use nobackfill to avoid races in remainin… (pr#36030, David Zafman)

  • doc: cephadm batch backport (pr#36450, Varsha Rao, Ricardo Marques, Kiefer Chang, Matthew Oliver, Paul Cuzner, Kefu Chai, Daniel-Pivonka, Sebastian Wagner, Volker Theile, Adam King, Michael Fritch, Joshua Schmid)

  • doc: doc/mgr/crash: Add missing command in rm example (pr#36690, Daniël Vos)

  • doc: doc/rados: Fix osd_scrub_during_recovery default value (pr#36661, Benoît Knecht)

  • doc: doc/rbd: add rbd-target-gw enable and start (pr#36416, Zac Dover)

  • doc: doc: PendingReleaseNotes: clean slate for 15.2.5 (pr#35753, Nathan Cutler)

  • mgr,pybind: pybind/mgr/balancer: use “==” and “!=” for comparing str (pr#36036, Kefu Chai)

  • mgr,pybind: pybind/mgr/pg_autoscaler/module.py: do not update event if ev.pg_num== ev.pg_num_target (pr#36037, Neha Ojha)

  • mgr,rbd: mgr/prometheus: automatically discover RBD pools for stats gathering (pr#36411, Jason Dillaman)

  • mgr/dashboard/api: increase API health timeout (pr#36562, Ernesto Puerta)

  • mgr/dashboard: Add button to copy the bootstrap token into the clipboard (pr#35796, Ishan Rai)

  • mgr/dashboard: Add host labels in UI (pr#35893, Volker Theile)

  • mgr/dashboard: Add hosts page unit tests (pr#36350, Volker Theile)

  • mgr/dashboard: Allow to edit iSCSI target with active session (pr#35997, Ricardo Marques)

  • mgr/dashboard: Always use fast angular unit tests (pr#36267, Stephan Müller)

  • mgr/dashboard: Configure overflow of popover in health page (pr#36460, Tiago Melo)

  • mgr/dashboard: Display check icon instead of true|false in various datatables (pr#35892, Volker Theile)

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

  • mgr/dashboard: Extract documentation link to a component (pr#36587, Tiago Melo)

  • mgr/dashboard: Fix host attributes like labels are not returned (pr#36678, Kiefer Chang)

  • mgr/dashboard: Hide password notification when expiration date is far (pr#35975, Tiago Melo)

  • mgr/dashboard: Improve Summary’s subscribe methods (pr#35705, Tiago Melo)

  • mgr/dashboard: Prometheus query error in the metrics of Pools, OSDs and RBD images (pr#35885, Avan Thakkar)

  • mgr/dashboard: Re-enable OSD’s table autoReload (pr#36226, Kiefer Chang, Tiago Melo)

  • mgr/dashboard: Strange iSCSI discovery auth behavior (pr#36782, Volker Theile)

  • mgr/dashboard: The max. buckets field in RGW user form should be pre-filled (pr#35795, Volker Theile)

  • mgr/dashboard: Unable to edit iSCSI logged-in client (pr#36611, Ricardo Marques)

  • mgr/dashboard: Use right size in pool form (pr#35925, Stephan Müller)

  • mgr/dashboard: Use same required field message accross the UI (pr#36277, Volker Theile)

  • mgr/dashboard: add API team to CODEOWNERS (pr#36143, Ernesto Puerta)

  • mgr/dashboard: allow preserving OSD IDs when deleting OSDs (pr#35766, Kiefer Chang)

  • mgr/dashboard: cpu stats incorrectly displayed (pr#36322, Avan Thakkar)

  • mgr/dashboard: cropped actions menu in nested details (pr#35620, Avan Thakkar)

  • mgr/dashboard: fix Source column i18n issue in RBD configuration tables (pr#35819, Kiefer Chang)

  • mgr/dashboard: fix backporting issue #35926 (pr#36073, Ernesto Puerta)

  • mgr/dashboard: fix pool usage calculation (pr#36137, Ernesto Puerta)

  • mgr/dashboard: fix rbdmirroring dropdown menu (pr#36382, Avan Thakkar)

  • mgr/dashboard: fix regression in delete OSD modal (pr#36419, Kiefer Chang)

  • mgr/dashboard: fix tasks.mgr.dashboard.test_rbd.RbdTest.test_move_image_to_trash error (pr#36563, Kiefer Chang)

  • mgr/dashboard: fix ui api endpoints (pr#36160, Fabrizio D’Angelo)

  • mgr/dashboard: fix wal/db slots controls in the OSD form (pr#35883, Kiefer Chang)

  • mgr/dashboard: increase API test coverage in API controllers (pr#36260, Kefu Chai, Aashish Sharma)

  • mgr/dashboard: redirect to original URL after successful login (pr#36831, Avan Thakkar)

  • mgr/dashboard: remove “This week/month/year” and “Today” time stamps (pr#36789, Avan Thakkar)

  • mgr/dashboard: remove cdCopy2ClipboardButton formatted attribute (pr#35889, Tatjana Dehler)

  • mgr/dashboard: remove password field if login is using SSO and fix error message in confirm password (pr#36689, Ishan Rai)

  • mgr/dashboard: right-align dropdown menu of column filters (pr#36369, Kiefer Chang)

  • mgr/dashboard: telemetry activation notification (pr#35772, Tatjana Dehler)

  • mgr/dashboard: wait longer for health status to be cleared (pr#36346, Tatjana Dehler)

  • mgr/k8sevents: sanitise kubernetes events (pr#35684, Paul Cuzner)

  • mgr/prometheus: improve cache (pr#35847, Patrick Seidensal)

  • mgr: avoid false alarm of MGR_MODULE_ERROR (pr#35995, Kefu Chai)

  • mgr: mgr/DaemonServer.cc: make ‘config show’ on fsid work (pr#35793, Neha Ojha)

  • mgr: mgr/cephadm: Adapt Vagrantfile to use octopus instead of master repo on shaman (pr#35988, Volker Theile)

  • mgr: mgr/diskprediction_local: Fix array size error (pr#36577, Benoît Knecht)

  • mgr: mgr/progress: Skip pg_summary update if _events dict is empty (pr#36076, Manuel Lausch)

  • mgr: mgr/prometheus: log time it takes to collect metrics (pr#36581, Patrick Seidensal)

  • mgr: mgr: Add missing states to PG_STATES in mgr_module.py (pr#36786, Harley Gorrell)

  • mgr: mgr: fix race between module load and notify (pr#35794, Mykola Golub)

  • mgr: mon/PGMap: do not consider changing pg stuck (pr#35958, Kefu Chai)

  • monitoring: alert for pool fill up broken (pr#35136, Volker Theile)

  • msgr: New msgr2 crc and secure modes (msgr2.1) (pr#35720, Ilya Dryomov)

  • rbd,tests: tests/rbd_mirror: fix race on test shut down (pr#36657, Mykola Golub)

  • rbd: librbd: global and pool-level config overrides require image refresh to apply (pr#36638, Jason Dillaman)

  • rbd: librbd: new ‘write_zeroes’ API methods to suppliment the discard APIs (pr#36247, Jason Dillaman)

  • rbd: librbd: potential race conditions handling API IO completions (pr#36331, Jason Dillaman)

  • rbd: mgr/dashboard: work with v1 RBD images (pr#35711, Ernesto Puerta)

  • rbd: rbd: librbd: Align rbd_write_zeroes declarations (pr#36717, Corey Bryant)

  • rbd: rbd: librbd: don’t resend async_complete if watcher is unregistered (pr#36659, Mykola Golub)

  • rbd: rbd: librbd: flush all queued object IO from simple scheduler (pr#36658, Jason Dillaman)

  • rbd: rbd: librbd: race when disabling object map with overlapping in-flight writes (pr#36656, Jason Dillaman)

  • rbd: rbd: recognize crush_location, read_from_replica and compression_hint map options (pr#36061, Ilya Dryomov)

  • rgw,tests: qa/tasks/ragweed: always set ragweed_repo (pr#36651, Kefu Chai)

  • rgw: rgw: lc: fix Segmentation Fault when the tag of the object was not found (pr#36085, yupeng chen, zhuo li)

  • rgw: Add subuser to OPA request (pr#36023, Seena Fallah)

  • rgw: Add support wildcard subuser for bucket policy (pr#36022, Seena Fallah)

  • rgw: Adding data cache and CDN capabilities (pr#36646, Mark Kogan, Or Friedmann)

  • rgw: Empty reqs_change_state queue before unregistered_reqs (pr#36650, Soumya Koduri)

  • rgw: add abort multipart date and rule-id header to init multipart upload response (pr#36649, zhang Shaowen, zhangshaowen)

  • rgw: add access log to the beast frontend (pr#36024, Mark Kogan)

  • rgw: add check for index entry’s existing when adding bucket stats during bucket reshard (pr#36025, zhang Shaowen)

  • rgw: add negative cache to the system object (pr#36648, Or Friedmann)

  • rgw: add quota enforcement to CopyObj (pr#36020, Casey Bodley)

  • rgw: append obj: prevent tail from being GC’ed (pr#36389, Abhishek Lekshmanan)

  • rgw: bucket list/stats truncates for user w/ >1000 buckets (pr#36019, J. Eric Ivancich)

  • rgw: cls/rgw: preserve olh entry’s name on last unlink (pr#36652, Casey Bodley)

  • rgw: cls/rgw_gc: Fixing the iterator used to access urgent data map (pr#36017, Pritha Srivastava)

  • rgw: fix boost::asio::async_write() does not return error (pr#36647, Mark Kogan)

  • rgw: fix bug where ordered bucket listing gets stuck (pr#35877, J. Eric Ivancich)

  • rgw: fix double slash (//) killing the gateway (pr#36654, Theofilos Mouratidis)

  • rgw: fix loop problem with swift stat on account (pr#36021, Marcus Watts)

  • rgw: fix shutdown crash in RGWAsyncReadMDLogEntries (pr#36653, Casey Bodley)

  • rgw: introduce safe user-reset-stats (pr#36655, Yuval Lifshitz, Matt Benjamin)

  • rgw: lc: add lifecycle perf counters (pr#36018, Mark Kogan, Matt Benjamin)

  • rgw: orphan list teuthology test & fully-qualified domain issue (pr#36027, J. Eric Ivancich)

  • rgw: orphan-list timestamp fix (pr#35929, J. Eric Ivancich)

  • rgw: policy: reuse eval_principal to evaluate the policy principal (pr#36636, Abhishek Lekshmanan)

  • rgw: radoslist incomplete multipart uploads fix marker progression (pr#36028, J. Eric Ivancich)

  • rgw: rgw/iam: correcting the result of get role policy (pr#36645, Pritha Srivastava)

  • rgw: selinux: allow ceph_t amqp_port_t:tcp_socket (pr#36026, Kaleb S. KEITHLEY, Thomas Serlin)

  • rgw: stop realm reloader before store shutdown (pr#36644, Kefu Chai, Casey Bodley)

  • tools: tools: Add statfs operation to ceph-objecstore-tool (pr#35715, David Zafman)