Skip to content

Conversation

@toastsandwich
Copy link
Contributor

@toastsandwich toastsandwich commented May 2, 2025

Community Contribution License

All community contributions in this pull request are licensed to the project maintainers
under the terms of the Apache 2 license.
By creating this pull request I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 license.

Description

Issue #4558 describes how the chained mirror command avoided copy and put requests when the request originated from server to server, but still performed the delete/remove operation. The problem was that the same isWatch variable was being used for both the isWatch and isActiveActive fields in the mirrorOptions struct. I have now separated the isActiveActive field into a different variable and updated the condition that queues the doRemove operation accordingly.

How to test this PR?

  1. create three servers A, B, C
  2. start mirror commands
    mc mirror -w A B
    mc mirror -w B C
  3. perform put and delete requests

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Optimization (provides speedup with no functional changes)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • Fixes a regression (If yes, please add commit-id or PR # here)
  • Unit tests added/updated
  • Internal documentation updated
  • Create a documentation update request here

Copy link
Contributor

@zveinn zveinn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable, @klauspost @harshavardhana ?

@zveinn zveinn self-requested a review May 5, 2025 13:00
Copy link
Contributor

@klauspost klauspost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@harshavardhana harshavardhana merged commit 19d87ba into minio:master May 6, 2025
5 checks passed
dormanze added a commit to dormanze/mc that referenced this pull request Jul 14, 2025
* 'ping' of https://github.com/dormanze/mc: (44 commits)
  mv:support set tag and checksum (minio#5133)
  ping: support ping a specified node and remove duplicate port printing (minio#5132)
  feat: add `--storage-class` option to `mc put` subcommand (minio#5228)
  mirror and cp support set the maximum number of threads (minio#5220)
  Some paths like url2Stat will send resource with backslashes on windows (minio#5226)
  Include ARN in "replicate list" output (minio#5215)
  Update build version (minio#5218)
  fix: add checks for nil HTTP in admin-trace matches func (minio#5216)
  remove fips 'mc' container Dockerfile
  Fix deletion of previously sync'd buckets and objects during mc-mirror (minio#5205)
  Add STATUS column to batch job list table output (minio#5202)
  fix: remove check if lock config exists before set (minio#5203)
  removing config cmd (minio#5201)
  fix: support chained mirror properly for delete propagation minio#4558 (minio#5197)
  Change support profile defaults (minio#5198)
  Explicitly set file permissions for admin-cluster-{bucket,iam}-export… (minio#5194)
  Add support for catalog batch job type (minio#5150)
  Add `idp openid accesskey` commands (minio#5182)
  feat: add deletemarker info for batch status (minio#5191)
  mirror: skip status message from excluded buckets (minio#5190)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants