Skip to content

fix(trafficrouting): ensure DestinationRule is updated before SetWeight on rollback#4612

Open
andrewjamesbrown wants to merge 1 commit intoargoproj:masterfrom
andrewjamesbrown:fix/istio-rollback-vs-dr-order
Open

fix(trafficrouting): ensure DestinationRule is updated before SetWeight on rollback#4612
andrewjamesbrown wants to merge 1 commit intoargoproj:masterfrom
andrewjamesbrown:fix/istio-rollback-vs-dr-order

Conversation

@andrewjamesbrown
Copy link
Contributor

@andrewjamesbrown andrewjamesbrown commented Feb 11, 2026

We have experienced several incidents where we have a canary in-progress, and we want to do a rollback to a previous stable release that is within the rollback window (i.e. fast rollback). What we experience is that Argo Rollouts will delay the DestinationRule switch (since the target is not ready), but still set the weight to the final weight in the steps list, resulting in a canary getting 70% of traffic in our case, while it is only scaled to handle 5%. This creates an overload condition on the canary, spiking latency and impact to any clients calling the service.

The fix:

Related PRs:
#4299
#3602

Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
  • The title of the PR is (a) conventional with a list of types and scopes found here, (b) states what changed, and (c) suffixes the related issues number. E.g. "fix(controller): Updates such and such. Fixes #1234".
  • I've signed my commits with DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My builds are green. Try syncing with master if they are not.
  • My organization is added to USERS.md.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 11, 2026

Published E2E Test Results

  4 files    4 suites   3h 28m 8s ⏱️
120 tests 113 ✅  7 💤 0 ❌
480 runs  452 ✅ 28 💤 0 ❌

Results for commit de6a333.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 11, 2026

Published Unit Test Results

2 391 tests   2 391 ✅  3m 5s ⏱️
  129 suites      0 💤
    1 files        0 ❌

Results for commit de6a333.

♻️ This comment has been updated with latest results.

@andrewjamesbrown andrewjamesbrown force-pushed the fix/istio-rollback-vs-dr-order branch 2 times, most recently from 0434159 to b365e5c Compare February 12, 2026 14:29
…lback

  - Return error from UpdateHash when delaying DR switch so SetWeight is not
    called, preventing VS weight update before DR subset switch (fixes rollback
    traffic hitting wrong subsets).
  - When shifting traffic to stable only (abort or dynamic rollback), only
    require stable RS availability so abort still completes when canary is
    failed (no regression of argoproj#4128).

Signed-off-by: Andrew Brown <andrew.brown@wealthsimple.com>
@andrewjamesbrown andrewjamesbrown force-pushed the fix/istio-rollback-vs-dr-order branch from b365e5c to de6a333 Compare February 12, 2026 15:30
@sonarqubecloud
Copy link

@codecov
Copy link

codecov bot commented Feb 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.37%. Comparing base (348260a) to head (de6a333).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4612      +/-   ##
==========================================
- Coverage   84.40%   84.37%   -0.03%     
==========================================
  Files         164      164              
  Lines       18855    18860       +5     
==========================================
  Hits        15914    15914              
- Misses       2077     2080       +3     
- Partials      864      866       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@andrewjamesbrown andrewjamesbrown marked this pull request as ready for review February 12, 2026 16:05
@andrewjamesbrown
Copy link
Contributor Author

Possibly related to #4390 ?

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.

1 participant