mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 21:26:28 +00:00
fix(ecstore): preserve ILM state during pool decommission (#6369)
* fix(ecstore): migrate ILM metadata during decommission * fix(ecstore): verify ILM metadata before decommission * fix(ecstore): track ILM recovery across decommission * fix(ecstore): close ILM receipt recovery gaps * fix(ecstore): anchor decommission ILM receipts * fix(ecstore): re-export durable ILM checkpoint * fix(ecstore): avoid terminal receipt shadowing * fix(ecstore): harden durable ILM cursor receipts * fix(ecstore): repair durable ILM receipt recovery * test(ecstore): cover durable ILM recovery boundaries * test(ecstore): serialize multi-source ILM recovery * test(ecstore): compile multi-source ILM recovery * test(ecstore): isolate durable ILM scenario stack * fix(ecstore): preserve active ILM source journals * fix(ecstore): distinguish active ILM target cleanup * fix(ecstore): restore decommission test imports * fix(ecstore): drop removed decommission test import * fix(ecstore): remove duplicate decommission error helper * fix(ecstore): fence final decommission sweep * test(ecstore): cover final sweep cancel fence * fix(ecstore): fence decommission cancellation * fix(ecstore): remove redundant clone in test * fix(ecstore): keep manual transition progress compatible * fix(ecstore): restore decommission worker wrapper * fix(ecstore): restore decommission compile contracts * test(ecstore): adapt reload worker canceler
This commit is contained in:
@@ -78,6 +78,12 @@ test-group = 'embedded-test-ports'
|
||||
filter = 'package(rustfs-ecstore) & test(manual_transition_page_checkpoint_persists_durable_job_progress)'
|
||||
test-group = 'ecstore-serial-flaky'
|
||||
|
||||
# The durable ILM decommission regressions build isolated multi-pool stores and
|
||||
# deliberately take source or target disks offline while checking fencing.
|
||||
[[profile.default.overrides]]
|
||||
filter = 'package(rustfs-ecstore) & (test(decommission_migrates_and_verifies_registered_durable_ilm_records) | test(decommission_durable_ilm_target_read_error_is_not_masked_by_peer_success) | test(decommission_durable_ilm_terminal_receipt_recovers_failed_source_cleanup) | test(decommission_durable_ilm_receipt_pagination_fails_closed_on_second_page) | test(decommission_durable_ilm_recovery_keeps_multiple_active_sources))'
|
||||
test-group = 'ecstore-serial-flaky'
|
||||
|
||||
# Serialize the bucket-incarnation / lifecycle-fence tests. They drive
|
||||
# init_bucket_metadata_sys and bucket_metadata_sys_of, i.e. process-global
|
||||
# OnceLock state that serial_test's #[serial] cannot protect across nextest's
|
||||
@@ -190,6 +196,10 @@ test-group = 'embedded-test-ports'
|
||||
filter = 'package(rustfs-ecstore) & test(manual_transition_page_checkpoint_persists_durable_job_progress)'
|
||||
test-group = 'ecstore-serial-flaky'
|
||||
|
||||
[[profile.ci.overrides]]
|
||||
filter = 'package(rustfs-ecstore) & (test(decommission_migrates_and_verifies_registered_durable_ilm_records) | test(decommission_durable_ilm_target_read_error_is_not_masked_by_peer_success) | test(decommission_durable_ilm_terminal_receipt_recovers_failed_source_cleanup) | test(decommission_durable_ilm_receipt_pagination_fails_closed_on_second_page) | test(decommission_durable_ilm_recovery_keeps_multiple_active_sources))'
|
||||
test-group = 'ecstore-serial-flaky'
|
||||
|
||||
# Serialize the bucket-incarnation / lifecycle-fence tests under the ci profile
|
||||
# too (see the matching default-profile override near the top). No retries.
|
||||
[[profile.ci.overrides]]
|
||||
|
||||
Reference in New Issue
Block a user