mirror of
https://github.com/pgsty/minio.git
synced 2026-10-09 19:25:59 +03:00
fix(replication): preserve ordered tag deletions
Persist, send and reconcile empty tag states together with their revision across COPY, PUT and multipart replication. Advance local tag mutations under the existing locks and preserve current tags during replication ACK. Cover signed HTTP, persistent single/multiple pool state, KMS, SSE-C key rotation, ordering, retry and duplicate requests. Record real Opus plan consensus, implementation review and local verification evidence. Signed-off-by: Feng Ruohang <rh@vonng.com> (cherry picked from commit 115fe8b12329d147adbaf817faa1737392ecbf9b) Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
TestPeerBucketCorsReplicationOrdering
|
||||
TestSiteReplicationMetaInfoPreservesCorsTombstone
|
||||
TestSiteReplicationStatusDetectsCorsTimestampMismatch
|
||||
TestSiteReplicationStatusCountsCorsPerSite
|
||||
TestCORSReplicationStateOrdering
|
||||
TestCORSReplicationStatusStateEquality
|
||||
TestNewBucketCORSReplicationEvent
|
||||
TestCorsReplicationDispatchStatusHealReload
|
||||
TestMarshalUnmarshalReplicationMRFStats
|
||||
TestEncodeDecodeReplicationMRFStats
|
||||
TestMarshalUnmarshalBucketReplicationResyncStatus
|
||||
TestEncodeDecodeBucketReplicationResyncStatus
|
||||
TestMarshalUnmarshalReplicationState
|
||||
TestEncodeDecodeReplicationState
|
||||
TestMarshalUnmarshalTargetReplicationResyncStatus
|
||||
TestEncodeDecodeTargetReplicationResyncStatus
|
||||
TestCompositeReplicationStatus
|
||||
TestReplicationResyncwrapper
|
||||
TestReplicationValidationObjectUsesRulePrefix
|
||||
TestGetReplicationActionEmptyObjectLockValues
|
||||
TestReplicationActionForTargetRetentionRemoval
|
||||
TestReplicationActionForTargetNullVersionResync
|
||||
TestReplicationActionForTargetTimestampOnlyRemoval
|
||||
TestMarshalUnmarshalBucketReplicationStat
|
||||
TestEncodeDecodeBucketReplicationStat
|
||||
TestMarshalUnmarshalBucketReplicationStats
|
||||
TestEncodeDecodeBucketReplicationStats
|
||||
TestMarshalUnmarshalReplicationLastHour
|
||||
TestEncodeDecodeReplicationLastHour
|
||||
TestMarshalUnmarshalReplicationLastMinute
|
||||
TestEncodeDecodeReplicationLastMinute
|
||||
TestMarshalUnmarshalReplicationLatency
|
||||
TestEncodeDecodeReplicationLatency
|
||||
TestMarshalUnmarshalReplicationQueueStats
|
||||
TestEncodeDecodeReplicationQueueStats
|
||||
TestAPISSECCompressionReplicaStaysReadable
|
||||
TestSSECBatchReplicationCannotRead
|
||||
TestAPIDeleteObjectVersionDenyAndReplicationCompatibility
|
||||
TestAPISSECReplicaPartNumberReads
|
||||
TestAPISSECReplicaMalformedPartIsRejected
|
||||
TestPoolsDeleteVersionAPI
|
||||
TestPoolsDeleteVersionUnreadablePool
|
||||
TestPoolsDeleteVersionSingleCopy
|
||||
TestPoolsDeleteVersionReplicationPurge
|
||||
TestPoolsDeleteVersionCleanupFailure
|
||||
TestPoolsDeleteVersionCallbacks
|
||||
TestPoolsDeleteVersionSpecialCalls
|
||||
TestPoolsDeleteUnversionedFanout
|
||||
TestPoolsConditionalDeleteVersionSelection
|
||||
TestPoolsConditionalDeleteDuplicateVersion
|
||||
TestPoolsConditionalDeleteReportsOtherPoolFailure
|
||||
TestPoolsConditionalDeleteSerializesPut
|
||||
TestPoolsConditionalDeleteSerializesCompletion
|
||||
TestPoolsReplicaSerializesMetadataAndHealing
|
||||
TestPoolsConditionalDeletePreservesVersionHistory
|
||||
TestPoolsReplicaIndependentLockWinners
|
||||
TestPoolsReplicaSoleDrainingOwner
|
||||
TestPoolsMetadataUpdateUsesMergedVersion
|
||||
TestPoolsReplicaMetadataCopyReconcilesLockAndTags
|
||||
TestPoolsReplicaCleanupFailureCanRetry
|
||||
TestPoolsRetiringCopyPreservesSharedTierObject
|
||||
TestPoolsDeleteVersionAfterInterruptedRebalance
|
||||
TestPoolsDeleteDirectoryMarker
|
||||
TestPoolsMultipartConditionalUsesLogicalLatest
|
||||
TestPoolsMultipartConditionalHTTPMatrix
|
||||
TestPoolsMultipartConditionalHTTPAbsentObject
|
||||
TestPoolsMultipartConditionalHTTPNormalRouting
|
||||
TestPoolsMultipartConditionalUnreadablePool
|
||||
TestPoolsMultipartConditionalLatestVersionAndCallbackOnce
|
||||
TestPoolsMultipartConditionalConcurrentCompletes
|
||||
TestPoolsMultipartConditionMatrix
|
||||
TestPoolsMultipartConditionBoundaries
|
||||
TestPoolsMetadataUpdatePreservesTags
|
||||
TestReplicaWritesPreserveTagOrdering
|
||||
TestMergedPoolObjectInfoTagOrdering
|
||||
TestPoolsMetadataCallbackReplacesTags
|
||||
TestReconcileStoredObjectTagOrdering
|
||||
TestPoolsMetadataUpdatePreservesAbsentTags
|
||||
TestExtractReplicationMetadataHeaders
|
||||
TestGetCopyObjectMetadataFromHeaderReplication
|
||||
TestCloneRequestWithoutReplicationHeaders
|
||||
TestIAMServiceAccountReplicationRejectsOtherCredentialKinds
|
||||
TestIAMServiceAccountReplicationPreservesExpiration
|
||||
TestPutOptsFromHeadersReplicationTimestamps
|
||||
TestAPIGetObjectAttributesSSECReplicationAuthz
|
||||
TestAPICopyObjectSSECKeyRotationReplicaKeepsFastPath
|
||||
TestAPIFederatedCopyObjectRejectsRawSSECReplica
|
||||
TestAPICopyObjectReplicaTaggingTimestampUnderKMS
|
||||
TestCheckPreconditions
|
||||
TestAPIPutObjectReplicationHeaderPoisoning
|
||||
TestAPICopyObjectReplicationHeaderPoisoning
|
||||
TestPostPolicyCannotForgeReplicationStatus
|
||||
TestReplicationMRFDropsVisible
|
||||
TestReplicationObjectDeleteWorkerAffinity
|
||||
TestAPISSECReplicationTargetHead
|
||||
TestAPISSECReplicaRetransmitOverExistingVersion
|
||||
TestPutReplicationOptsRetentionRemoval
|
||||
TestAPISSECReplicaWriteExemptionIsKeyedOnTheIncomingWrite
|
||||
TestAPISSECReplicaRetransmitObjectLockOrdering
|
||||
TestAPISSECReplicaRetransmitMultipartObjectLockOrdering
|
||||
TestPutReplicationOptsRetentionRemovalTimestampOnly
|
||||
TestAPIReplicaMarkerOnlyAppliesObjectLock
|
||||
TestAPIReplicaMultipartNewerHoldSurvivesCompletion
|
||||
TestAPITaggingReplicationOrdering
|
||||
TestAPITaggingReplicationOrderingKMS
|
||||
TestAPITaggingMultipartCommitRechecksRevision
|
||||
TestAPILocalTaggingAlwaysAdvancesRevision
|
||||
TestTaggingTimestampWire
|
||||
TestAPIPoolsTaggingReplicaDeletion
|
||||
TestAPITaggingSSECRotationPreservesDeletionRevision
|
||||
TestTaggingRepeatedValueNeedsRevisionDelivery
|
||||
TestTaggingProductionCopyWireShape
|
||||
TestLocalTaggingCommitCannotRegressRevision
|
||||
TestTaggingReplicaContentDuplicateGuard
|
||||
TestAPITaggingUnqualifiedCopyOrdering
|
||||
TestTaggingReplicationSenderRetryAndAcknowledgment
|
||||
TestAPISSECReplicaSkipsDestinationTransforms
|
||||
TestAPISSECMultipartReplicaRoundTripWithCompression
|
||||
TestPutReplicationOptsRejectsCompressedSSEC
|
||||
TestAPIReplicationTrustProtectsSSECReads
|
||||
TestReplicationTrustControlsInternalOptionsAndEvents
|
||||
TestAPIPutObjectReplicationTrust
|
||||
TestAPISnowballReplicationTrustIsPerEntry
|
||||
TestAPIDeleteObjectReplicationTrust
|
||||
TestAPISSECMultipartReplicationTrust
|
||||
TestAPIStreamingTrailerWithUntrustedReplicationHeaders
|
||||
TestAPICopyObjectReplicaLegalHoldTimestamp
|
||||
TestAPICopyObjectReplicaAbsentLockFieldsPreserveNewerState
|
||||
TestAPICopyObjectReplicaRetentionRemovalKeepsOrderingTimestamp
|
||||
TestAPICopyObjectReplicaObjectLockOrdering
|
||||
TestAPICopyObjectReplicaRetentionRemovalUnderBucketKMS
|
||||
TestAPICopyObjectReplicaLockTimestampSurvivesSSECKeyRotation
|
||||
TestBucketPolicyReplicationKey
|
||||
TestBucketPolicyReplicationStatusLegacyOrder
|
||||
TestSiteReplicationStatusAccountsPerSiteAndSurvivesMalformedConfig
|
||||
Reference in New Issue
Block a user