Skip to content

Commit 3b9ba90

Browse files
rgw: add a multisite test case for stacked delete markers
Signed-off-by: Jane Zhu <[email protected]>
1 parent 65e3e9b commit 3b9ba90

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/test/rgw/rgw_multi/tests.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,8 @@ def test_delete_marker_full_sync():
10381038
# create a delete marker
10391039
key2 = new_key(zone, bucket, 'obj')
10401040
key2.delete()
1041+
key2.delete()
1042+
key2.delete()
10411043

10421044
# wait for full sync
10431045
for _, bucket in zone_bucket:
@@ -1062,11 +1064,40 @@ def test_suspended_delete_marker_full_sync():
10621064
# create a delete marker
10631065
key2 = new_key(zone, bucket, 'obj')
10641066
key2.delete()
1067+
key2.delete()
1068+
key2.delete()
10651069

10661070
# wait for full sync
10671071
for _, bucket in zone_bucket:
10681072
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
10691073

1074+
def test_concurrent_delete_markers_incremental_sync():
1075+
zonegroup = realm.master_zonegroup()
1076+
zonegroup_conns = ZonegroupConns(zonegroup)
1077+
zone = zonegroup_conns.rw_zones[0]
1078+
1079+
# create a versioned bucket
1080+
bucket = zone.create_bucket(gen_bucket_name())
1081+
log.debug('created bucket=%s', bucket.name)
1082+
bucket.configure_versioning(True)
1083+
1084+
zonegroup_meta_checkpoint(zonegroup)
1085+
1086+
obj = 'obj'
1087+
1088+
# upload a dummy object and wait for sync. this forces each zone to finish
1089+
# a full sync and switch to incremental
1090+
new_key(zone, bucket, obj).set_contents_from_string('')
1091+
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
1092+
1093+
# create several concurrent delete markers on each zone and let them race to sync
1094+
for i in range(2):
1095+
for zone_conn in zonegroup_conns.rw_zones:
1096+
key = new_key(zone_conn, bucket, obj)
1097+
key.delete()
1098+
1099+
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
1100+
10701101
def test_bucket_versioning():
10711102
buckets, zone_bucket = create_bucket_per_zone_in_realm()
10721103
for _, bucket in zone_bucket:

0 commit comments

Comments
 (0)