Commit Graph

139286 Commits

Author SHA1 Message Date
Casey Bodley
61cf6eec7b ReleaseNotes: document recovery of encrypted multipart objects
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-08-03 17:21:03 -04:00
Casey Bodley
e90bfba99c radosgw-admin: add command to resync encrypted multipart objects
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-08-03 16:56:49 -04:00
Casey Bodley
237fa27710 rgw: RGWRados::set_attrs() takes optional mtime
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-08-03 16:56:49 -04:00
Casey Bodley
07d28bac15 rgw: expose part id in RGWObjManifest iterator
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-08-03 16:56:49 -04:00
Casey Bodley
902d07499d rgw: preserve RGW_ATTR_CRYPT_PARTS of already-replicated objects
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-08-03 09:01:11 -04:00
Casey Bodley
e7d98fb369 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>
2023-08-03 09:01:11 -04:00
Casey Bodley
d8a82f5aaa 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>
2023-08-03 09:01:01 -04:00
Yingxin
076e9a750a
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>
2023-08-03 11:12:01 +08:00
Anthony D'Atri
61b8c05fcb
Merge pull request #52775 from dvanders/kplus1
doc/rados/operations: Correct EC min_size recommendation to K+1 in erasure-code.rst
2023-08-02 20:05:55 -04:00
Casey Bodley
8dd646d9e8
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>
2023-08-02 18:43:32 -04:00
Casey Bodley
51a2343187
Merge pull request #52714 from cbodley/wip-ec-clay-unit
ec: initialize lost_chunk in ErasureCodeClay

Reviewed-by: Neha Ojha <nojha@redhat.com>
2023-08-02 18:43:06 -04:00
Dan van der Ster
68faf88e6b 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>
2023-08-02 14:31:07 -07:00
Casey Bodley
7d7218ee3c
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>
2023-08-02 13:42:22 -04:00
Venky Shankar
cd18c51548 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>
2023-08-02 22:07:58 +05:30
Venky Shankar
7e60d477a8 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>
2023-08-02 22:06:09 +05:30
Anthony D'Atri
3dd7e5248d
Merge pull request #52761 from bluikko/patch-18
doc/rados/configuration: Avoid repeating "support" in msgr2.rst
2023-08-02 10:36:06 -04:00
Rishabh Dave
0584cd34b6
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>
2023-08-02 19:18:07 +05:30
Casey Bodley
dd4baa9b64
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>
2023-08-02 09:41:36 -04:00
Ilya Dryomov
81acc943c9
Merge pull request #52559 from adamemerson/wip-62097
build: Remove ceph-libboost* packages in install-deps

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2023-08-02 13:36:17 +02:00
Yuval Lifshitz
11439ecd89 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>
2023-08-02 10:27:40 +00:00
Avan
bab9535757
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>
2023-08-02 14:26:47 +05:30
zdover23
7931020f09
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>
2023-08-02 17:45:51 +10:00
Venky Shankar
3c98adbf74 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>
2023-08-02 12:13:57 +05:30
Venky Shankar
a920634317 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>
2023-08-02 11:00:37 +05:30
Ville Ojamo
df43ab5ba6
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>
2023-08-02 11:31:50 +07:00
Xinyu Huang
b99a1956bd crimson/os/seastore: retire_extent_addr clean up
Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
2023-08-02 10:09:52 +08:00
Adam King
ae3df0adde
Merge pull request #47573 from phlogistonjohn/jjm-cpatch-py
cpatch.py:  a python based cpatch script

Reviewed-by: Adam King <adking@redhat.com>
2023-08-01 17:51:32 -04:00
Casey Bodley
4b912b79c9
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>
2023-08-01 16:26:23 -04:00
Patrick Donnelly
468a193389
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>
2023-08-01 14:56:32 -04:00
Casey Bodley
568a21d83c 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>
2023-08-01 12:31:44 -04:00
Patrick Donnelly
bc75366b9c
doc: add MDS treatise on segments
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:28 -04:00
Patrick Donnelly
5dae704daf
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>
2023-08-01 11:16:28 -04:00
Patrick Donnelly
95e61803e0
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>
2023-08-01 11:16:28 -04:00
Patrick Donnelly
77bf36fa5a
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>
2023-08-01 11:16:28 -04:00
Patrick Donnelly
7db0e669c6
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>
2023-08-01 11:16:27 -04:00
Patrick Donnelly
193e50363d
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>
2023-08-01 11:16:27 -04:00
Patrick Donnelly
88c7af2756
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>
2023-08-01 11:16:27 -04:00
Patrick Donnelly
20184c23d3
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: 8bb77ed9e1
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:26 -04:00
Patrick Donnelly
936da39a15
qa: add killpoint testing for mds shutdown
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:02 -04:00
Patrick Donnelly
1fa0039a98
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>
2023-08-01 11:16:02 -04:00
Patrick Donnelly
1962322f59
qa: add filesystem helper for setting transient config
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:02 -04:00
Patrick Donnelly
a6b8bbd2cb
qa: add helper for waiting for a rank to fail
For killpoint testing.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
2c9892739c
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>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
5a53747654
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>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
553aa5e6cc
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>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
c325553476
mds: add killpoints for MDS shutdown
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
2142114a2d
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>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
d314003d88
mds: track larger log events in perf dump
Fixes: https://tracker.ceph.com/issues/58550
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
a76421a9be
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>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
f249dc13de
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>
2023-08-01 11:16:00 -04:00