Skip to content

Dispatch CancelActivityNexusTask to worker via Nexus control queue#9233

Open
rkannan82 wants to merge 2 commits intokannan/activity-cancel/task-definitionfrom
kannan/activity-cancel/dispatch-logic
Open

Dispatch CancelActivityNexusTask to worker via Nexus control queue#9233
rkannan82 wants to merge 2 commits intokannan/activity-cancel/task-definitionfrom
kannan/activity-cancel/dispatch-logic

Conversation

@rkannan82
Copy link
Contributor

What changed?

This PR implements the dispatch logic for CancelActivityNexusTask. When the task is processed, it sends a CancelActivitiesRequest to the worker's Nexus control queue using the existing DispatchNexusTask RPC.
Changes
Task executor: transfer_queue_active_task_executor.go
processCancelActivityNexus: Main handler for the task
getWorkerControlQueueName: Looks up the worker's control queue from the worker registry via DescribeWorker API
dispatchActivityCancelToWorker: Builds task tokens and dispatches via DispatchNexusTask
Checks EnableActivityCancellationNexusTask dynamic config before processing
Returns NotFound error (triggering retry) if worker not found in registry
Control queue naming: Uses workerControlQueuePrefix (/temporal-sys/worker-commands) + worker_grouping_key from worker heartbeat
Batching: Single Nexus operation contains all activity task tokens for a worker

Why?

To support activity cancellation without activity heartbeat.

Overall flow:

How did you test it?

  • built
  • run locally and tested manually
  • covered by existing tests
  • added new unit test(s)
  • added new functional test(s)

Potential risks

Any change is risky. Identify all risks you are aware of. If none, remove this section.

- Add WorkerInstanceKey() and ControlQueueName() to testvars
- Auto-populate WorkerInstanceKey in taskpoller
- Fix nil Nexus header panic in matching engine
- Fix WorkerInstanceKey not forwarded between task queue partitions
- Add TestActivityCancelControlTaskDispatch functional test
@rkannan82 rkannan82 force-pushed the kannan/activity-cancel/dispatch-logic branch from a91654f to 6a655f7 Compare February 5, 2026 22:02
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