Ignore invalid configurations when migrating legacy mirrors and credentials #1007
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
If an exception is raised while performing a mirror migration job, it tries to roll back the migration.
centraldogma/server/src/main/java/com/linecorp/centraldogma/server/internal/mirror/MirroringMigrationService.java
Lines 135 to 139 in 5912bf7
However, the rollback also could fail if there is no migration on a project.
entries
may be empty which results in raisingRedundantChangeException
.centraldogma/server/src/main/java/com/linecorp/centraldogma/server/internal/mirror/MirroringMigrationService.java
Lines 266 to 267 in 5912bf7
Initially, I thought it was better to stop the whole migration job immediately to make the migration status atomic if an exception was raised. However, that was a bad choice. If it fails, it remains in
REPLICATION_ONLY
mode, which is difficult to fix manually.Modification:
WRITABLE
even when a mirror migration job completes exceptionally.Result:
WRITABLE
when a mirror migration job fails.