]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
23 months agoReleaseNotes: document recovery of encrypted multipart objects 52248/head
Casey Bodley [Thu, 3 Aug 2023 21:18:05 +0000 (17:18 -0400)]
ReleaseNotes: document recovery of encrypted multipart objects

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agoradosgw-admin: add command to resync encrypted multipart objects
Casey Bodley [Tue, 30 May 2023 17:56:25 +0000 (13:56 -0400)]
radosgw-admin: add command to resync encrypted multipart objects

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agorgw: RGWRados::set_attrs() takes optional mtime
Casey Bodley [Tue, 30 May 2023 21:23:36 +0000 (17:23 -0400)]
rgw: RGWRados::set_attrs() takes optional mtime

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agorgw: expose part id in RGWObjManifest iterator
Casey Bodley [Tue, 30 May 2023 17:53:02 +0000 (13:53 -0400)]
rgw: expose part id in RGWObjManifest iterator

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agorgw: preserve RGW_ATTR_CRYPT_PARTS of already-replicated objects
Casey Bodley [Wed, 12 Jul 2023 20:13:34 +0000 (16:13 -0400)]
rgw: preserve RGW_ATTR_CRYPT_PARTS of already-replicated objects

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agorgw: fetch_remote_obj() preserves original part lengths for BlockDecrypt
Casey Bodley [Wed, 28 Jun 2023 21:14:16 +0000 (17:14 -0400)]
rgw: fetch_remote_obj() preserves original part lengths for BlockDecrypt

because multisite replicates multipart objects as a single part, we lose
information about the part sizes from the original manifest that is
necessary to correctly decrypt across those part boundaries

on replication, parse the part lengths out of the source object's
manifest, and store them in a separate RGW_ATTR_CRYPT_PARTS for use on
decryption

Fixes: https://tracker.ceph.com/issues/46062
Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agorgw: BlockDecrypt filter parses manifest parts before construction
Casey Bodley [Wed, 28 Jun 2023 20:49:33 +0000 (16:49 -0400)]
rgw: BlockDecrypt filter parses manifest parts before construction

users now call a static read_manifest_parts() function, and pass the
resulting vector into the BlockDecrypt constructor

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agoMerge pull request #52757 from aisakaki/wip-retire-cp
Yingxin [Thu, 3 Aug 2023 03:12:01 +0000 (11:12 +0800)]
Merge pull request #52757 from aisakaki/wip-retire-cp

crimson/os/seastore: retire_extent_addr clean up

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
23 months agoMerge pull request #52775 from dvanders/kplus1
Anthony D'Atri [Thu, 3 Aug 2023 00:05:55 +0000 (20:05 -0400)]
Merge pull request #52775 from dvanders/kplus1

 doc/rados/operations: Correct EC min_size recommendation to K+1 in erasure-code.rst

23 months agoMerge pull request #52719 from cbodley/wip-rgw-get_ws_listing_op
Casey Bodley [Wed, 2 Aug 2023 22:43:32 +0000 (18:43 -0400)]
Merge pull request #52719 from cbodley/wip-rgw-get_ws_listing_op

rgw/swift: remove redundant moves of object name

Reviewed-by: Jiffin Tony Thottan <jthottan@redhat.com>
23 months agoMerge pull request #52714 from cbodley/wip-ec-clay-unit
Casey Bodley [Wed, 2 Aug 2023 22:43:06 +0000 (18:43 -0400)]
Merge pull request #52714 from cbodley/wip-ec-clay-unit

ec: initialize lost_chunk in ErasureCodeClay

Reviewed-by: Neha Ojha <nojha@redhat.com>
23 months agodoc: for EC we recommend K+1 52775/head
Dan van der Ster [Wed, 2 Aug 2023 21:31:07 +0000 (14:31 -0700)]
doc: for EC we recommend K+1

Update the doc to match the reality in the code. I don't know where
the recommendation to have min_size = k+2 came from, but for awhile
now we've defaulted to K+1. See PR #8008.

Signed-off-by: Dan van der Ster <dan.vanderster@clyso.com>
23 months agoMerge pull request #52007 from tcoldrick-bb/fix-invalid-json
Casey Bodley [Wed, 2 Aug 2023 17:42:22 +0000 (13:42 -0400)]
Merge pull request #52007 from tcoldrick-bb/fix-invalid-json

rgw/rgw_admin.cc: Handle pg_ver and source_zone explicitly

Reviewed-by: Casey Bodley <cbodley@redhat.com>
23 months agoMerge PR #48732 into main
Venky Shankar [Wed, 2 Aug 2023 16:37:58 +0000 (22:07 +0530)]
Merge PR #48732 into main

* refs/pull/48732/head:
doc: add MDS treatise on segments
pybind/mgr/dashboard: bump teuthology version
qa/tasks/vstart_runner: stop overriding _run_python
qa: stop overriding ceph_w prefix in vstart_runner
qa/tasks/vstart_runner: update teuthology helper tool paths
qa/tasks/vstart_runner: allow writing to command's stdin
vstart.sh: always add CEPH_CONF to vstart_environment.sh
qa: use stdin-killer for python3 command
qa: add killpoint testing for mds shutdown
qa: fix background exit condition
qa: add filesystem helper for setting transient config
qa: add helper for waiting for a rank to fail
mds: add incompat feature for minor log segments
mds: introduce ELid event to create/close log
mds: change EResetJournal to major segment boundary
mds: add killpoints for MDS shutdown
qa: add numerous subtree test
mds: track larger log events in perf dump
mds: add minor LogSegment boundaries
mds: obviate MDLog::start_entry
mds: retype to properly sized unsigned ints
mds: use unsigned type for event count
mds: use base Context class for generalization
mds: optimize segment lookup
mds: add stream dump for LogSegment
mds: handle conf changes in mdlog
mds: remove redundant comment
mds: remove unused method
mds: set a reasonable minimum number of segments
mds: sort configs

Reviewed-by: Venky Shankar <vshankar@redhat.com>
23 months agoMerge PR #52754 into main
Venky Shankar [Wed, 2 Aug 2023 16:36:09 +0000 (22:06 +0530)]
Merge PR #52754 into main

* refs/pull/52754/head:
test: explicitly link to ceph-common for some libcephfs tests

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
23 months agoMerge pull request #52761 from bluikko/patch-18
Anthony D'Atri [Wed, 2 Aug 2023 14:36:06 +0000 (10:36 -0400)]
Merge pull request #52761 from bluikko/patch-18

doc/rados/configuration: Avoid repeating "support" in msgr2.rst

23 months agoMerge pull request #52709 from rishabh-d-dave/cephfs-test_snapshots
Rishabh Dave [Wed, 2 Aug 2023 13:48:07 +0000 (19:18 +0530)]
Merge pull request #52709 from rishabh-d-dave/cephfs-test_snapshots

qa/cephfs: fix test_disallow_monitor_managed_snaps_for_fs_pools

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
23 months agoMerge pull request #52762 from yuvalif/wip-yuval-62264
Casey Bodley [Wed, 2 Aug 2023 13:41:36 +0000 (09:41 -0400)]
Merge pull request #52762 from yuvalif/wip-yuval-62264

rgw/amqp: skip idleness tests since it needs to sleep longer than 30s

Reviewed-by: Casey Bodley <cbodley@redhat.com>
23 months agoMerge pull request #52559 from adamemerson/wip-62097
Ilya Dryomov [Wed, 2 Aug 2023 11:36:17 +0000 (13:36 +0200)]
Merge pull request #52559 from adamemerson/wip-62097

build: Remove ceph-libboost* packages in install-deps

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
23 months agorgw/amqp: skip idleness tests since it needs to sleep longer than 30s 52762/head
Yuval Lifshitz [Wed, 2 Aug 2023 10:19:00 +0000 (10:19 +0000)]
rgw/amqp: skip idleness tests since it needs to sleep longer than 30s

current idle timeout is 30s, so, making the test sleep for 30s may not
be enough. setting sleep time to be longer, and skippign the test so it
won't take too long.

Fixes: https://tracker.ceph.com/issues/62264
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
23 months agoMerge pull request #52698 from rhcs-dashboard/fix-instance-id-exporter
Avan [Wed, 2 Aug 2023 08:56:47 +0000 (14:26 +0530)]
Merge pull request #52698 from rhcs-dashboard/fix-instance-id-exporter

exporter: fix instance_id labeld value for rgw in exporter

Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
23 months agoMerge pull request #51960 from rzarzynski/wip-doc-encoding
zdover23 [Wed, 2 Aug 2023 07:45:51 +0000 (17:45 +1000)]
Merge pull request #51960 from rzarzynski/wip-doc-encoding

doc: improve doc/dev/encoding.rst

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Neha Ojha <nohja@redhat.com>
23 months agotest: explicitly link to ceph-common for some libcephfs tests 52754/head
Venky Shankar [Tue, 1 Aug 2023 14:14:18 +0000 (10:14 -0400)]
test: explicitly link to ceph-common for some libcephfs tests

Fixes: http://tracker.ceph.com/issues/57206
Signed-off-by: Venky Shankar <vshankar@redhat.com>
23 months agoMerge PR #52569 into main
Venky Shankar [Wed, 2 Aug 2023 05:30:37 +0000 (11:00 +0530)]
Merge PR #52569 into main

* refs/pull/52569/head:
test/libcephfs: update delegation test assertions

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
23 months agodoc/rados/configuration: Avoid repeating "support" in msgr2.rst 52761/head
Ville Ojamo [Wed, 2 Aug 2023 04:31:50 +0000 (11:31 +0700)]
doc/rados/configuration: Avoid repeating "support" in msgr2.rst

Instead of saying "[...] support is not supported"
change the first "support" to "operation".

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
23 months agocrimson/os/seastore: retire_extent_addr clean up 52757/head
Xinyu Huang [Wed, 2 Aug 2023 02:09:52 +0000 (10:09 +0800)]
crimson/os/seastore: retire_extent_addr clean up

Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
23 months agoMerge pull request #47573 from phlogistonjohn/jjm-cpatch-py
Adam King [Tue, 1 Aug 2023 21:51:32 +0000 (17:51 -0400)]
Merge pull request #47573 from phlogistonjohn/jjm-cpatch-py

cpatch.py:  a python based cpatch script

Reviewed-by: Adam King <adking@redhat.com>
23 months agoMerge pull request #52732 from cbodley/wip-qa-cephfs-flake8-random
Casey Bodley [Tue, 1 Aug 2023 20:26:23 +0000 (16:26 -0400)]
Merge pull request #52732 from cbodley/wip-qa-cephfs-flake8-random

qa/cephfs: redefinition of unused 'random' from line 7

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Adam King <adking@redhat.com>
23 months agoMerge PR #52675 into main
Patrick Donnelly [Tue, 1 Aug 2023 18:56:32 +0000 (14:56 -0400)]
Merge PR #52675 into main

* refs/pull/52675/head:
test/TestOSDMap: don't use the deprecated std::random_shuffle method

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa/cephfs: redefinition of unused 'random' from line 7 52732/head
Casey Bodley [Tue, 1 Aug 2023 16:31:40 +0000 (12:31 -0400)]
qa/cephfs: redefinition of unused 'random' from line 7

seeing this run-tox-qa failure about tasks/cephfs/test_client_recovery.py:

246/285 Test #264: run-tox-qa ................................***Failed   58.54 sec
Requirement already satisfied: tox in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (4.6.4)
Requirement already satisfied: cachetools>=5.3.1 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (5.3.1)
Requirement already satisfied: chardet>=5.1 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (5.1.0)
Requirement already satisfied: colorama>=0.4.6 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (0.4.6)
Requirement already satisfied: filelock>=3.12.2 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (3.12.2)
Requirement already satisfied: packaging>=23.1 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (23.1)
Requirement already satisfied: platformdirs>=3.8 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (3.10.0)
Requirement already satisfied: pluggy>=1.2 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (1.2.0)
Requirement already satisfied: pyproject-api>=1.5.2 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (1.5.3)
Requirement already satisfied: tomli>=2.0.1 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (2.0.1)
Requirement already satisfied: virtualenv>=20.23.1 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from tox) (20.24.2)
Requirement already satisfied: distlib<1,>=0.3.7 in /home/jenkins-build/build/workspace/ceph-pull-requests/build/qa-virtualenv/lib/python3.10/site-packages (from virtualenv>=20.23.1->tox) (0.3.7)
flake8: install_deps /home/jenkins-build/build/workspace/ceph-pull-requests/qa> python -I -m pip install flake8
flake8: freeze /home/jenkins-build/build/workspace/ceph-pull-requests/qa> python -m pip freeze --all
flake8: flake8==6.1.0,mccabe==0.7.0,pip==22.3.1,pycodestyle==2.11.0,pyflakes==3.1.0,setuptools==65.6.3,wheel==0.38.4
flake8: commands[0] /home/jenkins-build/build/workspace/ceph-pull-requests/qa> flake8 --select=F,E9 --exclude=venv,.tox
./tasks/cephfs/test_client_recovery.py:12:1: F811 redefinition of unused 'random' from line 7
flake8: exit 1 (3.72 seconds) /home/jenkins-build/build/workspace/ceph-pull-requests/qa> flake8 --select=F,E9 --exclude=venv,.tox pid=706315
flake8: FAIL ✖ in 15.42 seconds

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agodoc: add MDS treatise on segments 48732/head
Patrick Donnelly [Fri, 4 Nov 2022 12:56:49 +0000 (08:56 -0400)]
doc: add MDS treatise on segments

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agopybind/mgr/dashboard: bump teuthology version
Patrick Donnelly [Sun, 11 Jun 2023 12:49:25 +0000 (08:49 -0400)]
pybind/mgr/dashboard: bump teuthology version

So stdin-killer and other utilities are installed in the bin directory.
vstart_runner.py now relies on their presence.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa/tasks/vstart_runner: stop overriding _run_python
Patrick Donnelly [Thu, 18 May 2023 13:56:33 +0000 (09:56 -0400)]
qa/tasks/vstart_runner: stop overriding _run_python

Now that the teuthology tools can be run in vstart_runner, there's no
reason to override this method.

Importantly, this enables the use of the new stdin-killer tool [1].

[1] https://github.com/ceph/teuthology/pull/1846

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: stop overriding ceph_w prefix in vstart_runner
Patrick Donnelly [Thu, 22 Jun 2023 02:39:13 +0000 (22:39 -0400)]
qa: stop overriding ceph_w prefix in vstart_runner

These tools are now available in the $PATH so it's no longer necessary
to remove them.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa/tasks/vstart_runner: update teuthology helper tool paths
Patrick Donnelly [Thu, 18 May 2023 13:54:23 +0000 (09:54 -0400)]
qa/tasks/vstart_runner: update teuthology helper tool paths

With [1], these tools are now installed in the teuthology virtualenv.
Update the path in the command arguments so these tools can be run via
sudo.

[1] https://github.com/ceph/teuthology/pull/1846

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa/tasks/vstart_runner: allow writing to command's stdin
Patrick Donnelly [Thu, 18 May 2023 13:52:10 +0000 (09:52 -0400)]
qa/tasks/vstart_runner: allow writing to command's stdin

There's no technical reason to disallow this. The original intent was to
avoid deadlocks but this possibility is already present when interacting
with a teuthology RemoteProcess. Avoiding it only for local processes
does not make sense.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agovstart.sh: always add CEPH_CONF to vstart_environment.sh
Patrick Donnelly [Tue, 20 Jun 2023 17:46:01 +0000 (13:46 -0400)]
vstart.sh: always add CEPH_CONF to vstart_environment.sh

This makes sourcing this for e.g. vstart_runner.py actually useful.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: use stdin-killer for python3 command
Patrick Donnelly [Tue, 16 May 2023 15:49:07 +0000 (11:49 -0400)]
qa: use stdin-killer for python3 command

This relies on the new stdin-killer [1] teuthology helper that allows
interacting with the command's stdin.

[1] https://github.com/ceph/teuthology/pull/1846

Fixes: 8bb77ed9e18d134e2e9964e950cbcbfc65e1b97d
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: add killpoint testing for mds shutdown
Patrick Donnelly [Wed, 8 Mar 2023 14:39:34 +0000 (09:39 -0500)]
qa: add killpoint testing for mds shutdown

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: fix background exit condition
Patrick Donnelly [Wed, 8 Mar 2023 14:38:00 +0000 (09:38 -0500)]
qa: fix background exit condition

This change causes the program to exit gracefully when stdin is closed
rather than with a Python exception.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: add filesystem helper for setting transient config
Patrick Donnelly [Thu, 15 Sep 2022 13:55:28 +0000 (09:55 -0400)]
qa: add filesystem helper for setting transient config

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: add helper for waiting for a rank to fail
Patrick Donnelly [Thu, 15 Sep 2022 13:55:47 +0000 (09:55 -0400)]
qa: add helper for waiting for a rank to fail

For killpoint testing.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: add incompat feature for minor log segments
Patrick Donnelly [Sat, 6 May 2023 19:52:55 +0000 (15:52 -0400)]
mds: add incompat feature for minor log segments

To prevent old MDS from joining a file system with the new log events.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: introduce ELid event to create/close log
Patrick Donnelly [Tue, 7 Mar 2023 18:24:38 +0000 (13:24 -0500)]
mds: introduce ELid event to create/close log

Prior to this set of commits, the MDS would write the ESubtreeMap to the
journal, trim everything up to that segment, then finally force the
trimming of that last segment (`MDLog::trim(0)`). This is awkward in the
new code which preserves a major segment boundary at the beginning of
the journal during trimming. Instead of writing a special case for this
situation, it seems more natural to just use a new "lid" or "cap" event
to mark the beginning of the journal when no subtree map can yet be
written but we need sequence numbers to tie in other MDS tables.

Like ESegment, ELid doesn't actually contain any state. It's just a
marker for the beginning the log after rank deactivation or rank
creation. It can appear in the middle of the log if the shutdown
sequence is interrupted while writing the event but the MDS will skip it
during replay in that case.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: change EResetJournal to major segment boundary
Patrick Donnelly [Tue, 7 Mar 2023 18:23:05 +0000 (13:23 -0500)]
mds: change EResetJournal to major segment boundary

When the MDS journal is wiped, EResetJournal is a major segment boundary
as it necessarily begins the journal.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: add killpoints for MDS shutdown
Patrick Donnelly [Tue, 7 Mar 2023 18:20:19 +0000 (13:20 -0500)]
mds: add killpoints for MDS shutdown

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoqa: add numerous subtree test
Patrick Donnelly [Mon, 30 Jan 2023 19:33:32 +0000 (14:33 -0500)]
qa: add numerous subtree test

When the ESubtreeMap is very large (~5k+ subtrees), the MDS will
end up logging only a few events (as bad as 1) per segment as the
subtree map dominates the segment size.

This test simply creates an artificially large subtree and confirms that
other file system activity completes in a timely manner. This is now
taking advantage of the minor segments which allows for a normal set of
events per log segment (and fewer subtree maps). The test fails on the
current main HEAD.

Historical note: when I first observed this abberant behavior, the
vstart cluster was actually using mds_debug_subtrees = True (the default
for every vstart cluster). This caused the MDS to write out the subtree
map (for debugging reasons) with every event. When testing the MDS with
large subtrees (distributed ephemeral pinning), this caused the MDS to
slow to a trickle of operations per second. Despite this unintentional
misconfiguration, the problem still exists but the number of auth
subtrees must be large for a particlar rank to replicate the behavior.

On main HEAD, the creation of 10k files (workload stage) takes ~110
seconds. On this branch, it takes ~30 seconds.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: track larger log events in perf dump
Patrick Donnelly [Wed, 1 Feb 2023 20:01:37 +0000 (15:01 -0500)]
mds: track larger log events in perf dump

Fixes: https://tracker.ceph.com/issues/58550
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: add minor LogSegment boundaries
Patrick Donnelly [Fri, 4 Nov 2022 17:50:13 +0000 (13:50 -0400)]
mds: add minor LogSegment boundaries

This commit adds a new ESegment event type which can delineate
LogSegments. This event can be used as an alternative to the heavy
weight ESubtreeMap which can be very expensive to generate when the MDS
has a large subtree map.

Fixes: https://tracker.ceph.com/issues/58154
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: obviate MDLog::start_entry
Patrick Donnelly [Fri, 4 Nov 2022 12:58:46 +0000 (08:58 -0400)]
mds: obviate MDLog::start_entry

The major problem here is that the MDLog::_start_entry method puts the
current event sequence number in the EMetaBlob of the event (if
present). Because of this, no other event can be submitted as this would
invalidate the event sequence. Instead, fixup the event sequence during
submission and simplify related logic that uses it during EMetaBlob
construction.

Secondarily, for the purposes of this commit series, _start_entry
introduced recursive locks when generating the ESubtreeMap within
MDLog::_segment_upkeep. So, this commit is a necessary cleanup.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: retype to properly sized unsigned ints
Patrick Donnelly [Fri, 4 Nov 2022 13:42:52 +0000 (09:42 -0400)]
mds: retype to properly sized unsigned ints

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: use unsigned type for event count
Patrick Donnelly [Wed, 1 Feb 2023 19:14:52 +0000 (14:14 -0500)]
mds: use unsigned type for event count

To resolve comparison warnings in subsequent commit.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: use base Context class for generalization
Patrick Donnelly [Fri, 4 Nov 2022 01:43:10 +0000 (21:43 -0400)]
mds: use base Context class for generalization

No reason to specialize to MDSContext.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: optimize segment lookup
Patrick Donnelly [Fri, 4 Nov 2022 01:41:32 +0000 (21:41 -0400)]
mds: optimize segment lookup

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: add stream dump for LogSegment
Patrick Donnelly [Thu, 3 Nov 2022 14:30:53 +0000 (10:30 -0400)]
mds: add stream dump for LogSegment

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: handle conf changes in mdlog
Patrick Donnelly [Wed, 1 Feb 2023 15:08:19 +0000 (10:08 -0500)]
mds: handle conf changes in mdlog

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: remove redundant comment
Patrick Donnelly [Wed, 2 Nov 2022 14:09:19 +0000 (10:09 -0400)]
mds: remove redundant comment

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: remove unused method
Patrick Donnelly [Wed, 2 Nov 2022 16:53:52 +0000 (12:53 -0400)]
mds: remove unused method

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: set a reasonable minimum number of segments
Patrick Donnelly [Wed, 1 Feb 2023 16:07:01 +0000 (11:07 -0500)]
mds: set a reasonable minimum number of segments

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agomds: sort configs
Patrick Donnelly [Wed, 1 Feb 2023 16:05:47 +0000 (11:05 -0500)]
mds: sort configs

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
23 months agoMerge PR #51995 into main
Venky Shankar [Tue, 1 Aug 2023 15:06:59 +0000 (20:36 +0530)]
Merge PR #51995 into main

* refs/pull/51995/head:
qa: wait for file to have correct size

Reviewed-by: Milind Changire <mchangir@redhat.com>
23 months agoMerge pull request #52305 from Posrabi/wip-disk-frag-sim-metrics
Adam Kupczyk [Tue, 1 Aug 2023 13:50:41 +0000 (15:50 +0200)]
Merge pull request #52305 from Posrabi/wip-disk-frag-sim-metrics

test/objectstore: Disk Fragmentation Simulator Metrics

23 months agoexporter: fix instance_id labeld value for rgw in exporter 52698/head
avanthakkar [Sun, 30 Jul 2023 21:09:36 +0000 (02:39 +0530)]
exporter: fix instance_id labeld value for rgw in exporter

Signed-off-by: avanthakkar <avanjohn@gmail.com>
23 months agoscript: add a new cpatch.py that is like cpatch but in python 47573/head
John Mulligan [Mon, 25 Jul 2022 21:01:12 +0000 (17:01 -0400)]
script: add a new cpatch.py that is like cpatch but in python

This is a somewhat straightforward translation of the current cpatch
bash script into python. The image is built in the same manner but some
of the python components can be selected in a more granular manner.

Why do this? I had my own private copy of the cpatch script that I have
been modifying for my own needs, one that has the previously mentioned
more granular selection of python components. However, I had additional
plans for this script and found it difficult to manage and I felt that a
single-source-file python program would allow the use of python's nicer
(IMO) CLI parsing, data structures, and standard library modules. I also
think that this provides a cleaner program structure that will allow for
experimentation with different backends vs. the current approach of
copying files and creating a temporary Dockerfile.

For whatever reason the original cpatch was assuming that the python
version was 3.8, however in the current ceph images using centos 8
stream as a base, python 3.6 is the available python version.

Old versions of ceph kept cephadm as one large single source file in the
source tree. New versions "compile" cephadm into a python zipapp. Try to
automatically detect which case and "install" the correct form of
cephadm.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
23 months agoMerge pull request #52526 from rhcs-dashboard/volume-create
Pedro Gonzalez Gomez [Tue, 1 Aug 2023 11:17:13 +0000 (13:17 +0200)]
Merge pull request #52526 from rhcs-dashboard/volume-create

mgr/dashboard: cephfs volume creation form

Reviewed-by: Pegonzal <NOT@FOUND>
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
23 months agoMerge pull request #52493 from rhcs-dashboard/cluster-upgrade-ui
Pedro Gonzalez Gomez [Tue, 1 Aug 2023 08:46:51 +0000 (10:46 +0200)]
Merge pull request #52493 from rhcs-dashboard/cluster-upgrade-ui

mgr/dashboard: cluster upgrade start UI

Reviewed-by: Pegonzal <pegonzal@redhat.com>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Nizamudeen A <nia@redhat.com>
23 months agotest/TestOSDMap: don't use the deprecated std::random_shuffle method 52675/head
Leonid Usov [Thu, 27 Jul 2023 15:55:19 +0000 (18:55 +0300)]
test/TestOSDMap: don't use the deprecated std::random_shuffle method

Signed-off-by: Leonid Usov <leonid.usov@ibm.com>
Fixes: https://tracker.ceph.com/issues/62203
23 months agoMerge pull request #52701 from rhcs-dashboard/flake8-fix
Nizamudeen A [Tue, 1 Aug 2023 05:36:50 +0000 (11:06 +0530)]
Merge pull request #52701 from rhcs-dashboard/flake8-fix

mgr: fix flake8 compliants

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: phlogistonjohn <NOT@FOUND>
23 months agorgw/swift: remove redundant moves of object name 52719/head
Casey Bodley [Mon, 31 Jul 2023 23:52:15 +0000 (19:52 -0400)]
rgw/swift: remove redundant moves of object name

resolves a compiler warning:

/home/cbodley/ceph/src/rgw/rgw_rest_swift.cc: In member function ‘RGWOp* RGWSwiftWebsiteHandler::get_ws_listing_op()’:
/home/cbodley/ceph/src/rgw/rgw_rest_swift.cc:2558:33: warning: redundant move in initialization [-Wredundant-move]
 2558 |   std::string prefix = std::move(s->object->get_name());
      |                        ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/cbodley/ceph/src/rgw/rgw_rest_swift.cc:2558:33: note: remove ‘std::move’ call

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agoMerge pull request #52341 from mkogan1/wip-T52363-xrmeng8756
Casey Bodley [Mon, 31 Jul 2023 22:15:05 +0000 (18:15 -0400)]
Merge pull request #52341 from mkogan1/wip-T52363-xrmeng8756

rgw: fix the Content-Length in response header of static website

Reviewed-by: Casey Bodley <cbodley@redhat.com>
23 months agoec: initialize lost_chunk in ErasureCodeClay 52714/head
Casey Bodley [Mon, 31 Jul 2023 21:01:52 +0000 (17:01 -0400)]
ec: initialize lost_chunk in ErasureCodeClay

[346/687] Building CXX object src/erasure-code/clay/CMakeFiles/ec_clay.dir/ErasureCodeClay.cc.o
In file included from /home/cbodley/ceph/src/common/dout.h:21,
                 from /home/cbodley/ceph/src/common/debug.h:18,
                 from /home/cbodley/ceph/src/erasure-code/clay/ErasureCodeClay.cc:22:
home/cbodley/ceph/src/erasure-code/clay/ErasureCodeClay.cc: In member function ‘int ErasureCodeClay::repair_one_lost_chunk(std::map<int, ceph::buffer::v15_2_0::list>&, std::set<int>&, std::map<int, ceph::buffer::v15_2_0::list>&, int, std::vector<std::pair<int, int> >&)’:
/home/cbodley/ceph/src/erasure-code/clay/ErasureCodeClay.cc:620:41: warning: ‘lost_chunk’ may be used uninitialized [-Wmaybe-uninitialized]
  620 |             ceph_assert(y == lost_chunk / q);
      |                              ~~~~~~~~~~~^~~
/home/cbodley/ceph/src/include/ceph_assert.h:106:6: note: in definition of macro ‘ceph_assert’
  106 |    ((expr) \
      |      ^~~~
/home/cbodley/ceph/src/erasure-code/clay/ErasureCodeClay.cc:510:7: note: ‘lost_chunk’ was declared here
  510 |   int lost_chunk;
      |       ^~~~~~~~~~

Signed-off-by: Casey Bodley <cbodley@redhat.com>
23 months agoMerge pull request #52131 from cityofships/docs_radosgw
zdover23 [Mon, 31 Jul 2023 20:31:41 +0000 (06:31 +1000)]
Merge pull request #52131 from cityofships/docs_radosgw

doc/radosgw: correct emphasis in rate limit section

Reviewed-by: Zac Dover <zac.dover@proton.me>
23 months agobuild: Remove old ceph-libboost* packages in install-deps 52559/head
Adam Emerson [Wed, 19 Jul 2023 21:12:08 +0000 (17:12 -0400)]
build: Remove old ceph-libboost* packages in install-deps

Here, we extract `clean_boost_on_ubuntu()` and call it before other
installs on Debian distributions so that if we install a system boost,
a potentially newer `ceph-libboost` won't get in the way.

As the sources.list.d being removed in the original cleanup code isn't
the one we're currently installing in the install code, add a removal
for the currently used source, then do apt-update so packages from the
removed source are no longer included as available.

Two subsidiary dev packages from conflicting boost libraries can be
installed, but it leaves apt in an inconsistent state. To clean this
up, add `--fix-missing` to the removal line and call
`clean_boost_on_ubuntu()` before other uses of apt.

Fixes: https://tracker.ceph.com/issues/62097
Signed-off-by: Adam Emerson <aemerson@redhat.com>
23 months agodoc/radosgw: correct emphasis in rate limit section 52131/head
Piotr Parczewski [Mon, 31 Jul 2023 14:42:26 +0000 (16:42 +0200)]
doc/radosgw: correct emphasis in rate limit section

Signed-off-by: Piotr Parczewski <piotr@stackhpc.com>
23 months agoMerge pull request #52603 from cbodley/wip-62135
Casey Bodley [Mon, 31 Jul 2023 14:25:06 +0000 (10:25 -0400)]
Merge pull request #52603 from cbodley/wip-62135

qa/rgw: pacific upgrade disables centos9

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
23 months agoqa/cephfs: fix test_disallow_monitor_managed_snaps_for_fs_pools 52709/head
Rishabh Dave [Mon, 31 Jul 2023 12:44:45 +0000 (18:14 +0530)]
qa/cephfs: fix test_disallow_monitor_managed_snaps_for_fs_pools

run_cluster_cmd() method is not available anymore because it was deleted
here on this PR -
https://github.com/ceph/ceph/pull/50569/files#diff-1c6c246ba42f343603d7174198dd1fb9c2654b6c883594d1a0891096b7a35875L408

Fixes: https://tracker.ceph.com/issues/62243
Signed-off-by: Rishabh Dave <ridave@redhat.com>
23 months agoMerge pull request #51987 from rkachach/fix_issue_61628
Adam King [Mon, 31 Jul 2023 12:34:54 +0000 (08:34 -0400)]
Merge pull request #51987 from rkachach/fix_issue_61628

mgr/cephadm: storing prometheus/alertmanager credentials in monstore

Reviewed-by: Adam King <adking@redhat.com>
23 months agoMerge pull request #52622 from rhcs-dashboard/allow-put-cors
Nizamudeen A [Mon, 31 Jul 2023 09:24:49 +0000 (14:54 +0530)]
Merge pull request #52622 from rhcs-dashboard/allow-put-cors

mgr/dashboard: allow PUT in CORS

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
23 months agomgr: fix some flake8 complaints 52701/head
Nizamudeen A [Mon, 31 Jul 2023 09:20:57 +0000 (14:50 +0530)]
mgr: fix some flake8 complaints

Signed-off-by: Nizamudeen A <nia@redhat.com>
23 months agomgr/dashboard: cluster upgrade start UI 52493/head
avanthakkar [Mon, 17 Jul 2023 18:11:51 +0000 (23:41 +0530)]
mgr/dashboard: cluster upgrade start UI

Fixes: https://tracker.ceph.com/issues/61928
Signed-off-by: avanthakkar <avanjohn@gmail.com>
23 months agomgr/dashboard: cephfs volume creation form 52526/head
Pere Diaz Bou [Tue, 18 Jul 2023 19:30:17 +0000 (21:30 +0200)]
mgr/dashboard: cephfs volume creation form

Fixes: https://tracker.ceph.com/issues/62085
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
23 months agoMerge pull request #52317 from rhcs-dashboard/rgw-overview-dashboard
Aashish Sharma [Mon, 31 Jul 2023 05:36:44 +0000 (11:06 +0530)]
Merge pull request #52317 from rhcs-dashboard/rgw-overview-dashboard

mgr/dashboard: add inventory card  and single stat cards to rgw overview dashboard

Reviewed-by: Nizamudeen A <nia@redhat.com>
23 months agoMerge pull request #52435 from vedanshbhartia/coverity_invalid_typename
Yuval Lifshitz [Sun, 30 Jul 2023 12:58:16 +0000 (15:58 +0300)]
Merge pull request #52435 from vedanshbhartia/coverity_invalid_typename

rgw: typecast long long to int when passing length to format string

23 months agoMerge pull request #52688 from petrutlucian94/avoid_tzset
Ilya Dryomov [Fri, 28 Jul 2023 22:23:42 +0000 (00:23 +0200)]
Merge pull request #52688 from petrutlucian94/avoid_tzset

build: globally set FMT_USE_TZSET=0 for Windows

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
23 months agoMerge pull request #52668 from bluikko/patch-16
Anthony D'Atri [Fri, 28 Jul 2023 16:38:55 +0000 (12:38 -0400)]
Merge pull request #52668 from bluikko/patch-16

doc/radosgw: Add missing space to date option spec in admin.rst

23 months agoMerge pull request #52685 from bluikko/patch-17
Anthony D'Atri [Fri, 28 Jul 2023 15:15:19 +0000 (11:15 -0400)]
Merge pull request #52685 from bluikko/patch-17

doc/mgr/ceph_api: Promptify example commands in index.rst

23 months agobuild: globally set FMT_USE_TZSET=0 for Windows 52688/head
Lucian Petrut [Fri, 28 Jul 2023 11:27:56 +0000 (11:27 +0000)]
build: globally set FMT_USE_TZSET=0 for Windows

We're currently setting FMT_USE_TZSET=0 when building libfmt
in order to avoid the _tzset function, which is unavailable
under Mingw:
https://github.com/ceph/ceph/commit/aa5769ecf1d80fc9824280d2e90fd4c61a0e7769

The issue is that it still gets used by fmt/chrono.h, which is
why we'll move this definition to the top level cmake file.

Note that the Windows build is currently failing as a result of
a recent change: https://github.com/ceph/ceph/pull/52590/files

  In file included from ceph/src/common/ceph_time.h:22,
                   from ceph/src/include/encoding.h:31,
                   from ceph/src/include/uuid.h:9,
                   from ceph/src/include/types.h:21,
                   from ceph/src/crush/CrushWrapper.h:14,
                   from ceph/src/crush/CrushCompiler.h:7,
                   from ceph/src/crush/CrushCompiler.cc:4:
  ceph/src/fmt/include/fmt/chrono.h: In lambda function:
  ceph/src/fmt/include/fmt/chrono.h:953:5: error: ‘_tzset’ was
  not declared in this scope; did you mean ‘tzset’?
    953 |     _tzset();
        |     ^~~~~~
        |     tzset

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
23 months agoMerge pull request #52191 from rhcs-dashboard/fix-daemon-labels-exporter
Nizamudeen A [Fri, 28 Jul 2023 13:16:35 +0000 (18:46 +0530)]
Merge pull request #52191 from rhcs-dashboard/fix-daemon-labels-exporter

mgr/dashboard: empty grafana panels for performance of daemons

Reviewed-by: Pegonzal <NOT@FOUND>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
23 months agomgr/dashboard: allow PUT in CORS 52622/head
Nizamudeen A [Tue, 25 Jul 2023 09:21:40 +0000 (14:51 +0530)]
mgr/dashboard: allow PUT in CORS

Fixes: https://tracker.ceph.com/issues/62222
Signed-off-by: Nizamudeen A <nia@redhat.com>
23 months agomgr/dashboard: empty grafana panels for performance of daemons 52191/head
avanthakkar [Mon, 26 Jun 2023 07:11:24 +0000 (12:41 +0530)]
mgr/dashboard: empty grafana panels for performance of daemons

Fixes: https://tracker.ceph.com/issues/61792
Signed-off-by: avanthakkar <avanjohn@gmail.com>
Removing the `ceph-` prefix from ceph_daemon label to adopt it with the label
format used by queries in grafana dashboards. Also changing the
`instance_id` label for rgw to match the values coming from
exporter and prometheus module

23 months agodoc/mgr/ceph_api: Promptify example commands in index.rst 52685/head
Ville Ojamo [Fri, 28 Jul 2023 04:49:19 +0000 (11:49 +0700)]
doc/mgr/ceph_api: Promptify example commands in index.rst

Use the more modern prompt block instead of
using code blocks for example commands.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
23 months agodoc/radosgw: Add missing space to date option spec in admin.rst 52668/head
Ville Ojamo [Thu, 27 Jul 2023 07:56:58 +0000 (14:56 +0700)]
doc/radosgw: Add missing space to date option spec in admin.rst

The start time and end time CLI option specification is missing a space between the date and the optional time value. Also expand the text to talk about "optional time" after the date.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
23 months agoMerge pull request #52549 from cbodley/wip-qa-distros-centos9-no-copr
Ilya Dryomov [Thu, 27 Jul 2023 19:40:07 +0000 (21:40 +0200)]
Merge pull request #52549 from cbodley/wip-qa-distros-centos9-no-copr

qa/distros: disable ceph/el9 copr workaround for missing python deps

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
23 months agoMerge pull request #52671 from zdover23/wip-doc-2023-07-27-readmemd-2-of-x
zdover23 [Thu, 27 Jul 2023 19:11:44 +0000 (05:11 +1000)]
Merge pull request #52671 from zdover23/wip-doc-2023-07-27-readmemd-2-of-x

doc: update README.md install procedure

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
23 months agoMerge pull request #52591 from ronen-fr/wip-rf-cephx-init
Ronen Friedman [Thu, 27 Jul 2023 16:13:06 +0000 (19:13 +0300)]
Merge pull request #52591 from ronen-fr/wip-rf-cephx-init

cephx: initializing two member variables in the ctors

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
23 months agoMerge pull request #52590 from ronen-fr/wip-rf-res-type2
Ronen Friedman [Thu, 27 Jul 2023 15:24:06 +0000 (18:24 +0300)]
Merge pull request #52590 from ronen-fr/wip-rf-res-type2

osd/scrub: fixing & improving ReservationTimeout handler messages

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
23 months agoMerge pull request #52084 from rhcs-dashboard/fix-exporter-addrs
Adam King [Thu, 27 Jul 2023 13:58:51 +0000 (09:58 -0400)]
Merge pull request #52084 from rhcs-dashboard/fix-exporter-addrs

exporter: ceph-exporter scrapes failing on multi-homed server

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@ibm.com>
Reviewed-by: Redouane Kachach <rkachach@redhat.com>
23 months agodoc: update README.md install procedure 52671/head
Zac Dover [Thu, 27 Jul 2023 11:49:19 +0000 (21:49 +1000)]
doc: update README.md install procedure

Add instructions directing the reader to install the "python3-routes"
package. This package is required in order to launch the dashboard after
the installation procedure has completed, but is not yet included in the
install-deps.sh script.

Signed-off-by: Zac Dover <zac.dover@proton.me>
23 months agoMerge PR #52376 into main
Venky Shankar [Thu, 27 Jul 2023 11:08:36 +0000 (16:38 +0530)]
Merge PR #52376 into main

* refs/pull/52376/head:
mds: skip forwarding request if the session were removed

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
23 months agoMerge PR #52176 into main
Venky Shankar [Thu, 27 Jul 2023 11:07:55 +0000 (16:37 +0530)]
Merge PR #52176 into main

* refs/pull/52176/head:
mds: remove calculating caps after adding revokes back

Reviewed-by: Venky Shankar <vshankar@redhat.com>