Skip to content

reject unsupported and empty update_mask paths in UpdateActivityExecutionOptions#11032

Merged
spkane31 merged 1 commit into
feature/activity-operator-cmdsfrom
spk/validate-update-masks
Jul 14, 2026
Merged

reject unsupported and empty update_mask paths in UpdateActivityExecutionOptions#11032
spkane31 merged 1 commit into
feature/activity-operator-cmdsfrom
spk/validate-update-masks

Conversation

@spkane31

Copy link
Copy Markdown
Contributor

What changed?

UpdateActivityExecutionOptions validates the update_mask before applying it:

  • Rejects an empty paths list unless restore_original is set
  • Rejects any path not in the supported allowlist (e.g. unknown fields like definitely_not_an_activity_option, unsupported roots like task_queue, or wildcards like *).

Why?

Field-mask paths were never validated against protobuf syntax or a supported-path allowlist. ParseFieldMask silently drops any path it doesn't recognize, so unknown/unsupported/empty masks passed validation as no-ops — yet the request still bumped the attempt stamp, recreated timers/dispatch tasks, emitted metrics, incremented state transition count, and could wake Describe long polls.

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

Minimal, this feature is not merged yet.

@spkane31
spkane31 requested review from a team as code owners July 13, 2026 18:05
@spkane31
spkane31 changed the base branch from main to feature/activity-operator-cmds July 13, 2026 21:00
@spkane31
spkane31 requested review from dandavison and fretz12 July 13, 2026 22:13
@spkane31
spkane31 merged commit 410013e into feature/activity-operator-cmds Jul 14, 2026
50 checks passed
@spkane31
spkane31 deleted the spk/validate-update-masks branch July 14, 2026 18:48
dandavison pushed a commit that referenced this pull request Jul 18, 2026
Implements Pause, Unpause, Reset, and UpdateActivityExecutionOptions
RPCs for standalone CHASM activities. Adds matching frontend and
history service handlers in chasm/lib/activity that dispatch to
either the workflow-activity path or the standalone-activity path
based on the presence of a workflow ID.

Also adds PAUSE_REQUESTED and RESET_REQUESTED state machine states
for standalone activities, the original_options snapshot for
restore-on-reset semantics, the activity-options merge helpers
(common/activityoptions), and the supporting proto schema changes
(start_request_id, sdk_name, sdk_version, etc.).

Squashed PRs:
  #9693  RPC boilerplate and code generation
  #9850  Implement UpdateActivityExecutionOptions
  #9851  Implement Pause/UnpauseActivityExecution for SAA
  #9852  Implement ResetActivityExecution for SAA
  #10001 Pause returns FailedPrecondition when already paused
  #10025 Validator function fixes
  #10265 Replace PauseState flag with PAUSE_REQUESTED state
  #10364 Add RESET_REQUESTED state to standalone activity
  #10745 Add support for updating start_delay via UpdateActivityOptions
  #10913 Preserve SAA retry backoff across unpause re-dispatch
  #10914 Fix SAA unpause for keep-paused reset
  #10917 Reject stale legacy SAA schedule-to-close timers
  #10920 Preserve NextRetryDelay across unrelated activity option updates
  #10921 Validate merged SAA retry policy updates
  #10923 Fix SAA reset attempt dispatch time reporting
  #11010 Use default retry policy when updating with nil
  #11020 Fix: de-duplicate pause even if activity is unpaused
  #11013 Fix: reject restore_original when a standalone activity has no original options snapshot
  #11032 Reject unsupported and empty update_mask paths in UpdateActivityExecutionOptions
  #11030 Fix: describe only provides heartbeat/failure when opted-in
  #11016 Preserve pending activity next retry delay
  #11068 Add SAA operator APIs to DC redirection whitelist
  #10954 Remove reset_heartbeats field in ResetActivityExecutionRequest
  #11087 Fix standalone activity heartbeat flag precedence
  #11117 Validation to reject negative activity jitter
  #11120 Fix bogus StartToCloseLatency for non-running standalone activities
  #11097 Fix task token invalidation after resetting an activity
  #11067 SAA bug fix: update start delay while paused
  #11123 SAA: cleanup
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.

2 participants