temporalio / temporalio/features

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

Open
#503 1 comment 3 reactions 1 assignee View on GitHub

@mjameswh is already working on this.

Since Jun 28, 2024.

bug
Dominant language
Go
Stars
32
Forks
28
Avg merge
1d 9h
Merged PRs (30d)
7

Description

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 -

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.