summaryrefslogtreecommitdiffstats
path: root/src/test/rgw (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-01-24rgw: SAL drivers take `boost::asio::io_context`Adam C. Emerson4-4/+15
`RadosDriver` needs it, and since SAL generally uses `optional_yield`, other stores are going to need it to implement that sensibly. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2024-01-24ceph/async: `io_context_pool` constructor/start takes init functionAdam C. Emerson1-1/+22
Add overloads of the constructor and `start` that take an init function, for setting up the thread before dropping into `io_context::run`. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2024-01-24common/async: `io_context_pool` constructor takes int64_tAdam C. Emerson1-1/+1
Just because this is what Ceph's config uses and it saves a narrowing conversion. If we want to set a max value on the thread count, we should do it in config. Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2024-01-24include/inline_memory.h: Add missing includes to fix buildAdam Emerson1-2/+6
Signed-off-by: Adam Emerson <aemerson@redhat.com>
2024-01-23Update libkmip submodule to pull in some portability changes.Marcus Watts1-0/+0
Signed-off-by: Marcus Watts <mwatts@redhat.com>
2024-01-23bug fixes per QE recent defectsgalsalomon661-0/+0
update for the engine_version message s3select submodule Signed-off-by: galsalomon66 <gal.salomon@gmail.com>
2024-01-23doc: specify correct fs type for mkfsHimura Kazuto1-0/+1
The default value is ext2, which is not supported (anymore?). Signed-off-by: Vladislav Glagolev <vladislav.glagolev@devexpress.com>
2024-01-23rgw/lua: fix compilation issue when lua packages are disabledYuval Lifshitz1-1/+4
Fixes: https://tracker.ceph.com/issues/63578#change-253102 Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2024-01-23osd/scrub: check reservation replies for relevanceRonen Friedman5-52/+200
Compare a token (nonce) carried in the reservation reply with the remembered token of the reservation request. If they don't match, the reply is stale and should be ignored (and logged). Fixes: https://tracker.ceph.com/issues/64052 Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2024-01-23doc/radosgw: edit "read/write global rate limit" admin.rstZac Dover1-19/+30
Edit "Reading/Writing Global Rate Limit Configuration" in doc/radosgw/admin.rst. Signed-off-by: Zac Dover <zac.dover@proton.me>
2024-01-22rgw/multisite: add multisite test cases with some rgw instances downJane Zhu1-0/+191
Signed-off-by: Juan Zhu <jzhu4@dev-10-34-20-139.pw1.bcc.bloomberg.com>
2024-01-22osd/scrub: update job's NB on failureRonen Friedman12-25/+170
When a scrub job fails, update its NB to the current time plus a fixed delay. This prevents the job from being scheduled again immediately. Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2024-01-22osd/scrub: fix set_last_deep_scrub_stamp()Ronen Friedman2-2/+4
The call should update last_scrub_stamp, too, without requiring an extra call to on_scrub_schedule_input_change() Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2024-01-22osd/scrub: introduce a 'not before' attribute for scrub jobsRonen Friedman7-38/+68
The NB enables the OSD to delay the next attempt to schedule a specific scrub job. This is useful for jobs that have failed for whatever reason, especially if the primary has failed to acquire the replicas. Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2024-01-22osd/scrub: remove the 'penalized jobs' queueRonen Friedman5-139/+12
The 'penalized jobs' queue was used to track scrub jobs that had failed to acquire their replicas, and to prevent those jobs from being retried too quickly. This functionality will be replaced by a simple 'not before' delay (see the next commits). Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2024-01-21crimson/os/alienstore/alien_log: _flush concurrentlyMatan Breizman1-3/+2
In continuation to c15e56e386251403a876454f6a4aa186284565e1 Authored-by: Yingxin Cheng <yingxin.cheng@intel.com> Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-01-20PendingReleaseNotes: add rbd_diff_iterate2 noteIlya Dryomov1-0/+5
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd: try to preserve object map for diff-iterate in fast-diff modeIlya Dryomov3-9/+141
As an optimization, try to ensure that the object map for the end version is preloaded through the acquisition of exclusive lock and as a consequence remains around until exclusive lock is released. If it's not around, DiffRequest would (re)load it on each call. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: potentially use in-memory object map in DiffRequestIlya Dryomov4-119/+431
If the object map for the end version is around (already loaded in memory, either due to the end version being a snapshot or due to exclusive lock being held), use it to run diff-iterate against the beginning of time. Since it's the only object map needed in that case, such calls would be satisfied locally. Fixes: https://tracker.ceph.com/issues/63341 Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: decouple object map processing in DiffRequestIlya Dryomov2-133/+145
In preparation for potentially using in-memory object map, decouple object map processing from loading object maps and place the logic in prepare_for_object_map() and process_object_map(). Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20common/bit_vector: fix iterator vs reference constness confusionIlya Dryomov1-9/+7
T (ConstIterator or Iterator) is confused with const T here: IteratorImpl dereference operator is wrongly overloaded on const and returns Reference instead of ConstReference for ConstIterator. This then fails inside bufferlist bowels because Reference is incompatible with bufferlist::const_iterator. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: make object map in handle_load_object_map() localIlya Dryomov2-9/+8
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: don't resize object map in handle_load_object_map()Ilya Dryomov2-14/+45
Currently it's done in two cases: - if the loaded object map is larger than expected based on byte size, it's truncated to expected number of objects - in case of deep-copy, if the loaded object map is smaller than diff state, it's expanded to get "track the largest of all versions in the set" semantics Both of these cases can be easily dealt with without modifying the object map. Being able to process a const object map is needed for working on in-memory object map which is external to DiffRequest. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20common/bit_vector: fix IteratorImpl post-increment operatorIlya Dryomov1-1/+1
It's totally broken: instead of returning the current position and moving to the next position, it returns the next position and doesn't move anywhere. Luckily it hasn't been used until now. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd: drop DiffIterate::diff_object_map() declarationIlya Dryomov1-4/+0
This is a leftover from commit 2b3a46801d39 ("librbd: switch diff-iterate API to use new object-map diff helper"). Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd: propagate diff-iterate range to parent in fast-diff modeIlya Dryomov1-5/+7
When getting parent diff, pass the overlap-reduced image extent instead of the entire 0..overlap range to avoid a similar quadratic slowdown on cloned images. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: add support for ranged diff-iterateIlya Dryomov7-73/+243
Currently diff-iterate in fast-diff mode is performed on the entire image no matter what image extent is passed to the API. Then, unused diff just gets discarded as DiffIterate ends up querying only objects that the passed image extent maps to. This hasn't been an issue for internal consumers ("rbd du", "rbd diff", etc) because they work on the entire image, but turns out to lead to quadratic slowdown in some QEMU use cases. 0..UINT64_MAX range is carved out for deep-copy which is unranged by definition. To get effectively unranged diff-iterate, 0..UINT64_MAX-1 range can be used. Fixes: https://tracker.ceph.com/issues/63341 Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20include/intarith: introduce round_down_to()Ilya Dryomov2-1/+5
Same as with round_up_to(), d isn't required to be a power of two. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20test/librbd: expand TestMockObjectMapDiffRequest edge case coverageIlya Dryomov1-36/+438
For each covered edge case or error, run through the following scenarios: - where the edge case concerns snap_id_start - where the edge case concerns snap_id_end - where the edge case concerns intermediate snapshot and snap_id_start == 0 (diff against the beginning of time) - where the edge case concerns intermediate snapshot and snap_id_start != 0 (diff from snapshot) Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: allow intermediate snaps to be skipped on diff-iterateIlya Dryomov2-91/+148
In case of diff-iterate against the beginning of time, the result depends only on the end version. Loading and processing object maps or intermediate snapshots is redundant and can be skipped. This optimization is made possible by commit be507aaed15f ("librbd: diff-iterate shouldn't ever report "new hole" against a hole") and, to a lesser extent, the previous commit. Getting FastDiffInvalid, LoadObjectMapError and ObjectMapTooSmall to pass required tweaking not just expectations, but also start/end snap ids and thus also the meaning of these tests. This is addressed in the next commit. Fixes: https://tracker.ceph.com/issues/63341 Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: resurrect diff-iterate behavior when image is shrunkIlya Dryomov2-9/+369
The new "track the largest of all versions in the set, diff state is only ever grown" semantics introduced in commit 330f2a7bb94f ("librbd: helper state machine for computing diffs between object-maps") don't make sense for diff-iterate. It's a waste because DiffIterate won't query beyond the end version size -- this is baked into the API. Limit this behavior to deep-copy and resurrect the original behavior from 2015 for diff-iterate. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: fix diff from snapshot when image is grownIlya Dryomov3-7/+305
Commit 399a45e11332 ("librbd/object_map: rbd diff between two snapshots lists entire image content") fixed most of the damage caused by commit b81cd2460de7 ("librbd/object_map: diff state machine should track object existence"), but the case of a "resize diff" when diffing from snapshot was missed. An area that was freshly allocated in image resize is the same in principle as a freshly created image and objects marked OBJECT_EXISTS_CLEAN are no exception. Diff for such objects in such an area should be set to DIFF_STATE_DATA_UPDATED, however currently when diffing from snapshot, it's set to DIFF_STATE_DATA. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20librbd/object_map: drop bogus if in handle_load_object_map()Ilya Dryomov1-37/+35
It became redundant with commit b81cd2460de7 ("librbd/object_map: diff state machine should track object existence") -- it != end_it condition in the loop is sufficient. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20test/librbd: refactor TestMockObjectMapDiffRequest testsIlya Dryomov1-321/+254
In preparation for multiple similarly configured MockTestImageCtx objects being used in a single test, centralize their creation and add a couple of helpers for setting expectations from a callback. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20test/librbd: improve TestMockObjectMapDiffRequest.InvalidStartSnapIlya Dryomov1-1/+1
Use a range where only snap_id_start is invalid. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-01-20doc/radosgw: edit admin.rst "Get Bucket Rate Limit"Zac Dover1-9/+17
Edit "Get Bucket Rate Limit" in doc/radosgw/admin.rst. Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com> Signed-off-by: Zac Dover <zac.dover@proton.me>
2024-01-20crimson/osd/ops_executor: simplify prepare_clone, use set_clone_stateSamuel Just2-29/+20
- Remove static_snap_oi name -- left over from old classic implementation, misleading. - OpsExecutor::prepare_clone can only be invoked on a primary, remove the branch. - Create the obs directly and pass to obc via set_clone_state, which sets fully_loaded. Signed-off-by: Samuel Just <sjust@redhat.com>
2024-01-20crimson/osd: invalidate contents of obc_registry on interval_changeSamuel Just3-3/+21
We can't guarantee that all continuations will complete before on_flush, so we unhook and invalidate all live obcs from the registry upon interval_change. As long as any lingering continuations simply note the interval change and terminate, this should be safe. Signed-off-by: Samuel Just <sjust@redhat.com>
2024-01-19install-deps: Force remove ceph-libboost* packagesluo rixin1-0/+8
As `apt-get remove ceph-libboost*` show the error and cause the make check failed. `E: The package ceph-libboost1.79-dev needs to be reinstalled, but I can't find an archive for it.` The ceph-libboost* packages may be not removed, so use `dpkg` to force remove ceph-libboost*. Fixes: https://tracker.ceph.com/issues/64032 Signed-off-by: luo rixin <luorixin@huawei.com>
2024-01-18common/intrusive_lru: add clear() mechanism and state for removed items with ↵Samuel Just2-9/+117
live references We need to be able to clear the lru without waiting for all outstanding references to be released. Items with such references enter an invalidated state where references can still be added and removed with deletion at use_count == 0, but can't be accessed any longer via the lru. Signed-off-by: Samuel Just <sjust@redhat.com>
2024-01-18src: kernel mount command returning misleading error messageneeraj pratap singh1-1/+2
Fixes: https://tracker.ceph.com/issues/63866 Signed-off-by: Neeraj Pratap Singh <neesingh@redhat.com>
2024-01-18common/intrusive_lru: generalize evict() slightly to allow other target valuesSamuel Just1-5/+5
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-01-18common/intrusive_lru: clarify invariantsSamuel Just1-9/+26
Signed-off-by: Samuel Just <sjust@redhat.com>
2024-01-17mgr/rook: always recreate kvm default network + fix groups refreshRedouane Kachach3-9/+44
Fixes: https://tracker.ceph.com/issues/64027 This change also includes: - adding ~/.local/bin to path so behave binary can be found - adding requirements.txt file for testing dependencies - increasing timeout used to wait for tools deployment to 90s - increasing timeout used to wait for kvm network to 20s Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2024-01-17doc/rados/operations: add EC overhead table to erasure-code.rstAnthony D'Atri1-0/+178
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2024-01-17rgw/asio: Add asserts to ensure asio isn't running during `run` andSamarah1-0/+4
`stop` calls Signed-off-by: Samarah <samarah.uriarte@ibm.com>
2024-01-17qa/config/crimson_qa_overrides.yaml: Decrease lru_size for testingMatan Breizman1-0/+1
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-01-17test/neorados/misc: Crimson - Skip NeoRadosMisc.WriteSameMatan Breizman1-0/+1
See: https://tracker.ceph.com/issues/64040 Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-01-17test/librados/aio_cxx: Crimson - Skip LibRadosAio.MultiReadsMatan Breizman1-0/+1
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2024-01-17test/neorados/list: Seperate NeoRadosECTest from NeoRadosTestMatan Breizman4-98/+170
otherwise SKIP_IF_CRIMSON won't work in this case Signed-off-by: Matan Breizman <mbreizma@redhat.com>