Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cancel and Signal should still propagate to child workflows after child CAN'ed #503

Open
9 tasks
mjameswh opened this issue Jun 28, 2024 · 0 comments
Open
9 tasks
Assignees
Labels
bug Something isn't working

Comments

@mjameswh
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Given the following sequence:

  • A workflow starts a child workflow (call that one A).
  • Child workflow A does CAN (that’s B).
  • The parent workflow cancels the child workflow (using the run_id of A, as that's the only one it knows).

One would reasonably expect Workflow B to receive the cancellation (same for signals). In fact, this is what indeed happens after the parent workflow closes if child workflow A is started with PARENT_CLOSE_POLICY_REQUEST_CANCEL.

Yet, it appears that, at least in TS, B is not receiving explicit cancellation requests made by the parent workflow.

Describe the solution you'd like

Basically, I believe that server should treat RequestCancelExternalWorkflowExecutionCommandAttributes with a run_id and child_workflow_only = true the same way as first_execution_run_id does in client APIs. Reference..

Things to do

  • Add features test to verify current behavior across all SDKs, both for Cancel and Signal.

Per-SDK Tickets

  • Go -
  • Java -
  • Core -
  • TypeScript -
  • Python -
  • .NET -
  • PHP -
  • Temporal CLI -
@mjameswh mjameswh added enhancement New feature or request bug Something isn't working and removed enhancement New feature or request labels Jun 28, 2024
@mjameswh mjameswh self-assigned this Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant