mirror of
https://github.com/pgsty/minio.git
synced 2026-11-11 18:15:29 +03:00
test(ilm): check the purge's history error end to end
The implementation review of the delete-all reporting found that no committed test checked the error a purge returns on a drive whose metadata does not decode: restoring the old read quorum error passed. TestPurgeAllVersionsRefusesCorruptDrive now sends the purge through DeleteObject and checks errDeleteAllHistoryUnavailable and its SlowDownWrite mapping; with the old error it fails. The HELP text of expiry_incomplete_total now says that the tier_unsupported_skipped reason counts the scanner's per-drive observations, not expiry attempts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
@@ -170,6 +170,11 @@ func TestPurgeAllVersionsRefusesCorruptDrive(t *testing.T) {
|
||||
if delta[ilmIncompleteHistoryUnavailable] != 1 {
|
||||
t.Errorf("counted %v, want one %s", delta, ilmIncompleteHistoryUnavailable)
|
||||
}
|
||||
// The purge names the cause, and callers see a write quorum error.
|
||||
_, err = z.DeleteObject(ctx, p.bucket, key, ObjectOptions{DeleteAllVersions: true, Expiration: ExpirationOptions{Expire: true}})
|
||||
if !errors.Is(err, errDeleteAllHistoryUnavailable) || toAPIErrorCode(ctx, err) != ErrSlowDownWrite {
|
||||
t.Errorf("purge on a corrupt drive: %v, want %v as SlowDownWrite", err, errDeleteAllHistoryUnavailable)
|
||||
}
|
||||
if got := p.get(key); got != "v2" {
|
||||
t.Fatalf("the refused purge left %s readable", got)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user