Commit 42637b1
Trampolining: addition of fields to remove the infinite loops for pinned wfs (#721)
_**READ BEFORE MERGING:** All PRs require approval by both Server AND
SDK teams before merging! This is why the number of required approvals
is "2" and not "1"--two reviewers from the same team is NOT sufficient.
If your PR is not approved by someone in BOTH teams, it may be summarily
reverted._
<!-- Describe what has changed in this PR -->
-WISOTT
<!-- Tell your future self why have you made these changes -->
- Users that could using trampolining in the near future could run into
a problem, which shall only surface if the workflow author does not have
AutoUpgrade as the initial CAN behaviour for their Pinned workflows. As
of today, if a user does hit this case, they would have the pinned
workflow CAN'ing infinite number of times. This is because a pinned
workflow would commence on the pinned version (since it would have
inherited pinned version set to true) and if the pinned version is
different than a worker-deployment's current version, the
targetDeploymentVersionChanged would be set to true in the server. This
would then result in the workflow just CAN'ing all the time!
- This change aims to change that by only allowing at-most one CAN for
such pinned workflow executions, and it does so by remembering what the
initial version was at the start of the continue-as-new.
<!-- Are there any breaking changes on binary or code level? -->
**Breaking changes**
<!-- If this breaks the Server, please provide the Server PR to merge
right after this PR was merged. -->
- [PR!](temporalio/temporal#9374)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 5b42c72 commit 42637b1
5 files changed
Lines changed: 627 additions & 520 deletions
File tree
- history/v1
- proto
- temporalproto/openapi
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments