swift/test/probe
Alistair Coles 29418998b7 Fix shrinking making acceptors prematurely active
During sharding a shard range is moved to CLEAVED state when cleaved
from its parent. However, during shrinking an acceptor shard should
not be moved to CLEAVED state when the shrinking shard cleaves to it,
because the shrinking shard is not the acceptor's parent and does not
know if the acceptor has yet been cleaved from its parent.

The existing attempt to prevent a shrinking shard updating its
acceptor state relied on comparing the acceptor namespace to the
shrinking shard namespace: if the acceptor namespace fully enclosed
the shrinkng shard then it was inferred that shrinking was taking
place. That check is sufficient for normal shrinking of one shard into
an expanding acceptor, but is not sufficient when shrinking in order
to fix overlaps, when a shard might shrink into more than one
acceptor, none of which completely encloses the shrinking shard.

Fortunately, since [1], it is possible to determine that a shard is
shrinking from its own shard range state being either SHRINKING or
SHRUNK.

It is still advantageous to delete and merge the shrinking shard range
into the acceptor when the acceptor fully encloses the shrinking shard
because that increases the likelihood of the root being updated with
the deleted shard range in a timely manner.

[1] Related-Change: I9034a5715406b310c7282f1bec9625fe7acd57b6
Change-Id: I91110bc747323e757d8b63003ad3d38f915c1f35
2021-04-29 09:38:46 +01: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 probe test: use helper functions more widely 2021-04-08 12:18:40 +01: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 Update SAIO & docker image to use 62xx ports 2020-07-20 15:17:12 -07: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 Merge "probe: Add test for syncing a delete when the remote 404s" 2020-01-31 22:45:24 +00:00
test_dark_data.py Let developers/operators add watchers to object audit 2020-12-26 17:16:14 -06: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 Merge "Update SAIO & docker image to use 62xx ports" 2020-08-01 02:39:00 +00:00
test_object_handoff.py replace md5 with swift utils version 2020-12-15 09:52:55 -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 relinker: use abs path index in part power replace 2021-03-17 12:29:23 +00:00
test_object_versioning.py New Object Versioning mode 2020-01-24 17:39:56 -08:00
test_reconstructor_rebuild.py Refactor reconstructor probe tests 2021-01-11 13:57:55 +00:00
test_reconstructor_revert.py ssync: sync non-durable fragments from handoffs 2021-01-20 12:00:10 +00: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 Fix shrinking making acceptors prematurely active 2021-04-29 09:38:46 +01:00
test_signals.py Merge "probe-tests: Avoid a DuplicateSectionError on py3" 2020-10-07 00:11:43 +00:00