swift/test/probe
Jianjian Huo a53270a15a swift-manage-shard-ranges repair: check for parent-child overlaps.
Stuck shard ranges have been seen in the production, root cause has been
traced back to that s-m-s-r failed to detect parent-child relationship
in overlaps and it either shrinked child shard ranges into parents or
the other way around. A patch has been added to check minimum age before
s-m-s-r performs repair, which will most likely prevent this from
happening again, but we also need to check for parent-child relationship
in overlaps explicitly during repairs. This patch will do that and
remove parent or child shard ranges from doners, and prevent s-m-s-r
from shrinking them into acceptor shard ranges.

Drive-by 1: fixup gap repair probe test.
The probe test is no longer appropriate because we're no longer
allowed to repair parent-child overlaps, so replace the test with a
manually created gap.

Drive-by 2: address probe test TODOs.
The commented assertion would fail because the node filtering
comparison failed to account for the same node having different indexes
when generated for the root versus the shard. Adding a new iterable
function filter_nodes makes the node filtering behave as expected.

Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>

Change-Id: Iaa89e94a2746ba939fb62449e24bdab9666d7bab
2022-09-09 11:04:43 -07:00
..
__init__.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
brain.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
common.py swift-manage-shard-ranges repair: check for parent-child overlaps. 2022-09-09 11:04:43 -07:00
test_account_failures.py Remove executable flag from some test modules 2016-10-31 21:22:10 +00:00
test_account_get_fake_responses_match.py probe tests: Work when fronted by a TLS terminator 2020-05-04 10:54:01 -07:00
test_account_reaper.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
test_container_failures.py Band-aid and test the crash of the account server 2021-08-12 16:26:48 -05:00
test_container_merge_policy_index.py replace md5 with swift utils version 2020-12-15 09:52:55 -05:00
test_container_sync.py Get rid of pipeline_property 2022-01-27 14:40:27 -08:00
test_dark_data.py Make dark data watcher ignore the newly updated objects 2021-06-30 16:38:57 -05:00
test_db_replicator.py Apply remote metadata in _handle_sync_response 2018-03-06 19:52:59 +00:00
test_empty_device_handoff.py pep8: Turn on E305 2020-04-03 21:22:38 +02:00
test_object_async_update.py func tests: work with etag-quoter on by default 2020-06-01 18:38:23 -05:00
test_object_conditional_requests.py py3: (mostly) port probe tests 2019-09-04 10:17:45 -07:00
test_object_expirer.py Add a new URL parameter to allow for async cleanup of SLO segments 2020-11-10 18:22:01 +00:00
test_object_failures.py Get rid of port to node assumptions and their modulo kludges 2021-09-30 00:42:24 -05:00
test_object_handoff.py Get rid of port to node assumptions and their modulo kludges 2021-09-30 00:42:24 -05:00
test_object_metadata_replication.py func tests: work with etag-quoter on by default 2020-06-01 18:38:23 -05:00
test_object_partpower_increase.py Drop the unnecessary sudo from probe tests 2021-05-10 17:25:09 -05:00
test_object_versioning.py New Object Versioning mode 2020-01-24 17:39:56 -08:00
test_orphan_container.py Band-aid and test the crash of the account server 2021-08-12 16:26:48 -05:00
test_reconstructor_rebuild.py reconstructor: make quarantine delay configurable 2021-07-06 16:41:08 +01:00
test_reconstructor_revert.py Get rid of port to node assumptions and their modulo kludges 2021-09-30 00:42:24 -05:00
test_replication_servers_working.py Have REPLICATE with suffixes just append to hashes.invalid 2020-11-16 08:21:16 -06:00
test_reserved_name.py Allow internal clients to use reserved namespace 2019-11-27 11:22:00 -06:00
test_sharder.py swift-manage-shard-ranges repair: check for parent-child overlaps. 2022-09-09 11:04:43 -07:00
test_signals.py Merge "probe-tests: Avoid a DuplicateSectionError on py3" 2020-10-07 00:11:43 +00:00