src/test: Test case for bilog trim across reshard event#44758
src/test: Test case for bilog trim across reshard event#44758TRYTOBE8TME wants to merge 150 commits intoceph:wip-rgw-multisite-reshardfrom
Conversation
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
allows other code to spawn this coroutine without having the class definition Signed-off-by: Casey Bodley <cbodley@redhat.com>
RGWShardCollectCR was hard-coded to ignore ENOENT errors and print a 'failed to fetch log status' error message. this moves that logic into a handle_result() virtual function. it also exposes the member variables 'status' and 'max_concurrent' as protected, so they can be consulted or modified by overrides of handle_result() and spawn_next() Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
a coroutine to initialize a bucket for full sync using a new bucket-wide sync status object Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
full sync happens as the bucket level, so the shards will always start in StateIncrementalSync Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
renamed ListBucketShardCR to ListRemoteBucketCR and removed the shard-id parameter renamed BucketFullSyncShardMarkerTrack to BucketFullSyncMarkerTrack, which now updates the bucket-level rgw_bucket_sync_status renamed BucketShardFullSyncCR to BucketFullSyncCR BucketSyncCR now takes a bucket-wide lease during full sync Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
if metadata sync hasn't finished, the 'bucket checkpoint' commands may not find its bucket info Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
the ability to filter tests by attribute is provided by the nose.plugins.attrib plugin, which wasn't being loaded by default Signed-off-by: Casey Bodley <cbodley@redhat.com>
this backoff is triggered often by the per-bucket lease for full sync, and causes tests to fail with checkpoint timeouts Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Determining whether a bucket is indexless starting with an RGWBucketInfo object requires traversing multiple data structures and "inside knowledge" blurring the line between interface and implementation. The same applies for retrieving the current index for non-indexless buckets. This commit adds to the RGWBucketInfo interface to make this information readily accessible. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
The code for bucket stats was recently updated to check for an indexless bucket before proceeding. The interface on RGWBucketInfo was recently expanded to support these types of checks, so it is now used. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
The "bucket radoslist" sub-command of radosgw-admin is supposed to list all rados objects tied to one or all directories and thereby provide a way to determine orphaned rados objects. But indexless buckets don't provide an index to employ for this purpose. So warnings or errors should be provided depending on the circumstances. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
With the new resharding code, some bucket metadata that is stored as xattrs (e.g., ACLs, life-cycle policies) were not sent with the updated bucket instance data when resharding completed. As a result, resharding has a regression where that metadata is lost after a successful reshard. This commit restores the variable in the RGWBucketReshard class that maintains the bucket attributes, so they can be saved when the bucket instance object is updated. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
There appears to be a long-standing bug in RGW such that when resharding is cancelled and the bucket instance is updated to reflect the new resharding status, the xattrs were lost. The xattrs are used to store metadata such as ACLs and LifeCycle policies. This commit makes sure that all call paths that lead to a cancelled reshard provide the xattrs, so they can be included when the bucket instance info is updated. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
use an API that does not check for cache inconsistency hence, "WARNING: The bucket info cache is inconsistent" warnings is removed from reshard Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
b6342d0 to
8800bf7
Compare
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
Resharding a bucket and then performing the bilog trim Signed-off-by: Kalpesh Pandya <kapandya@redhat.com>
i added a new |
d0f01cf to
fe5ea5e
Compare
Signed-off-by: Kalpesh Pandya <kapandya@redhat.com>
3e0b8b9 to
4fd8ad2
Compare
@cbodley Can you please elaborate this part or maybe can give a hint on how this can be done? |
|
hey @TRYTOBE8TME, i'd start by creating a bucket with some objects in it, then playing around with then, once the other zone is all caught up with sync, you can run this is exactly what we want to write a test for; for example, do 2 reshards and verify that |
|
@TRYTOBE8TME Before you get on to anything else, can you rebase this? |
@adamemerson sorry, I've created a new alias PR for this #45053 and would be closing this |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
Resharding a bucket and then performing the bilog trim
Signed-off-by: Kalpesh Pandya kapandya@redhat.com
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox